interbotix_ros_manipulators
interbotix_ros_manipulators copied to clipboard
[Question]: Choice of controller
Question
Hello I noticed you've implemented the effort based hardware interface in the robot description URDF file.
In that case, may I please know why you used position_controllers/JointTrajectoryController instead of effort_controllers/JointTrajectoryController in the interbotix_xsarm_ros_control/config/6dof_controllers.yaml file?
But in the Gazebo config files, you've used the effort_controllers/JointTrajectoryController
Could you kindly give an explanation on the choice of your controllers for both the interbotix_xsarm_ros_control and interbotix_xsarm_gazebo packages?
Thank You
Robot Model
vx300s
Operating System
Ubuntu 20.04
ROS Version
ROS 1 Noetic
Additional Info
No response
It's a good question, but I'd like to rephrase it in reverse. If the real hardware is using position_controllers/JointTrajectoryController, why do we use effort controllers in the urdf as well as in the Gazebo config files instead of position_controllers?
I think the answer is because at the time this code was designed, I thought that only effort controllers were supported in Gazebo. But taking a look at https://answers.ros.org/question/346588/why-should-we-use-effortjointinterface-as-hardware_interface-for-transmission-in-urdf/, it seems like I may have had that assumption based on misleading documentation. It's quite possible that you could switch out the effort hardware interfaces within the urdf as well as the effort_controllrs within the gazebo controller config file to 'position', and things should still work.