Conversation
nbbrooks
left a comment
There was a problem hiding this comment.
Do all of the _hw objectives need to live in _hw ? Any reason they could not be in _sim?
Can you rename the Objectives like "GetLeftRightPickPoseFromBottlePose" to be "Get Left Right Pick Pose From Bottle Pose" for readability?
There are some device names that are hardcoded in the behavior atm, I was mostly focusing to get things running for the friday deadline! but as you mentioned we should define those device names as behavior IO and then move the generic one into the SIM, this is in my to do list after I finish detecting the rack with QR code! |
d68bdb1 to
a7dc983
Compare
nbbrooks
left a comment
There was a problem hiding this comment.
I suspect a lot of these objectives are duplicates of core perception Objectives (or if not, should instead live in the core perception objectives)
Similar for some of the motion planning ones - may be duplicative of items from #6
so there are hardly any core perception objectives. Many live in lab_sim or other places, so i don't want to start putting things in core when I don't understand what qualifies to get it there. |
c33f50e to
18bed02
Compare
|
ok @nbbrooks take another look. I removed a lot of objectives that I believe were just being used as examples. I am not sure what hardcoded hw things there were for the ones under _hw.... but kept those there so it was obvious what sina ran in hardware. So, I kind of like the separation since it was obvious then what he used for the hardware demo. |
There was a problem hiding this comment.
Pull request overview
This PR integrates ML-based object recognition, dual-arm grasping, and multi-tip manipulation capabilities into the dual-arm mobile robot system. The changes enable the robot to locate bottles using vision ML models, grasp them with coordinated dual-arm movements, and perform complex manipulation tasks.
Changes:
- Added ML model files and CLIPSeg dependency for vision-based object segmentation
- Implemented bottle detection, grasping, and placement workflows using behavior trees
- Updated robot waypoint configurations for new manipulation poses
- Disabled unavailable scene camera in hardware launch configuration
Reviewed changes
Copilot reviewed 26 out of 27 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| src/dual_arm_mobile_sim/models/*.onnx | Added SAM2 encoder, decoder, and L2G ML model files for vision processing |
| src/dual_arm_mobile_sim/description/assets/bottle.* | Added bottle 3D mesh assets (STL, OBJ, MTL) |
| src/dual_arm_mobile_sim/objectives/*.xml | Created behavior tree objectives for wrist camera snapshots, image segmentation, and multi-tip path planning |
| src/dual_arm_mobile_hw/objectives/*.xml | Implemented complete pick-and-place workflow with bottle localization, dual-arm grasping, and rack placement |
| src/dual_arm_mobile_sim/waypoints/waypoints.yaml | Added "ApproachBottle" and "AwayTable" waypoints with updated joint configurations |
| src/dual_arm_mobile_hw/waypoints/waypoints.yaml | Simplified waypoint configuration, added "Look For Task Trainer" and "side look at table" poses |
| src/dual_arm_mobile_hw/launch/*.xml | Commented out unavailable scene camera configuration |
| .gitmodules | Added moveit_pro_clipseg submodule for CLIPSeg-based segmentation |
| src/dual_arm_mobile_sim/CMakeLists.txt | Added models directory to installation targets |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Add perception Objectives - Get rack pose from April tag - Get bottle pose estimate from ClipSeg+SAM2 - Get dual grasp poses from bottle pose - Added some _hw waypoints Co-authored-by: sinaaghli <sina.aghli@gmail.com> Co-authored-by: Breelyn Styler <breelyn.styler@picknik.ai>
b972b55 to
d824adf
Compare
|
in porting phoebe_ws to lunar_sim, I need to remove some sim dependencies on things that are not actually used (only needed in hw). So I am also using this branch to do some updates for the package.xml where these are hardware-only and not referenced by any sim file: and removing the also removing the dependency from phoebe_description since this sim description should not depend on hardware |
ae6c594 to
c0672be
Compare
|
as part of port to lunar_sim also need to make |
c0672be to
aa03f50
Compare
nbbrooks
left a comment
There was a problem hiding this comment.
Approving for now so that v9 controller migration can be tested against this config, but I am making a followup PR to move more of the _hw objectives into _sim and make more reusable subtree objectives (e.g. less use of waypoints)
nbbrooks
left a comment
There was a problem hiding this comment.
Removing approval to address hw dependencies strategy
aa03f50 to
d7dd071
Compare
|
added back clearpath_controller_interface |
Merging ML recognition, grasping and dualtip flipping action with @bkanator !