Repository navigation
feat(market_sim): add the supermarket and robot mesh assets - #1033
sanchit-badamikar wants to merge 1 commit into
Conversation
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: true
Comment |
|
|
[written by AI] Verified the mechanical claims: the git tree SHAs of
|
155abd9 to
a3a826b
Compare
|
a3a826b to
55cf278
Compare
a110637 to
1bfc0ca
Compare
1bfc0ca to
c0e0bc3
Compare
Shelf and product meshes with their MuJoCo body snippets, the merged rack meshes and colour palette the store scene uses, and a copy of the Franka Mobile FR3 Duo meshes for the robot's MuJoCo model. Files only: the market_sim package that uses them comes in a later change.
55cf278 to
fc1a101
Compare
bkanator
left a comment
There was a problem hiding this comment.
[written by AI]
Requesting changes for duplicated meshes and data; details inline. After the dedup about 17 files remain, so please fold them into #1046 so they land with the code that uses them and with their attribution.
Please also re-run CI now that the base is main (the current failures are image pulls against the old base), and refresh the PR description.
| @@ -0,0 +1,3 @@ | |||
| version https://git-lfs.github.com/spec/v1 | |||
There was a problem hiding this comment.
[written by AI] link0–link7, hand, franka_head, franka_spine, fr3_duo_cover, fr3_duo_mount and tmrv0_2 are byte-identical to the collision meshes in the vendored franka_description, which already installs meshes/ (CMakeLists.txt:21-28). Please drop these 15 and install-copy them into share/market_sim/mjcf/assets at build time, as factory_sim/CMakeLists.txt:19-31 does. Keep only finger_0/1.obj and tmrv0_2_visual.stl here.
There was a problem hiding this comment.
[written by AI]
In part, through #1087: it vendors franka_description's FER collision meshes in franka_config and has kitchen_sim and dual_arm_sim load them with package://franka_description/... paths, so the copies are removed and nothing is copied at build time either. The reworked #1046, which takes over these files, will do the same for these market_sim meshes, which franka_config already holds, and will keep only the finger meshes and the base's visual meshes here.
| @@ -0,0 +1,176 @@ | |||
| Apache License | |||
There was a problem hiding this comment.
[written by AI] Only finger_0.obj and finger_1.obj come from MuJoCo Menagerie. The arm, hand, head, spine, mount and tmrv0_2 meshes are byte-identical to franka_description's, so this Menagerie-only licence misattributes them, and Franka's NOTICE is missing. This corrects the earlier comment on this PR, which counted link0–link7 and hand.stl as Menagerie's. Please scope this licence to the fingers and attribute anything else that stays to franka_description with its NOTICE.
There was a problem hiding this comment.
[written by AI]
In part: #1087 loads franka_description's collision meshes at run time from the vendored copy, which carries franka_description's own LICENSE and NOTICE, and updates kitchen_sim's and dual_arm_sim's NOTICE files to say so. In the reworked #1046, which takes over these files, market_sim will load its franka_description meshes the same way, this Menagerie licence copy goes, and the NOTICE attributes only the finger meshes to Menagerie.
| @@ -0,0 +1,3 @@ | |||
| version https://git-lfs.github.com/spec/v1 | |||
There was a problem hiding this comment.
[written by AI] This is 9.9 MB and about 197k faces: about 90% of the PR's size, and just under MuJoCo's 200k-faces-per-mesh limit. It is the only copy in the repo, so please decimate this visual-only mesh here.
There was a problem hiding this comment.
Agreed.
The base's visual mesh will be rebuilt from franka_description's tmrv0_2.dae, split into its 5 materials and decimated to roughly 20–40k faces in all, keeping the DAE's texture coordinates and colours. The 9.9 MB STL goes away.
| @@ -0,0 +1,276 @@ | |||
| <!-- GENERATED by build_products.py. Edit the script, not this file. --> | |||
There was a problem hiding this comment.
[written by AI] This header, and the same header on 45 other files, says GENERATED by build_products.py / build_supermarket_shelf.py ... Edit the script, not this file, but neither script is committed. Please commit the scripts, or change the headers to say these are Blender exports that are edited by hand.
There was a problem hiding this comment.
In #1046's rework the two shelf files will say what they are: Blender exports made once, with no build script, edited by hand. The 44 product files move to a follow-up products PR, which rebuilds them from the YCB object set with its own committed generator.
| @@ -0,0 +1,49 @@ | |||
| <!-- GENERATED by build_products.py. Edit the script, not this file. --> | |||
| <mujocoinclude> | |||
| <body name="soup_can_v2" pos="0 0 0" quat="1 0 0 0"> | |||
There was a problem hiding this comment.
[written by AI] The 43 body XMLs, and the per-variant materials in products_assets.xml, hold nothing that product_catalog.json's items doesn't already have; v1/v2/v3 differ only in names. Please keep one source of truth: either build the bodies from the catalog in generate_market.py and drop products/bodies/, or trim the catalog to the fields the generator actually reads (items.*.size and stocked_scene).
There was a problem hiding this comment.
The products move to a follow-up PR that rebuilds them from the YCB object set; there the generator builds every body from one catalog, so products/bodies/ and the per-variant materials will go away.
| shininess="0.20" | ||
| reflectance="0" | ||
| /> | ||
| <mesh name="shelf_frame_steel" file="meshes/visual/frame_steel.obj" /> |
There was a problem hiding this comment.
[written by AI] +1 to the earlier comment: meshes/visual/ doesn't exist (the files are in shelf/meshes/), so please fix these paths.
|
Closing this PR and reworking #1046 to incorporate structural changes and review suggestions:
|
[written by AI]
Motivation
The Franka Mobile FR3 Duo supermarket example (
market_sim) needs shelf, product and robot meshes. They are added on their own, so the PR that adds themarket_simpackage stays small enough to review.This is part of the split of #1031 (see that PR for the history). Merge order: #1032, then #1045 (kitchen_sim and dual_arm_sim), then this PR, then #1046 (market_sim) on it. It is based on #1045, which sits on #1032; CI picks the MoveIt Pro image by the base branch, so its integration tests cannot pass until both merge and this PR targets
main.Brief description
src/market_sim/market_assets: shelf and product meshes, their MuJoCo body snippets and geometry data, and their licence.src/market_sim/mjcf/assets: the merged rack meshes and colour palette of the store scene, and a copy of the Mobile FR3 Duo meshes for the robot's MuJoCo model, with the MuJoCo Menagerie licence.package.xmlyet, so colcon and the MoveIt Pro config loader ignore it until themarket_simpackage lands.How it was tested
colcon listdoes not pick up amarket_simpackage.bin/validate_workspace_dependencies.py --verify-upstreamandgit lfs fsck --objectspass.Notes for reviewers
.gitattributeschange is needed.market_simREADME, which comes with piece 2.