How to constrain the DOF of a robot

asked 2014-02-21 08:15:24 -0600

Alexander Graber-Tilton gravatar image

updated 2014-02-21 08:16:34 -0600

So I've been creating a simulation of a quadruped robot. Creating the robot worked out fine. The next step is to constrain the DoF of the robot so that the robot is planar. I.E. the robot can translate in any direction, can pitch, and yaw is fine.

I've tried to create this restriction in a couple of ways. The robot is in urdf format, with a seperate transmission and gazebo element files. The robot also has a "root" element, which has a tiny mass and inertia, and is essentially a virtual link, allowing possible use of the KDL library without issues.

Attempt 1. Add joints and virtual links between the world and the root of the robot I tried adding virtual links and joints between the robot. -A single continuous joint with z axis: allows the robot to pitch. -A prismatic joint in z direction, then a continuous joint with z axis: allows the robot to translate up/down and rotate in pitch -A prismatic joint in the x direction, then a prismatic joint in the z direction, then a continuous joint with z axis: Somehow allows for multiple DOF and the robot falls over on it's side.

Attempt 2. Add joints though the use of gazebo elements -creating a SDF format rotational between the world and the root inside a gazebo element for the robot actual imposes NO constrain on the robot.

Please let me know if you have any ideas on why the first attempt behaves strangely, how to get the second to work, or any other ideas on how to accomplish this. I would greatly appreciate the help.

edit retag flag offensive close merge delete