Skip to content
justagistPublic

About

C++ SDK for the AgileX Piper with ROS2 and Moveit Support

Topics

Resources

Stars

8 stars

Watchers

1 watching

Forks

Repository files navigation

Piper CPP

ci License: MIT ROS 2 Jazzy C++17

  • piper_cpp -- C++ SDK for the AgileX Piper 6-DOF arm with gripper. This is a standalone pure C++ library.
  • piper_cpp_ros -- A ros2_control hardware interface for the AgileX Piper 6-DOF arm and its optional parallel-jaw gripper, built on top of piper_cpp. Exposes position / velocity / effort state and position commands per arm joint, plus a 7th prismatic gripper joint when enabled.
  • piper_cpp_moveit -- MoveIt 2 configuration for the AgileX Piper 6-DOF arm. Plans on the arm alone or, with with_gripper:=true, on the arm + gripper together.

piper_cpp.gif

Supported protocol versions

The CAN protocol follows the official piper_sdk protocol definitions at commit b847e539. The protocol is chosen by the interface class you construct, never detected from the arm.

Protocol Firmware (per piper_sdk) Upstream definition piper_cpp class piper_cpp_ros
V2 (default) V1.5-2 up to, not including, V1.8-8 INTERFACE_V2.MD PiperInterfaceV2 protocol_version:=2
V3 V1.8-8 and later INTERFACE_V3.MD, CHANGELOG-V3.MD PiperInterfaceV3 protocol_version:=3

INTERFACE_V2.MD itself only says "V1.5-2 and later"; the upper bound comes from the piper_sdk README, which says to use the V3 interface from firmware V1.8-8. On that firmware V2 misreads at least MOVE M and the MIT commands.

Firmware older than V1.5-2 (the piper_sdk 0.0.x line) is not supported. Some V2 features need newer firmware than V1.5-2 (for example MOVE CPV needs V1.8-1); the method docs say where. V3 is tested against the Python SDK's encoder and decoder only, not on a physical arm. See Protocol V3 for what changes.

License

MIT -- see LICENSE.

About

C++ SDK for the AgileX Piper with ROS2 and Moveit Support

Topics

Resources

Stars

8 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages