Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
94 commits
Select commit Hold shift + click to select a range
bb80d11
Update README
pzhu-flexiv May 5, 2026
75b090a
Remove fast-dds and related dependencies, replace with zenoh
pzhu-flexiv May 5, 2026
d51fbfb
Bump project version
pzhu-flexiv May 5, 2026
e51fbb6
Update license notice
pzhu-flexiv May 5, 2026
d33a8a7
Add inline to const maps
pzhu-flexiv May 5, 2026
f0debe5
Add input parameter friction_comp_scale to RtJointTorqueCmd
pzhu-flexiv May 5, 2026
6f5ccca
Add NrtCartesianMultiWaypointCmd struct
pzhu-flexiv May 5, 2026
e2b8875
Add Robot::SendCartesianMotionForceMultiWaypoint()
pzhu-flexiv May 5, 2026
fe6ffa8
Remove parameter network_interface_whitelist from Robot constructor
pzhu-flexiv May 5, 2026
e768db7
Update libflexiv_rdk.x86_64-linux-gnu.a.sha256
pzhu-flexiv May 5, 2026
cd4f499
Update libflexiv_rdk.aarch64-linux-gnu.a.sha256
pzhu-flexiv May 5, 2026
009a583
Print reset values in examples
pzhu-flexiv May 5, 2026
33e3dee
Add ProductModel enum and kProductModelNames map to data.hpp
pzhu-flexiv May 20, 2026
b62e12d
Add ALL and EXT_AXIS to JointGroup
pzhu-flexiv May 20, 2026
3032719
Replace RobotInfo::model_name string with product_model enum
pzhu-flexiv May 20, 2026
77bc7aa
Add RobotInfo::all_groups map and single_arm_groups map
pzhu-flexiv May 20, 2026
8890fe5
Combine all DoF variants in RobotInfo to a single DoF map
pzhu-flexiv May 20, 2026
1535a87
Remove RobotInfo::has_FT_sensor
pzhu-flexiv May 20, 2026
afb936e
Change limits and nominal values in RobotInfo to maps
pzhu-flexiv May 20, 2026
e77832b
Update doc
pzhu-flexiv May 20, 2026
0c38f7c
Remove size limit on file transfer in FileIO
pzhu-flexiv May 20, 2026
7f39c26
Remove length limit from Robot::ExecutePrimitive() and SetGlobalVaria…
pzhu-flexiv May 20, 2026
d145c38
Update the Gripper interface to support multiple joint groups
pzhu-flexiv May 20, 2026
ca3fc3e
Update the Safety interface to support multiple joint groups
pzhu-flexiv May 20, 2026
9fd1e2e
Change vectors in SafetyLimits struct to maps
pzhu-flexiv May 20, 2026
638b94c
Update the Tool interface to support multiple joint groups
pzhu-flexiv May 20, 2026
bb96f27
Add IKParams and IKResult structs to model.hpp. Replace Model::reacha…
pzhu-flexiv May 20, 2026
c785c77
Update the Model interface to support multiple joint groups
pzhu-flexiv May 20, 2026
6f662e8
Change accepted serial number format passed to Robot constructor
pzhu-flexiv May 20, 2026
528ce51
Remove Robot::groups(), info migrated to RobotInfo
pzhu-flexiv May 20, 2026
4bda99c
Add Robot::Home()
pzhu-flexiv May 20, 2026
391e0fe
Remove [groups] input parameter from Robot::Brake(), the function app…
pzhu-flexiv May 20, 2026
759f24a
Change Robot::primitive_states() to return for only the joint groups …
pzhu-flexiv May 20, 2026
158b781
Add valid joint group check to Robot functions
pzhu-flexiv May 20, 2026
a2aa00a
Add Robot::digital_outputs()
pzhu-flexiv May 20, 2026
159005b
Add utility::IsSingleArmGroup()
pzhu-flexiv May 20, 2026
aa26d41
Add utility::PrimitiveStateTrueForGroups()
pzhu-flexiv May 20, 2026
29e294d
Use nested namespace
pzhu-flexiv May 20, 2026
4a50c54
Update libflexiv_rdk.x86_64-linux-gnu.a.sha256
pzhu-flexiv May 20, 2026
51e92d0
Update examples and tests
pzhu-flexiv May 21, 2026
e0fcdd6
Add joint group checks
pzhu-flexiv May 22, 2026
33c23df
Change input parameter of Gripper::Init() from vector to scalar
pzhu-flexiv May 22, 2026
36f05de
Remove Robot::RunAutoRecovery(), only permitted to run recovery durin…
pzhu-flexiv May 22, 2026
0c5c3e0
Update utility::PrimitiveStateTrueForGroups, remove overload
pzhu-flexiv May 22, 2026
f886830
Update sha256
pzhu-flexiv May 22, 2026
92428c3
Overload utility::PrimitiveStateTrueForGroups
pzhu-flexiv May 22, 2026
ee7c2cc
Remove auto recovery examples, update examples
pzhu-flexiv May 22, 2026
83c9151
Set policy CMP0167
pzhu-flexiv May 22, 2026
419d296
Fix wait_primitive_transition() in AGENT_REFERENCE_primitives_only.py
pzhu-flexiv May 22, 2026
89d4f21
Overload primitive_state_true_for_groups() in utility.py
pzhu-flexiv May 22, 2026
c32c523
Compile python examples in github workflows
pzhu-flexiv May 22, 2026
ee7093b
Add new github workflow python.yml
pzhu-flexiv May 22, 2026
d9b7815
Rename shared_steps to shared_cpp_steps, rename cmake.yml to cpp.yml
pzhu-flexiv May 22, 2026
c66e618
Rename cpp jobs
pzhu-flexiv May 22, 2026
7f3fd74
Add job names, update badge url
pzhu-flexiv May 22, 2026
dc3b787
Update llms.txt
pzhu-flexiv May 22, 2026
5db50e6
fix dangling reference in examples
pzhu-flexiv May 27, 2026
b0b9d6d
Print digital outputs in basics1_display_robot_states examples
pzhu-flexiv May 28, 2026
738a66d
Remove setting LD_LIBRARY_PATH
pzhu-flexiv May 28, 2026
7a5bb46
Add unit tests for C++ and Python to test Robot construction
pzhu-flexiv May 29, 2026
1ac0ee3
Update kIOPorts
pzhu-flexiv Jun 18, 2026
ce509cd
Change OperationalStatus::NOT_ENABLED to NOT_SERVO_ON to be consisten…
pzhu-flexiv Jun 18, 2026
c713144
Update docs of RobotStates
pzhu-flexiv Jun 18, 2026
d34adc6
Add RobotActions struct to define robot actions data in joint and Car…
pzhu-flexiv Jun 18, 2026
2fe85c4
Replace RobotStates::tau_des with RobotActions::tau_d
pzhu-flexiv Jun 18, 2026
918f568
Add SyncMotionMode enum for synchronous motion control
pzhu-flexiv Jun 18, 2026
62cf820
Replace Robot::LockExternalAxes() and SyncWithPositioner() with new e…
pzhu-flexiv Jun 18, 2026
3249b62
Fix typo
pzhu-flexiv Jun 18, 2026
240b961
Add Robot::actions() method to retrieve current actions data for join…
pzhu-flexiv Jun 18, 2026
fe0e815
Change Robot::estop_released() to cover all connected estop devices
pzhu-flexiv Jun 18, 2026
39538fb
Change enabling_button_pressed() to enabling_device_on() to cover all…
pzhu-flexiv Jun 18, 2026
63fb922
Rename Enable() to ServoOn() to be consistent with UI
pzhu-flexiv Jun 18, 2026
92918b0
Add restriction on joint group inputs to joint-space control functions
pzhu-flexiv Jun 18, 2026
02f74ae
Update libflexiv_rdk.x86_64-linux-gnu.a.sha256
pzhu-flexiv Jun 18, 2026
cdf5dcf
Update libflexiv_rdk.aarch64-linux-gnu.a.sha256
pzhu-flexiv Jun 18, 2026
ff6fc47
Update libflexiv_rdk.arm64-darwin.a.sha256
pzhu-flexiv Jun 19, 2026
5cdcef0
Update flexiv_rdk.win_amd64.lib.sha256
pzhu-flexiv Jun 19, 2026
cb0307c
Fix Windows support in install_zenoh.sh
pzhu-flexiv Jun 19, 2026
c040079
Update C++ examples
pzhu-flexiv Jun 19, 2026
0b1229e
Update Python examples
pzhu-flexiv Jun 19, 2026
16b6d6d
Update agent references
pzhu-flexiv Jun 19, 2026
a62207c
Replace Rizon with Enlight in examples
pzhu-flexiv Jun 19, 2026
2c1e043
Update primitives url
pzhu-flexiv Jun 19, 2026
f1f307a
Update README
pzhu-flexiv Jun 19, 2026
733371e
Update README
pzhu-flexiv Jun 19, 2026
a6a7bee
Update test programs
pzhu-flexiv Jun 19, 2026
37cbb17
Update github workflow to use os matrix
pzhu-flexiv Jun 19, 2026
54b9f8b
Update CI workflow names and restrict branches to main only
pzhu-flexiv Jun 19, 2026
85fbea5
Revert to windows-2022
pzhu-flexiv Jun 19, 2026
86f4115
Add permissions section to CI workflows for consistency
pzhu-flexiv Jun 19, 2026
bfd0779
Update CMakeLists.txt to set C++20 standard using target_compile_feat…
pzhu-flexiv Jun 20, 2026
60427fd
Enhance gripper control by adding a scope guard for the print thread …
pzhu-flexiv Jun 21, 2026
618898c
Fix gripper control examples
pzhu-flexiv Jun 21, 2026
02474cf
Fix examples
pzhu-flexiv Jun 27, 2026
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
34 changes: 34 additions & 0 deletions .github/workflows/ci-cpp.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: CI-Cpp

