Skip to content

Add the V2 Cell assembly and articulated lifter - #131

Merged
kou merged 2 commits into
enactic:mainfrom
stevenaya:feat/v2-cell-description
Nov 12, 2026
Merged

kou merged 2 commits into
enactic:mainfrom
stevenaya:feat/v2-cell-description

Conversation

@stevenaya

@stevenaya stevenaya commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor

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
stevenaya force-pushed the feat/v2-cell-description branch from 86c6c34 to d650f5d Compare November 11, 2026 06:45
@stevenaya
stevenaya force-pushed the feat/v2-cell-description branch from ffdda77 to 68a94c0 Compare November 11, 2026 08:20
kou pushed a commit that referenced this pull request Nov 11, 2026
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

```yaml
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 #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.
@stevenaya
stevenaya force-pushed the feat/v2-cell-description branch from 68a94c0 to 2b8c01a Compare November 11, 2026 08:48
@stevenaya
stevenaya marked this pull request as ready for review November 11, 2026 09:08
Copilot AI balanced review requested due to automatic review settings November 11, 2026 09: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 pushed a commit that referenced this pull request Nov 11, 2026
Store the standard V1/V2 preview cameras in their presets so the default
display launch can use the shared `bimanual.rviz` configuration for both
single-arm and bimanual models.

## Changes

- Add `preview.view.eye/lookat` to the 11 existing V1/V2 presets.
- Preserve the former single-arm camera for single-arm variants,
including gripper variants, and the former bimanual camera for the two
default bimanual presets.
- Keep `arm_only.rviz` available for existing tutorial commands. The
default `rviz_config` remains `bimanual.rviz`.

This PR is based directly on main and is independent of #131. Cell's own
view remains in #131. Joint positions and model configuration are
unchanged.

## Validation

- All 33 existing ROS 2 Jazzy tests pass; no tests added.
- All 11 views convert back to the previous RViz Orbit parameters within
1e-7 (yaw compared modulo 2 pi).
- Parsed preset contents are unchanged apart from the new `preview`
field. No RViz files, launch code or development documentation changed.
@stevenaya
stevenaya force-pushed the feat/v2-cell-description branch from adf4650 to 175245f Compare November 11, 2026 09:47
Copilot AI balanced review requested due to automatic review settings November 11, 2026 09:47

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 09:52

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 c0f0bd2 into enactic:main Nov 12, 2026
10 checks passed

This branch was successfully deployed

1 active deployment
release — c6c69ba9 Deployed Nov 11, 2026 by stevenaya via Publish #500
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