Implement shape-aware grip point computation for object manipulation#24
Draft
Implement shape-aware grip point computation for object manipulation#24
Conversation
Co-authored-by: Tanyk2004 <29299359+Tanyk2004@users.noreply.github.com>
Co-authored-by: Tanyk2004 <29299359+Tanyk2004@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Compute Grip Points for objects by their shape in Crackle moveit/moveit_manipulation.cpp
Implement shape-aware grip point computation for object manipulation
Sep 26, 2025
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.
Problem
The current implementation in
reach_for_object()uses hardcoded grip point offsets like{0.1, 0.1, 0.1}and{-0.1, -0.1, 0.1}for all objects, regardless of their shape or size. This approach is suboptimal because:Solution
This PR implements intelligent grip point computation that adapts to object geometry:
Box Objects
Generates 3-7 grip points based on dimensions:
Sphere Objects
Creates 5-13 grip points with circular patterns:
Safety Constraints
Implementation Details
The solution adds three new methods to
CrackleManipulation:The
reach_for_object()function now callscompute_shape_aware_grip_points()instead of using hardcoded offsets, with graceful fallback to default points for unknown shapes.Testing
Comprehensive testing shows the system generates optimal grip points:
Backward Compatibility
✅ No breaking changes - maintains existing
reach_for_object()interface✅ Preserves all logging and ROS service functionality
✅ Graceful fallback for invalid/unknown shapes uses original default behavior
✅ Same workflow - planning and execution logic unchanged
The implementation seamlessly integrates with the existing vision system that already provides shape detection through
SolidPrimitivetypes and dimensional information.Original prompt
💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.