The servocontroller node to move the 6 servos for wheels and the 3 servos for the robotarm
ros2 name: n10_servo_controller
wheel-servo-channels: 0-5, usual wheel enumeration
In order to access GPIO for I2C, the user running the node needs I2C permissions:
sudo usermod -aG i2c $USER
Open (file may not exist yet):
sudo nano /etc/udev/rules.d/99-i2c.rules
add these lines:
SUBSYSTEM=="i2c-dev", MODE="0666"
KERNEL=="i2c-[0-1]*", GROUP="i2c"
Reload the rules:
sudo udevadm control --reload-rules
sudo udevadm trigger
Finnally, you may need to relog.
-
/n10/servo_cmd_wheelsstd_msgs::msg::Float32MultiArray (6): control wheel servos- from
-π/2 ≐ pointing righttoπ/2 ≐ pointing left
- from
-
/n10/servo_cmd_armstd_msgs::msg::Float32MultiArray (4): control robotarm servos- index 0: base_joint
0 ≐ pointing upcounterclockwise - index 1: arm_joint
0 ≐ same as base_jointcounterclockwise - index 2: correction_joint
0 ≐ same as base_jointcounterclockwise - index 3: gripper state
?? ≐ open?? ≐ closes
- index 0: base_joint