on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:

permissions:
contents: read

env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true"
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: Release

jobs:
ci-cpp:
name: CI-Cpp @ ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-22.04
- ubuntu-22.04-arm
- ubuntu-24.04
- ubuntu-24.04-arm
- macos-14
- windows-2022
steps:
- uses: actions/checkout@v6
- uses: ./.github/workflows/shared_cpp_steps
Comment thread
github-advanced-security[bot] marked this conversation as resolved.
Fixed
37 changes: 37 additions & 0 deletions .github/workflows/ci-python.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: CI-Python

on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:

permissions:
contents: read

env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true"

jobs:
ci-python:
name: CI-Python @ ${{ matrix.os }} (${{ matrix.python-version }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-22.04
- ubuntu-22.04-arm
- ubuntu-24.04
- ubuntu-24.04-arm
- macos-14
- windows-2022
python-version:
- "3.10"
- "3.12"
steps:
- uses: actions/checkout@v6
- uses: ./.github/workflows/shared_python_steps
with:
python-version: ${{ matrix.python-version }}
46 changes: 0 additions & 46 deletions .github/workflows/cmake.yml

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: "Shared Build Steps"
name: "Shared Check Steps for C++"
runs:
using: "composite"
# Note: working directory will be reset to the repo root for each new step
Expand All @@ -25,7 +25,7 @@ runs:
cmake .. -DCMAKE_INSTALL_PREFIX=~/rdk_install
cmake --build . --target install --config Release

# Find and link to flexiv_rdk library, then build all example programs.
# Find and link to flexiv_rdk library, then build all examples.
- name: Build examples
shell: bash
run: |
Expand All @@ -34,11 +34,17 @@ runs:
cmake .. -DCMAKE_PREFIX_PATH=~/rdk_install
cmake --build . --config Release -j 8

# Find and link to flexiv_rdk library, then build all test programs.
# Find and link to flexiv_rdk library, then build all tests.
- name: Build tests
shell: bash
run: |
cd test
mkdir -p build && cd build
cmake .. -DCMAKE_PREFIX_PATH=~/rdk_install
cmake --build . --config Release -j 8

- name: Run unit tests
shell: bash
run: |
cd test/build
ctest --output-on-failure
41 changes: 41 additions & 0 deletions .github/workflows/shared_python_steps/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: "Shared Check Steps for Python"
inputs:
python-version:
description: "Python version used for example compilation checks"
required: true
runs:
using: "composite"
steps:
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: ${{ inputs.python-version }}

- name: Install latest flexivrdk
shell: bash
run: |
python -m pip install --upgrade pip
python -m pip install flexivrdk

- name: Byte-compile Python examples
shell: bash
run: |
python - <<'PY'
from pathlib import Path
import py_compile

root = Path('example_py')
files = sorted(
path for path in root.glob('*.py')
if path.name.startswith('basics') or path.name.startswith('intermediate')
)

for path in files:
py_compile.compile(str(path), doraise=True)
print(f'py_compile OK: {path}')
PY

- name: Run unit tests
shell: bash
run: |
python test/test_robot_constructor.py -v
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
.vscode
.vs
.venv
.DS_Store
*.a
*.so
Expand Down
31 changes: 20 additions & 11 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,12 @@ cmake_minimum_required(VERSION 3.22.1)
# ===================================================================
# PROJECT SETUP
# ===================================================================
project(flexiv_rdk VERSION 2.0)
project(flexiv_rdk VERSION 2.1 LANGUAGES CXX)

# CMake >= 3.30 warns for FindBoost behavior unless CMP0167 is explicitly set.
if(POLICY CMP0167)
cmake_policy(SET CMP0167 OLD)
endif()

# Configure build type
if(NOT CMAKE_BUILD_TYPE)
Expand Down Expand Up @@ -40,7 +45,7 @@ elseif(${CMAKE_SYSTEM_NAME} MATCHES "QNX")
elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64le")
set(RDK_LIB "libflexiv_rdk.aarch64-qnx.a")
else()
message(FATAL_ERROR "Linux with ${CMAKE_SYSTEM_PROCESSOR} processor is currently not supported.")
message(FATAL_ERROR "QNX with ${CMAKE_SYSTEM_PROCESSOR} processor is currently not supported.")
endif()
else()
message(FATAL_ERROR "${CMAKE_SYSTEM_NAME} is currently not supported.")
Expand Down Expand Up @@ -80,13 +85,13 @@ message(STATUS "Found Eigen3 v${Eigen3_VERSION}: ${Eigen3_DIR}")
find_package(spdlog 1.9.2 REQUIRED)
message(STATUS "Found spdlog v${spdlog_VERSION}: ${spdlog_DIR}")

# Fast-DDS
find_package(fastdds 3.5.0 REQUIRED)
message(STATUS "Found fastdds v${fastdds_VERSION}: ${fastdds_DIR}")
# zenoh-c
find_package(zenohc 1.9.0 REQUIRED)
message(STATUS "Found zenohc v${zenohc_VERSION}: ${zenohc_DIR}")

# Fast-CDR
find_package(fastcdr 2.3.5 REQUIRED)
message(STATUS "Found fastcdr v${fastcdr_VERSION}: ${fastcdr_DIR}")
# zenoh-cpp
find_package(zenohcxx 1.9.0 REQUIRED)
message(STATUS "Found zenohcxx v${zenohcxx_VERSION}: ${zenohcxx_DIR}")

# RBDyn
set(Boost_USE_STATIC_LIBS OFF)
Expand All @@ -113,19 +118,23 @@ target_link_libraries(${PROJECT_NAME} PUBLIC
Threads::Threads
Eigen3::Eigen
spdlog::spdlog
fastdds
fastcdr
zenohcxx::zenohc
RBDyn::RBDyn
RBDyn::Parsers
)

# C++20 required (PUBLIC so the standard propagates to consumers)
target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_20)

# Use moderate compiler warning option
if(CMAKE_HOST_UNIX)
target_compile_options(${PROJECT_NAME} PUBLIC -Wall -Wextra)
else()
target_compile_options(${PROJECT_NAME} PUBLIC /W1)
endif()

# Install the library
# ===================================================================
# LIBRARY INSTALLATION
# ===================================================================
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/FlexivInstallLibrary.cmake)
FlexivInstallLibrary()
4 changes: 1 addition & 3 deletions LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -205,9 +205,7 @@
- boost: https://github.com/boostorg/boost/blob/master/LICENSE_1_0.txt
- spdlog: https://github.com/gabime/spdlog/blob/master/LICENSE
- tinyxml2: https://github.com/leethomason/tinyxml2/blob/master/LICENSE.txt
- foonathan_memory_vendor: https://github.com/eProsima/foonathan_memory_vendor/blob/master/LICENSE
- Fast-CDR: https://github.com/eProsima/Fast-CDR/blob/master/LICENSE
- Fast-DDS: https://github.com/eProsima/Fast-DDS/blob/master/LICENSE
- yaml-cpp: https://github.com/jbeder/yaml-cpp/blob/master/LICENSE
- SpaceVecAlg: https://github.com/jrl-umi3218/SpaceVecAlg/blob/master/LICENSE
- RBDyn: https://github.com/jrl-umi3218/RBDyn/blob/master/LICENSE
- Zenoh: https://github.com/eclipse-zenoh/zenoh/blob/main/LICENSE
Loading
Loading