Repository navigation
Conversation
stevenaya
force-pushed
the
feature/v2-camera-mounts
branch
from
October 28, 2026 06:51
76400b5 to
ef91899
Compare
stevenaya
force-pushed
the
feature/v2-camera-mounts
branch
from
October 28, 2026 07:35
ef91899 to
37bf37e
Compare
stevenaya
force-pushed
the
feature/v2-camera-mounts
branch
from
October 28, 2026 08:42
37bf37e to
7075d62
Compare
stevenaya
force-pushed
the
feature/v2-camera-mounts
branch
from
October 29, 2026 06:57
7075d62 to
f0333ef
Compare
stevenaya
force-pushed
the
feature/v2-camera-mounts
branch
from
October 29, 2026 15:52
f0333ef to
73304b3
Compare
stevenaya
force-pushed
the
feature/v2-camera-mounts
branch
from
October 30, 2026 14:48
73304b3 to
c4bea31
Compare
stevenaya
force-pushed
the
feature/v2-camera-mounts
branch
from
October 30, 2026 18:11
c4bea31 to
6a66874
Compare
stevenaya
force-pushed
the
feature/v2-camera-mounts
branch
from
October 30, 2026 18:20
6a66874 to
9a6fe67
Compare
stevenaya
force-pushed
the
feature/v2-camera-mounts
branch
from
October 31, 2026 19:07
9a6fe67 to
7cbb1c9
Compare
stevenaya
force-pushed
the
feature/v2-camera-mounts
branch
from
October 31, 2026 21:14
7cbb1c9 to
942231b
Compare
stevenaya
force-pushed
the
feature/v2-camera-mounts
branch
from
October 31, 2026 22:25
942231b to
d0602fd
Compare
stevenaya
force-pushed
the
feature/v2-camera-mounts
branch
from
October 31, 2026 23:18
d0602fd to
84e1e2a
Compare
# Conflicts: # assets/accessory/zed_mount/meshes/collision/zed_mount_shell.stl # assets/accessory/zed_mount/meshes/visual/zed_mount.dae
This branch was successfully deployed
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.
V1 and V2 use separate model generators. This update moves both to shared topology-driven assembly, adds the V2 body-camera assembly, and makes control interfaces follow the selected preset. This draft tracks the complete model and the split PRs below; completed items are marked as merged.
Changes
Discover optional component Xacro interfaces through the package-level loader, with YAML generation as the default; keep common macros independent of component implementations.
Move transforms, link/joint output, reference frames, validation and topology-driven component generation into
assets/common/, including oblique-axis reflection.Reference ordinary component links and joints by stable
linkN/jointNkeys. Emitpreset.prefix + topology.name, falling back to the key whennameis omitted. Remove topology prefixes, duplicate override aliases and V1 prefix CLI compatibility; preserve controlled joint names. Reference frames use the instance prefix, and mounting joints use<root_link>_mount_joint. Resolve ZED names once in its adapter.Configure empty arm-tip folding through topology. Assembly and ROS2 control share resolved component descriptions, including custom names and mimic relationships. Presets declare control partitions under
systems.joints, using stable component-local joint keys and non-negative system-localidxvalues. Joints are emitted in index order. Standard hardware defaults come from the model entry, with optional system parameters and interfaces;use_fake_hardwareselects the mock plugin. Both model entries accept the standard left/right CAN arguments, resolving their overrides by hardware system name.Move body assets into
assets/body/v1.0/andassets/body/v2.0/. Resolve body root names from topology and mounting transforms from preset references. Expose the V2 arm mounting midpoint asarm_originand number body visual parts, including data-source and scene-node IDs.Drive V1 assembly and placement from presets, removing
parent/xyz/rpyand*_arm_base_xyz/rpyoverrides. Use the complete parallel-gripper component, withlink7 → hand → fingers/TCP. Center link2/link4/link6 origins while preserving physical placement and motor coordinates.Add accessory support, the ZED Mini mount and the default bimanual camera assembly. Use the official
zed_description0.2.0 package in export and test CI. Rename the support instance prefix fromopenarm_body_zed_mount_toopenarm_body_zed_support_.Add a 9,482-triangle ZED support visual, with selected fasteners removed and the shells and metal parts simplified separately. Number the support visual parts, data sources and scene nodes consistently.
Add ZED-mount collision geometry: a support box ending at Z=40 mm and a closed 5,308-triangle shell with flush camera/screw openings and a convex lower section up to Z=41 mm. Enable multiple collisions per link and regenerate the V2 example URDF.
Update example URDFs, launch configuration and usage instructions. Replace model-parameter snapshots with small configuration fixtures, interface checks and a shared preset-expansion suite.
Preserve prismatic travel limits under reflection and apply folded gripper placement to direct base children. Existing regression tests cover asymmetric travel and serial finger chains.
Require leaf tips for collapse and validate standalone gripper topology through the component macro entry.
Reflect pinch-gripper joint axes component by component and verify oblique travel at both configured endpoints.
Fill the finger recesses and shallow circular grooves, reduce each finger visual to 2,486 triangles, and rebuild normals with 35-degree angle-limited smoothing. Number link4 visual parts, including their COLLADA IDs and references.
Fill the gripper-camera mounting holes and remove residual rim topology, then reduce the camera from 1,756 to 808 triangles. Split PCB, base plate and lens into
ee_base_link_03/04/05, with matching reduced geometry in the Cell installation.Clean accepted planar topology and internal gripper-base face fragments. Retain the original link6 visual while its cap mating surface is reviewed. Retain whole-finger collisions and complete four-piece/five-piece alternatives, each below 2,600 triangles per finger. Parts 00–02 remain duplicated in both split directories.
Replace the complete pedestal collision with six fitted parts: two boxes and four convex meshes, including a single 700-triangle chest-cover hull.
Split PRs
#113–#115, #117, #120 and #121 are merged. #125 is the naming prerequisite for #116 and #118. #116 is a draft pending #125. #118 and #119 remain drafts, with #119 depending on #116. #122 is ready; #123 depends on #122, and #124 depends on #118.
fix/v2-link4-cable-coverfix/v2-link4-mesh-reductionfix/v2-open-cover-modelfeat/v2-gripper-camerafix/v1-visual-materialsrefactor/shared-xacro-primitivesfix/shared-joint-reflectionfix/v2-visual-normalsfix/v2-collision-meshesrefactor/shared-kinematic-componentsrefactor/shared-body-emitterrefactor/pinch-gripper-macrorefactor/test-contractsrefactor/topology-component-generationfix/component-mount-reflectioncodex/refine-v2-visual-assetscodex/refine-v2-camera-visualscodex/finalize-v2-visual-meshescodex/finalize-v2-collision-meshescodex/v2-body-collision-partsfeat/component-xacro-interfacesrefactor/arm-tip-collapse-configcodex/consolidate-axis-testscodex/stable-component-keysrefactor/shared-ros2-controlrefactor/v2-body-assetsfeat/v2-body-camera-assemblyrefactor/v1-preset-assemblyfix/v1-center-joint-originsValidation
Stable-key migration: all existing test functions and counts are retained; 274 before/after model/control expansions match across the split branches, standalone grippers and Cell, after normalizing temporary package-root paths.
Latest ROS 2 Jazzy suites pass with 30 existing tests at Declare control systems with stable joint indices in presets #116, 29 at Add the ZED Mini mount and bimanual camera assembly #118, 31 at Migrate V1 assembly to shared presets and components #119, 27 at Clean redundant planar topology in V2 visual meshes #122/Refresh V2 finger collision meshes and split variants #123, 29 at Split the V2 pedestal collision into six fitted shapes #124, 33 on the integrated model and 35 on Cell.
Shared preset checks cover expanded model structure, control references and resource paths.
The mesh commits are included in the integrated model and Cell branch. Mesh materials, transforms and references were checked against the accepted source assets. All 31 updated collision STL files pass closed-surface, winding, positive-volume and single-shell checks.
Final finger surfaces and wireframes were reviewed in RViz. Component geometry checks cover closed surfaces, winding, non-manifold edges and self-intersections.
Cell follow-up
feat/v2-cell-descriptionThe Cell branch adds CAD-derived visuals with a white tabletop sheet, a black metal plate and yellow light-curtain housings, a 0–0.3 m lifter,
openarm_cell_frame names and 17 collision primitives: 12 boxes and five triangular prisms. The floor encloses the tabletop beams, side ramps reach the rear posts, and the lifter box maintains 0.5 mm clearance from the guide envelope. The light-curtain end caps, infrared strips and brackets remain black. The estimated lifter mass is 2.82498 kg. Its extrusion uses 2.465533 kg/m, derived from the weighed pedestal after deducting the plate, brackets, rear brace and fasteners. The HFS6-3060 rear brace is estimated at 0.328101 kg from the original STEP, including its hollow section and machined cutouts. The other two lifter parts retain their steel-density estimates. COM and inertia use three component boxes combined with the parallel-axis theorem. Its 35 tests pass. The camera base plate has filled mounting holes and uses the shared 350-triangle plate with 182 triangles for its four mounting pieces. The PCB and lens use 46 and 230 triangles, for 808 per camera. The latest Cell updates restore the cable-chain bend from CAD, consolidate black plastic geometry, refine the light-curtain yellow and name the visual components descriptively. The 180-degree base-motor installation is set in the preset with compensated J1 origins. Final Cell visuals include the approved planar cleanup and the 300-triangle guide component, preserving its bevels and center boss.Review the Cell-only changes.
Follow-up model work
ROS caller migration
The companion draft PR updates bringup and MoveIt to select a description preset and read CAN settings from it. It depends on #116 for V2 and #119 for V1.