The robot uses ROS2 (Robot Operating System 2). Read the ROS2 wiki!.
Note: See development for how to create VirtualBox ROS2 Foxy VM using Vagrant
The robot uses dynamixel servos. Servos are controlled via the robot_hardware
ROS node, which implements the hardware interface for ros2_control. robot
package contains the servo controller configurations
for the robot. See head.yaml, for example. The head supports joint_trajectory_controller
. When using this controller, joints can be controlled by sending action messages to the trajectroy controller. See bring up for an example.
Joint -> Servo mappings are defined in config/dynamixel.yaml.
- src - all packages
- src/inmoov_description - robot files (URDF, SRDF & rviz configuration)
- src/robot - robot launch files & servo controller configurations
- src/robot_hardware - hardware interface for ros2_controller, communicates with U2D2 via dynamixel workbench
- config - servo configuration
Baud rate: 57600, Voltage: 7.5
Note: Servos can be configured using dynamixel wizard
Servo ID | Model | Joint name | Description |
---|---|---|---|
1 | XL430 | head_tilt_right_joint | Head tilt right-side |
2 | XL430 | head_tilt_vertical_joint | Head tilt up/down |
3 | XL430 | head_tilt_left_joint | Head tilt left-side |
4 | XL430 | head_pan_joint | Head turn left/right |
10 | XL320 | eyes_shift_horizontal_joint | Eyes shift left/right |
11 | XL320 | eyes_shift_vertical_joint | Eyes shift up/down |
12 | XL320 | head_jaw_joint | Open/close jaw |
31 | XL320 | r_thumb_joint | Open/close thumb |
34 | XL320 | r_index1_joint | Open/close index |
37 | XL320 | r_middle1_joint | Open/close middle |
40 | XL320 | r_ring_joint | Open/close ring |
44 | XL320 | r_pinky_joint | Open/close pinky |
47 | XL320 | unnamed joint | Rotate wrist |
Note: head tilt range of motion is poor
Note: wrist joint seems to overload very easily
Note: servo angle limits are not configured
- See Development
- See Robot bring-up
Note: Be careful not to move joints too much, limits are not set yet