Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 59 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
name: ci

on:
push:
branches: [main]
pull_request:

permissions:
contents: read

jobs:
# piper_cpp is a plain CMake library with no ROS dependency; build it the way the
# README documents for non-ROS users.
standalone:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v5
with:
persist-credentials: false
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
build-essential cmake pkg-config libsocketcan-dev libgtest-dev
- name: Configure
run: cmake -S piper_cpp -B build -DCMAKE_BUILD_TYPE=Release
- name: Build
run: cmake --build build -j
- name: Test
run: ctest --test-dir build --output-on-failure
Comment thread
justagist marked this conversation as resolved.

ros:
runs-on: ubuntu-24.04
container: ros:jazzy
steps:
- uses: actions/checkout@v5
with:
path: src/piper_cpp
persist-credentials: false
- name: Install dependencies
# piper_cpp has no package.xml, so rosdep neither sees its libsocketcan dependency nor
# recognises it as a source package when piper_cpp_ros depends on it.
# piper_description is an external runtime dependency not needed to build.
run: |
apt-get update
apt-get install -y --no-install-recommends libsocketcan-dev libgtest-dev
Comment thread
justagist marked this conversation as resolved.
rosdep update
rosdep install --from-paths src --ignore-src -y --skip-keys "piper_cpp piper_description"
- name: Build
shell: bash
run: |
source /opt/ros/jazzy/setup.bash
colcon build --packages-up-to piper_cpp_ros piper_cpp_moveit --event-handlers console_cohesion+
- name: Test
shell: bash
run: |
source /opt/ros/jazzy/setup.bash
colcon test --packages-select piper_cpp piper_cpp_ros piper_cpp_moveit --event-handlers console_cohesion+
colcon test-result --verbose
7 changes: 6 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
# Piper CPP

[![ci](https://github.com/justagist/piper_cpp/actions/workflows/ci.yml/badge.svg)](https://github.com/justagist/piper_cpp/actions/workflows/ci.yml)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
[![ROS 2 Jazzy](https://img.shields.io/badge/ROS_2-Jazzy-blue)](https://docs.ros.org/en/jazzy/)
[![C++17](https://img.shields.io/badge/C%2B%2B-17-blue)](piper_cpp/CMakeLists.txt)

- [piper_cpp](piper_cpp) -- C++ SDK for the AgileX Piper 6-DOF arm with gripper. This is a standalone pure C++ library.
- [piper_cpp_ros](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
Expand All @@ -11,4 +16,4 @@ alone or, with `with_gripper:=true`, on the arm + gripper together.

## License

MIT — see [LICENSE](../LICENSE).
MIT -- see [LICENSE](LICENSE).
4 changes: 4 additions & 0 deletions piper_cpp/README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# piper_cpp

[![ci](https://github.com/justagist/piper_cpp/actions/workflows/ci.yml/badge.svg)](https://github.com/justagist/piper_cpp/actions/workflows/ci.yml)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](../LICENSE)
[![C++17](https://img.shields.io/badge/C%2B%2B-17-blue)](CMakeLists.txt)

C++ SDK for the AgileX Piper 6-DOF arm with gripper, communicating over SocketCAN. A close
port of the official [`piper_sdk`](https://github.com/agilexrobotics/piper_sdk) Python package
with the same control surface and message coverage, but with several improvements such as
Expand Down
6 changes: 5 additions & 1 deletion piper_cpp_moveit/README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# piper_cpp_moveit

[![ci](https://github.com/justagist/piper_cpp/actions/workflows/ci.yml/badge.svg)](https://github.com/justagist/piper_cpp/actions/workflows/ci.yml)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](../LICENSE)
[![ROS 2 Jazzy](https://img.shields.io/badge/ROS_2-Jazzy-blue)](https://docs.ros.org/en/jazzy/)

MoveIt 2 configuration for the AgileX Piper 6-DOF arm and its optional parallel-jaw
gripper. Plans against the URDF from `piper_description` and dispatches the resulting
trajectories through the `joint_trajectory_controller` (and `gripper_controller`, when
Expand Down Expand Up @@ -90,4 +94,4 @@ they're what selects the URDF, SRDF, and controllers config.

## License

MIT -- see [../piper_cpp/LICENSE](../piper_cpp/LICENSE).
MIT -- see [../LICENSE](../LICENSE).
5 changes: 5 additions & 0 deletions piper_cpp_ros/README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
# piper_cpp_ros

[![ci](https://github.com/justagist/piper_cpp/actions/workflows/ci.yml/badge.svg)](https://github.com/justagist/piper_cpp/actions/workflows/ci.yml)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](../LICENSE)
[![ROS 2 Jazzy](https://img.shields.io/badge/ROS_2-Jazzy-blue)](https://docs.ros.org/en/jazzy/)
[![C++17](https://img.shields.io/badge/C%2B%2B-17-blue)](CMakeLists.txt)

ros2_control hardware interface for the AgileX Piper 6-DOF arm and its optional parallel-jaw
gripper, built on top of [`piper_cpp`](../piper_cpp).

Expand Down