ROS 2 workspace for controlling AgileX Piper arms from ROS 2 or DLS controllers.
The repository is based on AgileX's new driver stack:
pyAgxArmfor the Python CAN driveragx_arm_rosfor the official ROS 2 control, message, description, and MoveIt packages
The local ROS package named piper_sdk is kept as a thin wrapper around pyAgxArm, so the SDK is installed by colcon build without using pip install --break-system-packages.
This workspace contains the following packages:
- piper_sdk: ROS 2 wrapper around the
pyAgxArmgit submodule, automatically installed bycolcon build - agx_arm_ros: Official AgileX ROS 2 packages for control, messages, description, and MoveIt
- dls2_interface: Standard messages definition for DLS2
- dls2_piper_bridge: DLS2 hardware-abstraction-layer using the
pyAgxArmAPI
You can follow a readme based on conda here or rosdep here
To control the arm with DLS2 nodes, a single python script is provided to launch the HAL
python3 launch_piper_hal.pyTo control the arm with ROS 2 nodes, the official ROS 2 HAL can be employed.
Before using the arm, CAN-bus communication must be manually enabled
bash ./src/agx_arm_ros/scripts/can_activate.shA convenient launch file is provided in agx_arm_ctrl to run the arm control node together with the MoveIt framework
ros2 launch agx_arm_ctrl start_single_agx_arm_moveit.launch.py arm_type:=piper_l effector_type:=agx_gripper follow:=trueWarning
Running this command will move the arm to the zero configuration. Ensure that there are no obstacles nearby and always start from a nearby configuration.
This repository is maintained by Giulio Turrisi and Antonio Langella.