Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
114 commits
Select commit Hold shift + click to select a range
5b8aeb1
Initial package setup.
jws-1 Jul 6, 2025
c0d983e
Setting up state machine.
jws-1 Jul 6, 2025
a0dcb05
Start setting up planning scene, detecting objects, etc
jws-1 Jul 6, 2025
d4afce2
Reorganise a bit, and add motions.
jws-1 Jul 7, 2025
c30bb93
WIP: intial storing groceries.
jws-1 Jul 7, 2025
66b91a1
Optionally return a corresponding pcl in userdata.
jws-1 Jul 7, 2025
a4c7026
Detect all in polygon, returning sensor data.
jws-1 Jul 7, 2025
a78bdba
Update __init__.
jws-1 Jul 7, 2025
60bff0f
Allow for simulation, again.
jws-1 Jul 7, 2025
7bb6101
Ensure support surface frame is base footprint.
jws-1 Jul 7, 2025
0f0417c
Run on more threads.
jws-1 Jul 8, 2025
bc76279
Handle preempting.
jws-1 Jul 8, 2025
14bc6a3
Correct headers.
jws-1 Jul 8, 2025
61fba50
chdir to model dir.
jws-1 Jul 8, 2025
8e8ba13
No static planning scene, for now.
jws-1 Jul 8, 2025
2a68a77
Update yamls.
jws-1 Jul 8, 2025
1603d66
First version.
jws-1 Jul 8, 2025
0ebaedb
Sanity check polygons.
jws-1 Jul 8, 2025
2c7a2ba
Longer timeout.
jws-1 Jul 8, 2025
9ad7177
Sweep and return senso data.
jws-1 Jul 8, 2025
f27b72f
Enable/disable head manager during pick.
jws-1 Jul 8, 2025
eecab46
Remove surface correctly.
jws-1 Jul 8, 2025
0db9b41
Update configs.
jws-1 Jul 8, 2025
b9150f1
Less threads...?
jws-1 Jul 8, 2025
6c0334f
Updated SM, getting there..
jws-1 Jul 8, 2025
17dc05f
Pose grasp lift.
jws-1 Jul 8, 2025
c3260d9
Sleep more.
jws-1 Jul 8, 2025
e990d5a
Scan one shelf.
jws-1 Jul 8, 2025
2dadc34
feat: option to pass polygon through userdata
m-barker Jul 9, 2025
0d18b68
feat: add z filtering for detections
m-barker Jul 9, 2025
d7a4706
update the placing service with a list of input locations for placing
Sveali41 Jul 9, 2025
5d17a67
Resolved merge conflicts
Sveali41 Jul 9, 2025
16fcac0
add placing the object in statemachine
Sveali41 Jul 10, 2025
ec48a32
add use_arm flag in sm
Sveali41 Jul 11, 2025
82bfe87
Update pick.
jws-1 Jul 9, 2025
6769aaa
More registration attempts.
jws-1 Jul 9, 2025
1fbfef4
Lower plane a little.
jws-1 Jul 9, 2025
a37966a
Update to use hardcoded planning scene.
jws-1 Jul 11, 2025
00ee4ce
Add more objects.
jws-1 Jul 9, 2025
feb32bf
Update config.
jws-1 Jul 9, 2025
d39caa1
Start properly scanning shelves
jws-1 Jul 9, 2025
44346ab
WIP: scan shelves.
jws-1 Jul 11, 2025
9c62761
add ask for open the door of cabinet state
Sveali41 Jul 11, 2025
1cbe6e7
ask for open the cabinet door
Sveali41 Jul 11, 2025
deabd04
Publish shelf polygons.
jws-1 Jul 11, 2025
d601097
WIP: classify shelves
jws-1 Jul 11, 2025
6e0811c
Update config.
jws-1 Jul 11, 2025
7ac2227
add pouring cereal sm
Sveali41 Jul 11, 2025
83aabe1
Merge branch 'storing-groceries-06-07' of https://github.com/LASR-at-…
Sveali41 Jul 11, 2025
2f53a28
Fix userdata usage.
jws-1 Jul 11, 2025
69c515a
Shelf scan is working.
jws-1 Jul 11, 2025
c71f404
Update config.
jws-1 Jul 11, 2025
19a27e9
maybe revert: add calibration offsets.
jws-1 Jul 11, 2025
e5a2105
Format
jws-1 Jul 11, 2025
0f88bc5
Keep track of shelf data.
jws-1 Jul 11, 2025
579ef08
Choose a shelf.
jws-1 Jul 12, 2025
2f645ac
Little cleanup.
jws-1 Jul 12, 2025
31c647c
More cleanup.
jws-1 Jul 12, 2025
3147c01
Be a little more verbose. Pass no_arm in to the sm.
jws-1 Jul 12, 2025
c2de800
Reorganise.
jws-1 Jul 12, 2025
6bd5266
get the structure of pouring the cereal but still need some work for …
Sveali41 Jul 12, 2025
3053793
Use max.
jws-1 Jul 14, 2025
10bf9d6
Update config.
jws-1 Jul 14, 2025
c0a760f
Don't use arm by default. Fix polygon usage.
jws-1 Jul 14, 2025
96db85d
Semi-working version.
jws-1 Jul 14, 2025
b2a82b2
Safely clear userdata.
jws-1 Jul 14, 2025
19e94ed
Only ask for cabinets to be opened once, at the start of the task.
jws-1 Jul 14, 2025
15ff460
Dynamically determine offset direction based on orientation.
jws-1 Jul 14, 2025
e54d07b
Make calibration offset positive.
jws-1 Jul 14, 2025
9414d26
Add option to enable/disable top-down grasps from being executed.
jws-1 Jul 14, 2025
4543381
Fix type hint.
jws-1 Jul 14, 2025
09a13e3
add check the result of detection make the detection keep going until…
Sveali41 Jul 14, 2025
051d29e
Remove unused imports.
jws-1 Jul 14, 2025
9cd4741
Fixup storing groceries + polygon stuff.
jws-1 Jul 14, 2025
d891bc9
add the check detected
Sveali41 Jul 14, 2025
9236e3d
Update service interface.
jws-1 Jul 14, 2025
72e61ae
add a distance range for select the object
Sveali41 Jul 14, 2025
2bcce4b
Allow YOLO services to handle multiple models.
jws-1 Jul 14, 2025
b2699bd
Update relay
jws-1 Jul 14, 2025
65ea9a7
Update pose service.
jws-1 Jul 14, 2025
f31f4e5
Update skills.
jws-1 Jul 14, 2025
c014d2f
Merge branch 'main' into storing-groceries-06-07
jws-1 Jul 14, 2025
1d2030d
Merge branch 'yolo-multiple-models' into storing-groceries-06-07
jws-1 Jul 14, 2025
4c648da
Update skill.
jws-1 Jul 14, 2025
3957eed
iteration for the location
Sveali41 Jul 15, 2025
2074e41
Add web_video_server to launch file.
jws-1 Jul 15, 2025
715f6a6
Publish for debugging.
jws-1 Jul 15, 2025
b6f37c6
Add safety check
Euniceverse Jul 15, 2025
3647bc7
Merge remote-tracking branch 'origin/storing-groceries-06-07' into st…
Sveali41 Jul 15, 2025
d560ef7
Merge branch 'storing-groceries-06-07' of https://github.com/LASR-at-…
Sveali41 Jul 15, 2025
6f6760b
model -> models
jws-1 Jul 15, 2025
825f4ee
Fix visualisation.
jws-1 Jul 15, 2025
caca177
Remove old import.
jws-1 Jul 15, 2025
ee21cf9
Add LLM AND Web View to launch file.
jws-1 Jul 15, 2025
056a9bb
Fixup Say.
jws-1 Jul 15, 2025
9f1bb1b
Format and fix unpacking.
jws-1 Jul 15, 2025
bb29a6d
Fix outcomes, output img.
jws-1 Jul 15, 2025
d524547
add the iteration for the location state
Sveali41 Jul 15, 2025
f573bce
merge
Sveali41 Jul 15, 2025
535caed
WIP: only sweep shelves once.
jws-1 Jul 15, 2025
29e1204
add the model for chocolate power
Sveali41 Jul 15, 2025
4cb89e7
Add coke and fanta
Euniceverse Jul 15, 2025
4f6e6b8
Add cereal, sauce1
Euniceverse Jul 15, 2025
b2efd9b
add the mesh model of kuat
Sveali41 Jul 15, 2025
0992359
Add pack and polish
Euniceverse Jul 16, 2025
e52b47a
merge
Sveali41 Jul 16, 2025
558ed7d
add pringle model
Sveali41 Jul 16, 2025
e423e77
revert.
jws-1 Jul 15, 2025
ebc3d19
Robocup config.
jws-1 Jul 16, 2025
6bf2343
WIP Full state machine.
jws-1 Jul 16, 2025
aa0f62d
Non tested fallback for cereal
Euniceverse Jul 16, 2025
a99a921
WIP: overhaul to detect table.
jws-1 Jul 17, 2025
80db235
Update sm.
jws-1 Jul 17, 2025
889239a
Merge branch 'ros1' into storing-groceries-06-07
jws-1 Feb 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
string object_id # name of object in the planning scene
string surface_id # id of surface in planning scene
geometry_msgs/PoseStamped pose # pose of end-effector for placing.
geometry_msgs/PoseStamped[] candidate_poses # pose of end-effector for placing.
---
bool success
---
82 changes: 82 additions & 0 deletions common/manipulation/lasr_manipulation_pipeline/config/motions.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
# From https://github.com/pal-robotics/tiago_tutorials/blob/kinetic-devel/tiago_pick_demo/config/pick_motions.yaml
play_motion:
motions:
pregrasp:
joints: [torso_lift_joint, arm_1_joint,
arm_2_joint, arm_3_joint, arm_4_joint, arm_5_joint,
arm_6_joint, arm_7_joint]
points:
- positions: [0.34, 0.07, -0.07, -3.0, 1.5, -1.57, 0.2, 0.0]
time_from_start: 17

