ros_control actuators and transmissions
I am controlling a dynamixel based SCARA arm (4 revolute joints) using ROS (MoveIt + ros_control + dynamixel_controllers). Before controlling the actual arm, I attempted to test the system with Gazebo. (up to the point where I would connect ros_control to the dynamixel motors). In my URDF I added the transmissions (in my case 1:2) between the actuators and the joints. I am using the effort_controllers/JointTrajectoryController and my joint names when spawning the controllers.
The simulation works fine, and I am able to control the arm using MoveIt pretty much as expected, however when monitoring the joint angles which are send to my controllers they map 1:1 to the joint angles set in MoveIt, where I would expect them to be double because of the transmission between my motors and my joints.
How does ros_control take the transmission into account? Should I spawn my controllers using the actuator names instead of the joint directly? Or should I implement the transmission somewhere in the hardware abstraction layer which will connect ros_control to my dynamixel_controllers?