Skip to content

Load preset preview defaults and simplify RViz configurations - #132

Merged
kou merged 3 commits into
enactic:mainfrom
stevenaya:chore/rviz-drop-cached-link-state
Nov 11, 2026
Merged

kou merged 3 commits into
enactic:mainfrom
stevenaya:chore/rviz-drop-cached-link-state

Conversation

@stevenaya

@stevenaya stevenaya commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor

Read optional model-preview defaults from presets while keeping RViz configurations independent of saved link names.

Changes

  • Remove cached per-link display settings from the single-arm and bimanual RViz configurations. Hide TF name labels by default.
  • Read optional init_pos from systems.<system>.joints.<component>.<joint> and resolve final joint names through the existing Xacro component descriptions, even with ros2_control:=false.
  • Initialize joint_state_publisher_gui through its zeros parameters. Unspecified positions retain the publisher's defaults.
  • Expose a Python resolver accepting optional {system_name: {idx: position}} overrides. ROS bringup and Isaac are unchanged.
  • Convert optional preview.view.eye/lookat into a temporary RViz Orbit configuration in the preset root frame; remove the temporary file on shutdown. Presets without a view retain the selected RViz configuration's camera.

Preset format

systems:
  arm_system:
    joints:
      arm:
        joint4: {idx: 4, init_pos: 1.5707963267948966}
preview:
  view:
    eye: {x: -2.7, y: -2.4, z: 2.4}
    lookat: {x: 0.35, y: 0.0, z: 1.05}

Positions use radians for revolute joints and metres for prismatic joints. View coordinates use metres, with Z up. The resolver checks configured positions against the generated joints and limits. Cell-specific values are supplied separately in #131.

Validation

  • All 33 existing ROS 2 Jazzy tests pass; no tests added.
  • Manual V1/V2 expansion checks preserve generated URDF contents. System/idx overrides replace only the selected joint position.
  • With the Cell configuration from Add the V2 Cell assembly and articulated lifter #131, RViz and the joint-state GUI start successfully; both J4 parameters are pi/2 and the lifter parameter is zero. The GUI publishes the pose with its slider precision, and the temporary RViz file is removed on shutdown.

The RobotModel displays in `arm_only.rviz` and `bimanual.rviz` carried a
snapshot of the link tree from whichever model was loaded last (13 and 28
entries).  Every entry was a default value - alpha 1, no axes, no trail, all
links enabled - so they carried no display behaviour, but the names went stale:
`openarm_link8` no longer exists in the V1 single arm, `v10_body_link0` is not
the current body name, and neither file matches the V2 or Cell link sets.

Keep the five group-level keys and let RViz rebuild the tree from
`/robot_description` instead.  Nothing else changes: displays, fixed frame,
camera pose and window geometry are byte-identical, and the files no longer
need touching when a new model revision renames links.

198 lines removed, no additions.
Copilot AI balanced review requested due to automatic review settings November 11, 2026 07:07

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota. Try requesting a review at a lower effort level.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

Copilot AI balanced review requested due to automatic review settings November 11, 2026 08:06
@stevenaya stevenaya changed the title Drop cached per-link display state from the RViz configurations Load preset preview defaults and simplify RViz configurations Nov 11, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota. Try requesting a review at a lower effort level.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

Copilot AI balanced review requested due to automatic review settings November 11, 2026 08:08

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota. Try requesting a review at a lower effort level.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

@kou
kou merged commit 8ff19dc into enactic:main Nov 11, 2026
10 checks passed
kou pushed a commit that referenced this pull request Nov 12, 2026
Add the V2 Cell frame and movable lifter as a preset-driven body
component. It uses the preset-preview support merged in #132.

## Changes

- Add the Cell and lifter visuals, fitted collision geometry and
component mass properties.
- Define `openarm_cell_base_link`, `openarm_cell_lifter_link` and the
prismatic `openarm_cell_lifter_joint` (0–0.3 m). Arm and lifter-camera
reference frames follow the moving lifter; the ceiling-camera frame
stays on the fixed body.
- Add `cell_bimanual` with the arms, grippers, ZED support and separate
lifter control system. Configure the arm mounting and compensated joint
origins in the preset.
- Allow articulated body components in the shared generator and reuse
the existing preset-expansion checks.

- Set Cell preview J4 positions to pi/2, lifter position to zero, and an
eye/lookat view in the preset. Use the shared `bimanual.rviz`
configuration; no Cell-specific RViz file is added.

## Model details

The visuals include the white tabletop sheet, black metal plate and
yellow light-curtain housings. Collision geometry uses 12 boxes and five
triangular prisms. The lifter mass estimate is 2.82498 kg; its inertia
uses component boxes and the parallel-axis theorem.

## Validation

- All 35 existing Cell-branch ROS 2 Jazzy tests pass. The two cases
beyond main cover articulated body generation and control declarations;
no tests were added during this rebase.
- The redundant Cell RViz configuration was removed; model and mesh
contents are unchanged by that cleanup. No README or development records
are included.
- Real lifter hardware integration remains separate from the model and
mock-control checks.

[Review only the Cell
changes](stevenaya/openarm_description@81544ac...c6c69ba).

This branch was successfully deployed

1 active deployment
release — 780fed35 Deployed Nov 11, 2026 by stevenaya via Publish #490
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants