gazebo_ros_control zeroes joint positions?

asked 2023-06-15 05:04:43 -0600

sohai gravatar image

I am trying to build a custom 4-wheeled omniwheel robot with ROS, and am currently trying to make a simulation of it work in Gazebo as well. I am using ROS Noetic for stability, and am on Gazebo 11.11.0.

So far I have:

Now, I am trying to integrate in the gazebo_ros_control plugin with my own controller and JointStateController, but whenever I run the plugin, the wheels of the robot all get reset to the origin. The terminal shows no warning or errors at all. Here is a sample log.

This is when I launch without the plugin: image description

This is when I do launch with the plugin: image description

This is the launch file I am launching the simulation from, and after a lot of experimentation, here is what I have isolated:

  • Simply by running the gazebo_ros_control plugin, the wheels are reset to origin
  • What controllers are running do not matter
  • Only VelocityJointInterface seems to break the wheels, but EffortJointInterface preserves the joint positions
  • The controllers themselves seem to be running, as RViz seems to receives the TF poses just fine: image description
  • But the controllers cannot actually manipulate the wheels, as changing cmd_vel for my controller does not change the TF poses of the wheels

Here's more info:

Would appreciate any ideas on how to debug this! Thanks in advance <3

edit retag flag offensive close merge delete