The start_dynamixel launch file starts Dynamixel control manager, which can establish a connection to a USB-to-Dynamixel adapter and Dynamixel servos. Here is the definition of this launch file:
<!-- This will open USB To Dynamixel controller and search for servos --> <launch> <node name="dynamixel_manager" pkg="dynamixel_controllers" type="controller_manager.py" required="true" output="screen"> <rosparam> namespace: dxl_manager serial_ports: pan_port: port_name: "/dev/ttyUSB0" baud_rate: 1000000 min_motor_id: 1 max_motor_id: 25 update_rate: 20 </rosparam> </node> <!-- This will launch the Dynamixel pan controller --> <include file="$(find face_tracker_control)/launch/start_pan_controller.launch"/> </launch>
We have to mention port_name (you can get the port number from the kernel logs using the dmesg command). The baud_rate parameter we configured was 1 Mbps, and the motor ID was 1. The controller_manager.py file will scan from servo ID 1 to 25 and report any servos being detected.
After detecting the servo, it will start the start_pan_controller.launch file, which will attach an ROS joint position controller for each servo.