Skip to content

SimpleTransmission and dynamixel_hardware #67

@gpicardi

Description

@gpicardi

Hi everyone,
I am trying to set up the transmission mechanism to work with my dynamixel-based manipulator. Of course I am using this plugin for the hardware. I am using humble on Ubuntu 22.04.

I have a 3 Dof manipulator with forward position controller and joint trajectory controller. Both using a position interface. I want to add a transmission element on the tibia joint (a SimpleTrasmission now for simplicity). The only modification that I have made is in the ros2_control tag in the urdf, in which I have added the following block:

<transmission name="tibia_transmission">
      <plugin>transmission_interface/SimpleTransmission</plugin>
      <actuator name="tibia_actuator" role="tibia_actuator">
      </actuator>
      <joint name="tibia_joint" role="tibia_joint">
            <hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface>
            <mechanicalReduction>40.0</mechanicalReduction>
       </joint>
</transmission>

I have tried different modifications of this snippet ( instead of , hardware_interface instead of hardwareInterface, mechanical_reduction instead of mechanical_reduction, EffortJointInterface instead of PositionJointInterface). Everything loads smoothly, but the system is simply ignoring the mechanical reduction. My question is, should I modify the dynamixel_hardware plugin?

I am also reporting the yaml file of control.

controller_manager:
  ros__parameters:
    update_rate: 30
    #use_sim_time: true

    joint_state_broadcaster:
      type: joint_state_broadcaster/JointStateBroadcaster

    forward_position_controller:
      type: forward_command_controller/ForwardCommandController

    joint_trajectory_position_controller:
      type: joint_trajectory_controller/JointTrajectoryController

forward_position_controller:
  ros__parameters:
    joints:
      - coxa_joint
      - femur_joint
      - tibia_joint
    interface_name: position

joint_trajectory_position_controller:
  ros__parameters:
    joints:
      - coxa_joint
      - femur_joint
      - tibia_joint

    command_interfaces:
      - position

    state_interfaces:
      - position
      #- velocity
      #- effort

    action_monitor_rate: 20.0 # Defaults to 20

    allow_partial_joints_goal: false # Defaults to false
    open_loop_control: true
    allow_integration_in_goal_trajectories: true
    constraints:
      stopped_velocity_tolerance: 0.01 # Defaults to 0.01
      goal_time: 0.0 # Defaults to 0.0 (start immediately)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions