feat(manipulation): add live voxel collision planning - #3163
Conversation
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Workflows to automatically generate PRs for you. |
❌ 13 Tests Failed:
View the top 3 failed test(s) by shortest run time
To view more test analytics, go to the Test Analytics Dashboard |
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Workflows to automatically generate PRs for you. |
6a5efd6 to
a0ee2f2
Compare
There was a problem hiding this comment.
can this file be unified with obstacle monitor
There was a problem hiding this comment.
need to clarify the changes here
There was a problem hiding this comment.
I prefer not to change these logics as I'm not the owner. any alternative?
|
|
||
| # Input: Joint state from coordinator (for world sync) | ||
| coordinator_joint_state: In[JointState] | ||
| planning_voxel_map: In[PointCloud2] |
There was a problem hiding this comment.
can we add through rpc api instead of continuous?
|
Heads up — I'm ingesting this branch's work onto current main, split across three PRs:
What survived is the idea, a wrist camera occludes the volume behind its own arm, so ray tracing can never fire a miss there and the arm walls itself in. The clear mask is the only way out, and nothing on main had it. |
Contribution path
Problem
The xArm voxel-planning demo did not have a responsive, atomic path from live point-cloud occupancy to collision checking. Scene mutation could block IK and collision queries, camera transforms could lag or be unavailable, and the same planning occupancy appeared twice in Viser.
Solution
WorldSpec.update_obstacleand use copy-on-write RoboPlan scene swaps so readers see the old or new scene atomically.How to Test
Focused automated verification:
PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 python -m pytest -p pytest_mock -o addopts='' -q \ dimos/manipulation/planning/monitor/test_planning_collision_snapshot.py \ dimos/manipulation/planning/monitor/test_world_monitor.py \ dimos/manipulation/planning/world/test_drake_world_planning_groups.py \ dimos/manipulation/test_manipulation_unit.py \ dimos/manipulation/test_roboplan_world.py \ dimos/manipulation/visualization \ dimos/perception/test_point_cloud_self_filter.py \ dimos/robot/manipulators/xarm/blueprints/test_xarm_voxel_planning_viser_demo.pyResult: 214 passed.
The three direct
TfPoseSourcelifecycle tests require LCM multicast sockets, which are unavailable in the coding sandbox.AI assistance
Codex with GPT-5 implemented, debugged, tested, and prepared this change under developer direction.
Checklist