Analytical modeling of a 3-D snake robot based on sidewinding