Release/Flexiv ROS 2 Humble 2.1 - #110
Merged
Merged
Conversation
… position streaming
…ers and collision rules
munseng-flexiv
requested review from
bsoe-flexiv,
Copilot,
pzhu-flexiv,
xyyeh-flexiv and
zfquek-flexiv
June 25, 2026 10:06
Collaborator
Author
|
TODO:
|
There was a problem hiding this comment.
Pull request overview
Release update for Flexiv ROS 2 Humble “2.1”, aligning the stack with Flexiv RDK v2.1 and extending bringup/MoveIt support to multiple robot topologies (single-arm, dual-arm, and MICO variants) under a unified hardware interface.
Changes:
- Added topology-aware launch/config selection (dual-arm + MICO), including per-arm robot-states broadcasters and dual gripper nodes.
- Updated messaging/config to match RDK v2.1 (e.g.,
RobotStatesstruct change) and switched joint streaming to RT modes. - Expanded MoveIt SRDF/configs for dual-arm planning groups and MICO torso group, plus added topology-specific controller YAMLs.
Reviewed changes
Copilot reviewed 30 out of 30 changed files in this pull request and generated 11 comments.
Show a summary per file
| File | Description |
|---|---|
| README.md | Updates install/runtime guidance, robot types, examples, and GPIO port count. |
| flexiv.humble.repos | Bumps flexiv_rdk reference to v2.1. |
| flexiv_test_nodes/README.md | Updates test-node parameters (adds joint_group, removes network_interface). |
| flexiv_test_nodes/launch/robot_states_publisher.launch.py | Updates launch args/params for v2.1 test node. |
| flexiv_test_nodes/flexiv_test_nodes/robot_states_publisher.py | Adapts to RDK v2.1 states() dict API and removes obsolete network interface handling. |
| flexiv_test_nodes/flexiv_test_nodes/robot_states_monitor.py | Updates default SN format and documents dash→underscore topic sanitization. |
| flexiv_msgs/msg/RobotStates.msg | Removes tau_des field to match RDK v2.1. |
| flexiv_msgs/CMakeLists.txt | Removes CycloneDDS-only ROSIDL generation workaround. |
| flexiv_moveit_config/srdf/flexiv.srdf.xacro | Adds dual-arm/MICO SRDF structure, planning groups, and disable-collisions. |
| flexiv_moveit_config/config/ompl_planning.yaml | Adds planner configs for dual-arm and torso groups. |
| flexiv_moveit_config/config/moveit_controllers.yaml | Clarifies single-arm-only controller file usage. |
| flexiv_moveit_config/config/moveit_controllers_dual.yaml | Adds dual-arm MoveIt controller mapping (arm + gripper). |
| flexiv_moveit_config/config/moveit_controllers_mico.yaml | Adds MICO MoveIt controller mapping (arms+torso + gripper). |
| flexiv_moveit_config/config/kinematics.yaml | Adds kinematics entries for left/right arm groups. |
| flexiv_moveit_config/config/joint_limits.yaml | Adds left/right joint limits for dual-arm joint naming. |
| flexiv_hardware/src/flexiv_hardware_interface.cpp | Adds joint-group layout handling (incl. EXT_AXIS), switches to RT modes and streaming APIs, updates activation and state-handle refresh. |
| flexiv_hardware/include/flexiv_hardware/flexiv_hardware_interface.hpp | Updates command buffer types to RT command structs. |
| flexiv_hardware/CMakeLists.txt | Bumps to C++20 for RDK compatibility. |
| flexiv_gripper/src/gripper_action_server.cpp | Adds per-joint-group gripper control for dual-arm; updates RDK API usage. |
| flexiv_gripper/launch/flexiv_gripper.launch.py | Adds joint_group launch arg and passes through to node. |
| flexiv_gripper/include/flexiv_gripper/gripper_action_server.hpp | Stores selected joint group and updates stop behavior. |
| flexiv_gripper/CMakeLists.txt | Bumps to C++20. |
| flexiv_controllers/flexiv_robot_states_broadcaster/include/flexiv_robot_states_broadcaster/flexiv_robot_states.hpp | Removes tau_des mapping. |
| flexiv_controllers/flexiv_robot_states_broadcaster/CMakeLists.txt | Bumps to C++20. |
| flexiv_bringup/launch/test_joint_trajectory_controller.launch.py | Updates serial-number example formatting. |
| flexiv_bringup/launch/flexiv.launch.py | Refactors bringup to OpaqueFunction and adds topology-aware controller/gripper/broadcaster orchestration. |
| flexiv_bringup/launch/flexiv_moveit.launch.py | Mirrors bringup refactor for MoveIt (topology-aware configs + sequencing). |
| flexiv_bringup/config/flexiv_dual_controllers.yaml | Adds ros2_control controller config for dual-arm topology. |
| flexiv_bringup/config/flexiv_mico_controllers.yaml | Adds ros2_control controller config for MICO torso topology. |
| .github/workflows/humble-binary-build.yml | Removes CycloneDDS pinning and installs, aligning CI with default middleware. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
… for dual-arm grippers
zfquek-flexiv
approved these changes
Jun 29, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
COMPATIBILITY
ADD
FlexivHardwareInterface.flexiv_dual_controllers.yaml(14-joint dual arm) andflexiv_mico_controllers.yaml(16-joint dual arm + pan-tilt torso), with per-armflexiv_robot_states_broadcaster.flexiv_gripper: one gripper node per arm group (ARM_1/ARM_2), withgripper_name_left/gripper_name_rightlaunch arguments and serialized readiness gating.left_arm,right_arm,both_arms) and the MICO pan-tilt<robot_sn>_torso, plusmoveit_controllers_dual.yaml/moveit_controllers_mico.yamland the required inter-linkdisable_collisions.joint_groupparameter on therobot_states_publishertest node to publish a chosen RDK joint group (ALL/ARM_1/ARM_2).CHANGE
flexiv_rdkdependency to v2.1RT_JOINT_POSITION+StreamJointPosition(replacing NRTSendJointPosition)rmw_fastrtps_cpp).flexiv.launch.pyandflexiv_moveit.launch.pyto anOpaqueFunctionstructure that selects controllers, SRDF groups, and broadcasters by robot topology.flexiv_hardware,flexiv_gripper, andflexiv_robot_states_broadcasterto C++20.flexiv_msgs/RobotStatesto match the RDK v2.1 struct (removedtau_des)robot_states_publishertest node for the v2.1states()dict API and dropped the obsoletenetwork_interfaceoption removed from the RDKRobotconstructor.FIX
ARM_1group (dual-arm usesARM_1/ARM_2).disable_collisionsin the SRDF to fix the self-collision errors.flexiv_moveit.launch.pywithflexiv.launch.pyso dual-arm grippers, MICO topology, and theflexiv_arm_controllerstart correctly under MoveIt.