Robotics StackExchange | Archived questions

URDF crazy update

After load the URDF, the model keeps updating the state in a crazy way.

Here is my launch file. Can anyone explain why ?

image description

<launch>
<param name="robot_description" textfile="$(find fetch_robot_des)/urdf/fetch.urdf" />
<include file="$(find gazebo_ros)/launch/empty_world.launch">
</include>
<node name="spawn_urdf" pkg="gazebo_ros" type="spawn_model" args="-param robot_description -urdf -z 1 -model fetch_model" />
</launch>

Asked by Chao Chen on 2020-08-22 16:02:05 UTC

Comments

Without knowing what "crazy way" means, this will be a guess, but: you don't have any active controllers?

Asked by gvdhoorn on 2020-08-23 00:14:33 UTC

I do not add any joint state controller. Theoretically, the robot joint state should not be updated. However, once I start the launch file and the robot starts keeping updating the robot state, like dancing until it falls.

Asked by Chao Chen on 2020-08-23 00:32:57 UTC

Answers

You are describing a Gazebo issue. Numerical instabilities in the simulation of contact forces causes what you describe.

Without any active controllers to counteract this, robots appear to be "dancing".

I do not add any joint state controller

Note: a joint_state_controller will not help. You'll need to add something which actively controls the joints.


Edit:

What kind of active controller can I use in this case?

Any of the position_controllers, velocity_controllers or effort_controllers. Provided the urdf/xacro has the appropriate hardware interfaces added.

And why joint_state_publisher +robot_state_publisher wont work in this case?

Because this is Gazebo, which simulates dynamics. The JSP and RSP do something entirely different, and Gazebo does not take input from them.

Gazebo != RViz.

Asked by gvdhoorn on 2020-08-23 00:46:55 UTC

Comments

What kind of active controller can I use in this case? And why joint_state_publisher +robot_state_publisher wont work in this case?

Asked by Chao Chen on 2020-08-23 13:11:35 UTC