What is the best way to make a hexpod robot walk in Gazebo?

asked 2020-11-21 10:34:03 -0500

arynyestos gravatar image

Hi, everyone!

I'm working on making a hexapod robot walk (ROS Melodic, Gazebo 9). All six legs are the same (described in a xacro file and instantiated six times in the main robot file), with four joints each, which are controlled with controllers of type effort_controllers/JointPositionController, whose PID parameters I estimated with the (rough) method described here: http://gazebosim.org/tutorials/?tut=r...

In order to make it walk first I wrote a sequence of positions (in radians) for each joint. Also, legs r1, l2 and r3 would move at the same time, leaving legs l1, r2 and l3 to move at the same time, a fraction of a second later. This made sense to me, but the robot wouldn't walk in a straight line. My next approach (also using the "tripod" gait) was to give to each joint a sinusoidal trajectory and use an evolutionary algorithm to determine the frequency, amplitudes, time between each set of three legs, etc. However, this won't make the robot walk straight either.

This made me think perhaps the type of controller, or maybe the use of topics are not suitable for this kind of task. So my questions are: should I be using actions instead? (I have never used actionlib before). Maybe MoveIt! would be a better solution? Perhaps there's some other option whose existence I'm not even aware of?

Sorry if I took too long to explain but I wanted to make myself clear. Thanks in advance for your help. Kind regards!


edit retag flag offensive close merge delete