Ling Alicia-DL Leader Arm ROS2 Humble
1. Introduction
Alicia-D ROS2 is a ROS toolkit for controlling the [Ling Alicia-D] series six-axis robotic arm (with gripper). Built on ROS 2 Humble, it provides functions for controlling arm motion via serial communication, operating the gripper, and reading pose and status data.
1.1 Key Features
Core Capabilities
- Real-Time State Feedback: Retrieve joint angles, gripper position, and robot status in real time.
- Automatic Firmware Detection: Automatically detects firmware version.
- Serial Communication: Auto-detect serial port or manually specify; supports high baud-rate communication.
- Zero Calibration: Set the current position as the new zero point.
1.2 Project Structure
alicia_d_driver/
├── include/alicia_d_driver/
│ ├── alicia_d_hardware_interface.hpp # Hardware interface header
│ └── alicia_d_driver_node.hpp # Standalone driver node
├── src/
│ ├── alicia_d_hardware_interface.cpp # Hardware interface implementation
│ ├── alicia_d_driver_node.cpp # Standalone driver
│ └── serial_communicator.cpp # Serial communication
├── launch/
│ └── alicia_d_driver.launch.py # Standalone driver launch file
├── alicia_d_driver.xml # Plugin description
└── CMakeLists.txt
2. Installation and Configuration
2.1 Set Serial Port Permissions (One-Time)
sudo usermod -a -G dialout $USER
Note
After executing this command, you must fully log out and log back in for the changes to take effect!
Or set temporarily:
sudo chmod 666 /dev/ttyACM*
2.2 Get Source Code and Build
mkdir -p ~/alicia_ws/src
cd ~/alicia_ws
git clone https://github.com/Synria-Robotics/Alicia-D-ROS2.git -b v6.1.0 ./src
rosdep install --from-paths src --ignore-src -r -y
colcon build
source install/setup.bash
2.3 Launch with Real Robot
ros2 launch alicia_d_driver alicia_d_driver.launch.py
3. Usage
3.1 Launch File Parameters
| Parameter | Default | Description |
|---|---|---|
robot_version | v5_6 | Robot arm version (v5_5 or v5_6) |
gripper_type | 50mm | Gripper stroke (50mm or 100mm) |
port | /dev/ttyACM0 | Serial port device |
3.2 Launch Options
Standalone Driver (Without MoveIt)
ros2 launch alicia_d_driver alicia_d_driver.launch.py \
port:=/dev/ttyACM0
3.3 Zero Calibration
Warning
Skip this section unless necessary. This operation is irreversible.
Step 1: Place the robot arm in the desired pose.
Step 2: Execute calibration:
ros2 topic pub --once /zero_calibrate std_msgs/msg/Bool "{data: true}"
3.4 Read Data
ros2 topic echo /joint_states
4. Troubleshooting
4.1 Connection Issues
Problem: Cannot connect to the serial port
Solution:
- Check cable connections
- Verify port name:
ls /dev/tty* - Check permissions:
ls -l /dev/ttyACM0 - Add user to the dialout group:
sudo usermod -a -G dialout $USER
4.2 Controller Failure
Problem: Controller fails to start
Solution:
- Check hardware interfaces:
ros2 control list_hardware_interfaces - Check controllers:
ros2 control list_controllers - Verify the robot arm is connected and powered on
4.3 Motion Execution Issues
Problem: Planning succeeds but execution fails
Solution:
- Verify firmware version is correctly detected (check logs)
- Ensure gripper type matches hardware (50 mm vs 100 mm)
- Use
debug_mode:=trueto monitor serial communication
5. Safety Precautions
Important Safety Guidelines
- Always keep an emergency stop ready
- Clear the workspace before executing motions
- Start at slow speeds
- Test in simulation first
- Monitor the robot arm during operation
6. Support
If you have questions or issues
- Refer to the Troubleshooting section
- Check ROS logs:
~/.ros/log/ - Enable debug mode:
debug_mode:=true - Check hardware connections and firmware version