Skip to main content

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.

License ROS2

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

ParameterDefaultDescription
robot_versionv5_6Robot arm version (v5_5 or v5_6)
gripper_type50mmGripper stroke (50mm or 100mm)
port/dev/ttyACM0Serial 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:

  1. Check cable connections
  2. Verify port name: ls /dev/tty*
  3. Check permissions: ls -l /dev/ttyACM0
  4. Add user to the dialout group: sudo usermod -a -G dialout $USER

4.2 Controller Failure

Problem: Controller fails to start

Solution:

  1. Check hardware interfaces: ros2 control list_hardware_interfaces
  2. Check controllers: ros2 control list_controllers
  3. Verify the robot arm is connected and powered on

4.3 Motion Execution Issues

Problem: Planning succeeds but execution fails

Solution:

  1. Verify firmware version is correctly detected (check logs)
  2. Ensure gripper type matches hardware (50 mm vs 100 mm)
  3. Use debug_mode:=true to monitor serial communication

5. Safety Precautions

Important Safety Guidelines
  1. Always keep an emergency stop ready
  2. Clear the workspace before executing motions
  3. Start at slow speeds
  4. Test in simulation first
  5. Monitor the robot arm during operation

6. Support

If you have questions or issues
  1. Refer to the Troubleshooting section
  2. Check ROS logs: ~/.ros/log/
  3. Enable debug mode: debug_mode:=true
  4. Check hardware connections and firmware version