Repository navigation
Rslee/blueboat source assembly - #83
Conversation
|
I was able to extract the positing information from the blend file. I actually exported the ASSEMBLED as a glb and then used the gltf-summary tool (from gtlf-robotics) to extract the transforms and hand jam them into the assembly. Doing the assembly is going to be out of scope for gltf-robotics and this repo. it works well, and we'll keep doing it, just won't be captured for now. So, please remove the blend files from the PR. |
|
Also, as I said on slack, you can ignore the CI failures here - also out of scope for this PR. |
|
The two prop files (cw and ccw) are each contain both meshes and two scenes.
When you have new glb files for the props, please update PR #83. I'll retest. |
Workflow step 1 for the gltf-robotics pilot (PR #83). The commission YAML covers blueboat_chassis (base) and m200_weedless_prop_cw / _ccw (components); the commission page and its three figures define the chassis datum. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
I intentionally merged with CI slightly broken. The CI will be fixed in the assembly - #85 |
…ified The main result of this increment: base_link's frame is verified to follow ISO 9787 / REP 103 (x forward, y left, z up) against the PR #83 chassis geometry in Gazebo. The check was visual, in a visuals only spike world (~/maritime_ws/spike/blueboat_frames, not in the repo) generated from the real Gazebo flavoured expansion: one link, one visual, an ISO reference triad beside the boat, View > Frames showing just the link and glTF frames as in gltf-robotics docs/walkthroughs/coordinate_orientation_demo.md. - parts.xacro: part_visual takes axes:=gltf for deliveries in the Honu glTF Asset Profile's axes (+x left, +y up, +z forward): rpy 1.5708 0 1.5708 for Gazebo, 0 0 1.5708 for RViz from Lyrical on (it adds the roll itself), as the walkthrough sets. axes:=legacy (default) keeps the old rotation for the earlier exports. - blueboat_chassis, m200_weedless_prop_ccw/_cw opt in with axes="gltf". Rotated into base_link, the chassis mesh is 1.19 m along x and 0.93 m along y, on the colliders. Prop slot poses are unchanged. - The two tests that pinned one visual rotation per flavour accept both. - worlds/parts_check.sdf regenerated: the three parts' visual poses only. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The prop_port / prop_stbd slot poses now come from the glTF export of the Blender assembly (source_files/blueboat_assembly/ blueboat_chassis__ASSEMBLED_NODES.glb, PR #83): the prop nodes relative to the chassis node, mapped from glTF axes to base_link's. prop_port -0.52 0.301 -0.117, rpy 0 0 0 -> -0.5196 0.3016 -0.1268, rpy 0 0 3.1416 prop_stbd -0.52 -0.301 -0.117, rpy 0 0 0 -> -0.5196 -0.3016 -0.1270, rpy 0 0 3.1416 The scene's 180 degree yaw points the prop's own +x (its spin axis) aft, which drove the boat astern on positive thrust (measured ~2 m/s toward -X at cmd 0.3). Slots can now declare `axis`, the occupant's joint axis in its own frame (entry axis:, else the slot's, else the part's), and the two BlueBoat prop slots set -1 0 0: thrust is ahead again (~2 m/s toward +X). The correction is in the BlueBoat mounting, not the M200 parts; whether the export should face aft at all is open on #83. The source and the axis reasoning are recorded in a comment in blueboat_chassis.urdf.xacro; the parts contract, assembly.py's ad hoc slot keys and the configuration keys reference list `axis`. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Includes the latest exports of
blueboat_chassisandm200_weedless_props, both clockwise and counter-clockwise.glTF Compliant Materialas mentioned inexporting-from-blender.mdin thegltf-roboticsrepo._visualconvention rather than.visualmodel.sdfincludes pose transform on the visual node to orient correctly in GazeboAlso, the source .blend files are included. I've provided two methods so we can test the best way to extract the transform offsets for assembled parts (e.g. the propellers).
blueboat_chassis__ASSEMBLED_NODES.blend: This .blend file contains the blueboat_chassis and merged copies of the propellers aligned and offset on the modelblueboat_chassis__LINKED_COLLECTIONS.blend: This .blend file is set up similarly to the above blend, except the propellers are instances of the propeller in the includedm200_weedless_prop.blend. This means that there is an active link between the prop and the chassis. So any changes to the prop would be reflected in the chassis file. The advantages to this method are we could determine the datum first for all parts, and then assemble them in a "main blend file," and the parts could then be modeled after the datum is determined.