differential transmission with ros_canopen, HOW to?
Hello ROS Community,
I have already tried to ask a similar question here: #q304832, however no answer was received so i am trying to ask again from a different perspective.
I am working on the control of a 5DOF robot, where the last two joints (joint_4 and joint_5) create a differential gear/transmission. I found on the official ros_control
git an URDF sample, which seems to describe the differential transmission as:
<transmission name="differential_trans">
<type>transmission_interface/DifferentialTransmission</type>
<joint name="joint_4">
<role>joint2</role>
<hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface>
</joint>
<joint name="joint_5">
<role>joint1</role>
<hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface>
</joint>
<actuator name="actuator_4">
<role>actuator1</role>
<mechanicalReduction>1</mechanicalReduction>
</actuator>
<actuator name="actuator_5">
<role>actuator2</role>
<mechanicalReduction>-1</mechanicalReduction>
</actuator>
</transmission>
I tried to test the above code in my URDF, but still joint_4
drives ONLY the fourth motor and joint_5
drives ONLY the fifth motor, however moving one joint should actuate both motors.
I shall mention, that the motors are controlled through ros_canopen
. This means that for every joint (joint_1-joint_5) I assigned a canopen
id
, i.e., a motor driver in the configuration yaml
file, For example:
nodes:
- name: joint_4
id: 1
eds_file: ...
- name: joint_5
id: 85
eds_file: ...
It looks like the motors are directly connected with the joints, however i would like to connect them with the actuator outputs of the DifferentialTransmission. (The joint is the node, and not the actuator.)
Did anyone work with this transmission type? How shall it be set up?
Thanks in advance!
Not an answer, but: you have a bit of a "special" setup. That may mean that people that frequent this forum don't have any experience with it.
I'm not saying you won't get any response, but just thought it'd be good to do some expectation management.
@gvdhoorn Thanks for the tip. If by special you meant unique, or too complex, I can rephrase the question, to be more general, like:
Did anybody succeed to use the DifferentialTransmission (or any other) transmission_interface with the standard CANOpen (ros_canopen) packages?