ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
1

joint_state_controller required for diff_drive_controller?

asked 2020-03-06 04:17:49 -0500

fjp gravatar image

updated 2020-03-06 07:17:33 -0500

Is joint_state_controller required when working with diff_drive_controller? Or is joint_state_controller only required to publish JointState messages for other nodes and not relevant for diff_drive_controller to function properly?

For example eborghi10/my_ROS_mobile_robot uses two yaml config files, one containing diff_drive_controller/DiffDriveController as expected and the other one contains joint_state_controller/JointStateController and even effort_controllers/JointEffortController. Are these controllers really required?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
1

answered 2020-03-06 08:09:22 -0500

pmuthu2s gravatar image

Hey,

Is joint_state_controller required when working with diff_drive_controller?

Technically if you talk in terms of simulation with Gazebo, joint states are published by ros_gazebo_diff_drive plugin and we do not require a separate joint state controller. You can just verify it by launching the ROS node for the same and looking into the rqt_graph. They basically use the model states from the gazebo to perform the calculation for the kinematics. If I remember correctly!

For example eborghi10/my_ROS_mobile_robot uses two yaml config files, one containing diff_drive_controller/DiffDriveController as expected and the other one contains joint_state_controller/JointStateController and even effort_controllers/JointEffortController. Are these controllers really required?

If you see the code from gazebo_diff_drive_controller they already publish the joint states!

I don't think,we need a joint effort controller for the diff drive robot ! Just if it is only the velocity!

edit flag offensive delete link more

Comments

Thank you for your answer! Could you please explain what you mean with the following

You can just verify it by launching the ROS node for the same and looking into the rqt_graph. They basically use the model states from the gazebo to perform the calculation for the kinematics.

Do you mean launching joint_state_controller and the ros_gazebo_diff_drive plugin will publish JointState twice (via each of the two nodes)? And do you know where in the code the published model states (joint states) are used?

fjp gravatar image fjp  ( 2020-03-06 08:49:22 -0500 )edit
1

Just launch the node with the ros_gazebo_diff_plugin and you can see that the joint states are already published!

pmuthu2s gravatar image pmuthu2s  ( 2020-03-06 08:51:06 -0500 )edit

Do we need a joint_state_controller when working with real robot hardware?

fjp gravatar image fjp  ( 2020-03-06 08:52:02 -0500 )edit

Thanks for your help so far! Another question about your answer I have is what do you mean by

Just if it is only the velocity!

fjp gravatar image fjp  ( 2020-03-06 09:14:24 -0500 )edit

Question Tools

2 followers

Stats

Asked: 2020-03-06 04:17:49 -0500

Seen: 415 times

Last updated: Mar 06 '20