post_grasp_pose:
joints: [torso_lift_joint, arm_1_joint,
arm_2_joint, arm_3_joint, arm_4_joint, arm_5_joint,
arm_6_joint, arm_7_joint]
points:
- positions: [0.34, 0.21, -0.2, -2.2, 1.15, -1.57, 0.2, 0.0]
time_from_start: 10.

lift_torso:
joints: [torso_lift_joint, arm_1_joint,
arm_2_joint, arm_3_joint, arm_4_joint, arm_5_joint,
arm_6_joint, arm_7_joint]
points:
- positions: [0.23, 0.20, -1.34, -0.20, 1.94, -1.57, 1.37, 0.0]
time_from_start: 2.0

home_to_pregrasp:
joints: [torso_lift_joint, arm_1_joint,
arm_2_joint, arm_3_joint, arm_4_joint, arm_5_joint,
arm_6_joint, arm_7_joint]
points:
- positions: [0.23, 0.20, -1.34, -0.20, 1.94, -1.57, 1.37, 0.0] # 0.15
time_from_start: 0.0
- positions: [0.34, 0.20, -1.34, -0.20, 1.94, -1.57, 1.37, 0.0]
time_from_start: 2.0
- positions: [0.34, 0.21, -1.02, -0.20, 1.94, -1.57, 1.52, 0.0]
time_from_start: 3.5
- positions: [0.34, 0.21, 0.35, -0.2, 2.0, -1.57, 1.52, 0.0]
time_from_start: 6.5
- positions: [0.34, 0.21, 0.35, -0.2, 0.0, -1.57, 1.52, 0.0]
time_from_start: 10.0
- positions: [0.34, 0.21, 0.35, -3.0, 0.0, -1.57, 1.52, 0.0]
time_from_start: 12.0
- positions: [0.34, 0.07, -0.07, -3.0, 1.5, -1.57, 0.2, 0.0]
time_from_start: 17

grasp_to_home:
joints: [torso_lift_joint, arm_1_joint,
arm_2_joint, arm_3_joint, arm_4_joint, arm_5_joint,
arm_6_joint, arm_7_joint]
points:
- positions: [0.34, 0.21, 0.35, -3.0, 0.0, -1.57, 1.37, 0.0]
time_from_start: 0.0
- positions: [0.34, 0.21, 0.35, -0.2, 0.0, -1.57, 1.37, 0.0]
time_from_start: 2.0
- positions: [0.34, 0.21, 0.35, -0.2, 2.0, -1.57, 1.37, 0.0]
time_from_start: 5.5
- positions: [0.34, 0.21, -1.02, -0.20, 1.94, -1.57, 1.37, 0.0]
time_from_start: 8.5
- positions: [0.34, 0.20, -1.34, -0.20, 1.94, -1.57, 1.37, 0.0]
time_from_start: 10.0
- positions: [0.15, 0.20, -1.34, -0.20, 1.94, -1.57, 1.37, 0.0]
time_from_start: 12

home_to_preplace:
joints: [torso_lift_joint, arm_1_joint,
arm_2_joint, arm_3_joint, arm_4_joint, arm_5_joint,
arm_6_joint, arm_7_joint]
points:
- positions: [0.23, 0.20, -1.34, -0.20, 1.94, -1.57, 1.37, 0.0] # 0.15
time_from_start: 0.0
- positions: [0.34, 0.20, -1.34, -0.20, 1.94, -1.57, 1.37, 0.0]
time_from_start: 2.0
- positions: [0.34, 0.21, -1.02, -0.20, 1.94, -1.57, 1.52, 0.0]
time_from_start: 3.5
- positions: [0.34, 0.21, 0.35, -0.2, 2.0, -1.57, 1.52, 0.0]
time_from_start: 6.5
- positions: [0.34, 0.21, 0.35, -0.2, 0.0, -1.57, 1.52, 0.0]
time_from_start: 10.0
- positions: [0.34, 0.21, 0.35, -1.5, 1.15, -1.57, 0.2, 0.0]
time_from_start: 13.0
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ deepen_hand = 1
# max_aperture: the maximum gripper width
# workspace_grasps: dimensions of a cube centered at origin of point cloud; should be smaller than <workspace>
min_aperture = 0.0
max_aperture = 0.75
max_aperture = 0.75
workspace_grasps = -1.0 1.0 -1.0 1.0 -1.0 1.0

# Filtering of candidates based on their approach direction
Expand Down Expand Up @@ -97,4 +97,4 @@ plot_candidates = 0
plot_filtered_candidates = 0
plot_valid_grasps = 0
plot_clustered_grasps = 0
plot_selected_grasps = 0
plot_selected_grasps = 1
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#!/usr/bin/env python3
import rospy
import rospkg
import actionlib
Expand All @@ -21,7 +22,7 @@


PACKAGE_PATH: str = rospkg.RosPack().get_path("lasr_manipulation_pipeline")
MESH_NAME: str = "pringles.ply"
MESH_NAME: str = "cereal.ply"


class GraspingPipeline:
Expand Down Expand Up @@ -89,7 +90,7 @@ def run(self):

pcl = sam.segment(pcl)
# Register mesh with scene and apply the transformation
response = self._register_object(pcl, MESH_NAME.replace(".ply", ""), False, 1)
response = self._register_object(pcl, MESH_NAME.replace(".ply", ""), False, 30)
ros_transform = response.transform
ros_scale = response.scale

Expand Down Expand Up @@ -118,7 +119,9 @@ def run(self):
rospy.loginfo("Pick failed. Will not place.")
return

rospy.loginfo("Sending pregrasp motion...")
self._play_motion("pregrasp")
rospy.loginfo("Pregrasp motion finished!")

self._place_client.send_goal_and_wait(
PlaceGoal(MESH_NAME.replace(".ply", ""), "table", pick_result.grasp_pose)
Expand Down
Loading
Loading