Repository navigation
Feature/Add option to start RDK in realtime (RT) control modes (backport #134) - #135
Merged
munseng-flexiv merged 2 commits intoOct 9, 2026
Conversation
(cherry picked from commit 5709191) # Conflicts: # flexiv_hardware/src/flexiv_dual_hardware_interface.cpp # flexiv_hardware/src/flexiv_hardware_interface.cpp
Author
|
Cherry-pick of 5709191 has failed: To fix up this pull request, you can check it out locally. See documentation: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally |
munseng-flexiv
requested review from
bsoe-flexiv,
munseng-flexiv,
pzhu-flexiv,
xyyeh-flexiv and
zfquek-flexiv
October 9, 2026 07:40
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.
Add a
rdk_realtime_modelaunch argument to switch the RDK control modes of Flexiv hardware interfaces from non-real-time to real-time:In the real-time modes, commands are streamed every control cycle with the RDK API
StreamJointPosition()andStreamCartesianMotionForce(), instead of being sent withSendJointPosition()andSendCartesianMotionForce()and smoothed by the robot's motion generator. The effort interface stays in RT_JOINT_TORQUE.Changes
flexiv_hardwarerdk_realtime_mode(defaultfalse). It selects the joint mode fromrdk_control_modeand the Cartesian mode.max_joint_accelerationand the Cartesian motion limits apply only to the non-real-time modes.~/set_cartesian_motion_limitsis refused in RT_CARTESIAN_MOTION_FORCE.SetTimelinessFailureLimit()), the RDK only logs a warning per command and keeps tracking. The driver therefore checksreached_timeliness_failure_limit()after each streamed command:withhold_on_timeliness_failure(defaulttrue).falseonly logs a warning and keeps streaming, as the RDK and DRDK do.rdk_control_mode:=joint_impedancein RT_JOINT_IMPEDANCE.StreamJointPosition()), andStop()on one robot drops it toIDLE. So stopping one arm's controller keeps both robots in the mode: the released arm holds while the other keeps streaming, and the pair stops only when no joint controller remains.flexiv_hardware/urdf/flexiv.urdf.xacro,flexiv.ros2_control.xacroandrizon_dual.ros2_control.xacro— newrdk_realtime_modeandwithhold_on_timeliness_failurearguments.flexiv_bringup—rdk_realtime_modeandwithhold_on_timeliness_failureadded torizon.launch.py,rizon_dual.launch.py,aico1.launch.pyandaico2.launch.py, and to their*_moveit.launch.pytwins somove_groupbuilds the samerobot_description.README.mdandflexiv_hardware/README.md— new launch arguments and a Real-time control modes section.Examples
Start the driver in a real-time mode:
This is an automatic backport of pull request #134 done by [Mergify](https://mergify.com).