Gazebo | Ignition | Community
Ask Your Question
0

Force base_link to stay at 0

asked 2015-06-11 04:45:13 -0600

mehdi gravatar image

updated 2015-06-17 03:45:39 -0600

My robot has a disc with a radius of 1.25m in contact with the ground. Apparently this is not handled very well by the simulator and the robots drifts slowly with time. How to force base_link to stay at zero position? Is there a way to define as static a link only and not the whole robot?

I am using URDF and world frame doesn't seem to be usable there as parent frame.

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted
1

answered 2015-06-17 03:49:56 -0600

mehdi gravatar image

updated 2015-06-17 04:47:35 -0600

Following chapulina's answer, my URDF joint looks like this:

<link name="world"/>
<joint name="joint_base_world" type="fixed">
  <child link="base_link" />
  <parent link="world" />
  <origin xyz="0 0 0" />
</joint>

An explicit definition of the world frame is necessary when using URDF's. This joint stabilizes my robot and makes it fixed at zero position.

edit flag offensive delete link more
1

answered 2015-06-11 12:49:33 -0600

chapulina gravatar image

You can create a joint between base_link and the world, here's an example.

Assuming your disk is rotating about its Z axis, it would look something like this:

<joint name="joint_base_world" type="revolute">
  <child>base_link</child>
  <parent>world</parent>
  <axis>
    <xyz>0 0 1</xyz>
  </axis>
</joint>
edit flag offensive delete link more

Comments

Thanks, I edited my question to precise that I am using URDFs, the world frame doesn't seem to be recognized there.

mehdi gravatar imagemehdi ( 2015-06-17 03:45:05 -0600 )edit

Question Tools

Stats

Asked: 2015-06-11 04:45:13 -0600

Seen: 275 times

Last updated: Jun 17 '15