Gazebo | Ignition | Community
Ask Your Question

How to simulate and command a steerable wheel?

asked 2020-02-28 04:29:31 -0500

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

Hello to everyone, I'm very new in Gazebo and I was wondering if you could help me with the following:

I'm a trying to simulate a simple mobile base like in the picture below: image description

I would like to create 2 revolute joints for the front wheel (steerable wheel), one joint around 'z' axis of the wheel which would simulate the robot propulsion( TRACTION )and one joint around the 'y' axis of the wheel (DIRECTION) which would simulate the steering. This is typically the case of an industrial AGV. However when I create a 2 joints with the same parent and child, none of them work.

I can either have the steering or the propulsion but I can't have both at the same time. Is there any other way to simulate this case ?.

Thanks in advance.

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2020-02-28 16:05:59 -0500

zokowc gravatar image

You cannot have two joints with the same parents and child. To solve this problem, you will need to create an additional link that acts as a hinge. Firstly, create a joint between the body of the vehicle and the hinge link. This joint will be of kind 'revolute' and responsible for steering. Secondly create a joint between the hinge link and the wheel, this joint will be of kind 'continuous' and responsible for robot propulsion. Simple Example:

<link name='robot_body'/>
<link name='front_wheel_hinge'/>
<link name='front_wheel'/>
<joint name="steering_joint" type="revolute">
       <origin rpy="0 0 0" xyz="* * *"/>
       <parent link="robot_body"/>
       <child link="front_wheel_hinge"/>
       <axis xyz="0 0 -1"/>
       <limit lower="-0.63" upper="0.63" effort="10" velocity="100"/>/>

<joint name="propulsion_joint" type="continuous">
       <origin rpy="0 0 0" xyz="-0.08 0 0"/>
       <parent link="front_wheel_hinge"/>
       <child link="front_wheel"/>
       <axis xyz="0 -1 0"/>
       <limit effort="10" velocity="100"/>
edit flag offensive delete link more
Login/Signup to Answer

Question Tools

1 follower


Asked: 2020-02-28 04:29:31 -0500

Seen: 63 times

Last updated: Feb 28 '20