Skip to content

Forwardport/Humble v1.9.3 features to v2.2 - #130

Merged
munseng-flexiv merged 5 commits into
release/humble-v2.2from
feature/humble-v2.2-forwardport-v1.9.3
Sep 10, 2026
Merged

munseng-flexiv merged 5 commits into
release/humble-v2.2from
feature/humble-v2.2-forwardport-v1.9.3

Conversation

@munseng-flexiv

Copy link
Copy Markdown
Collaborator

Backport of #127

Forward-ports the features released in #126 (humble-v1.9.3, RDK v1.9.3, Rizon/AICO) onto the v2 line for the Enlight and MICO series on RDK v2.2.

Included

Excluded

  • Rizon 10R support — v1.x only.

RDK v2.2 adaptations

v1.9.3 v2.2
Enable() ServoOn()
OperationalStatus::NOT_ENABLED NOT_SERVO_ON
RobotInfo::DoF / DoF_e / DoF_m per-JointGroup DoF map
RobotInfo::model_name ProductModelNames().at(product_model)
kOpStatusNames / kModeNames maps OperationalStatusNames() / ModeNames() accessors
SetJointImpedance(K_q, Z_q) SetJointImpedance(group, K_q, Z_q), one call per group
  • run_auto_recovery dropped — no RDK v2.2 equivalent. Recovery state is refused with a message pointing at Flexiv Elements, rather than keeping a dead goal field.
  • Impedance interface covers arm joints only — no K_q_nom is reported for external axes, so a MICO torso request has no bound to validate against.
  • Connection stays in on_init — export_state_interfaces() needs info().all_groups and runs before on_configure. on_configure reconnects after on_cleanup, so connection-loss recovery still works.

Humble adaptations

Two ros2_control / rclcpp APIs used by the Jazzy forward-port (#127) do not exist in Humble:

Jazzy Humble
on_init(HardwareComponentInterfaceParams&), executor supplied by the controller manager on_init(HardwareInfo&), no executor supplied
create_service(..., rclcpp::ServicesQoS(), cb_group) create_service(..., rmw_qos_profile_services_default, cb_group)
  • The hardware component owns its executor — Humble hands the component no executor, so FlexivHardwareInterface holds a MultiThreadedExecutor plus a spin thread, started in StartSupervisoryNodes() and torn down in Disconnect().
  • GPIO ports raised 20 → 24 to match flexiv::rdk::kIOPorts (16 on the control box, then the M8 connector of each wrist, then the pogo pin connector of each wrist, 2 ports each). num_gpio_ports is now threaded through the dual-arm and MICO ros2_control xacros instead of being hardcoded.

@munseng-flexiv
munseng-flexiv merged commit f212b63 into release/humble-v2.2 Sep 10, 2026
2 checks passed
@munseng-flexiv
munseng-flexiv deleted the feature/humble-v2.2-forwardport-v1.9.3 branch September 10, 2026 05:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants