Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
4fa8066
Fix Jazzy Build (Again)
JWhitleyWork Mar 24, 2026
e0c73ca
Merge pull request #540 from PickNikRobotics/final-jazzy-fix
JWhitleyWork Mar 24, 2026
f520997
add mujoco behaviors plugin to hangar_sim
marioprats Mar 25, 2026
7e81739
loop version of Plan Path Along Surface
marioprats Mar 25, 2026
0029c96
bump phoebe_ws to update Objective and pass CI validation
marioprats Mar 25, 2026
675cce5
Merge pull request #542 from PickNikRobotics/erf_updates
davetcoleman Mar 25, 2026
4ea3ac2
17708 Add missing collision and visual geometry to planning scene
griswaldbrooks Mar 26, 2026
c910991
Increase path tolerance so Grasp Object from Point succeeds on feasib…
griswaldbrooks Mar 26, 2026
9f0ae83
Replace 'Above Pick Cube' with 'Above Pick Object'
dsobek Mar 26, 2026
3b6e3fd
Merge pull request #547 from PickNikRobotics/kitchen-sim-path-tolerance
marioprats Mar 26, 2026
c036ac2
Merge pull request #548 from PickNikRobotics/fix-pick-1-pill-bottle
dsobek Mar 26, 2026
0908225
Fix Stack Objects with ICP objective
dsobek Mar 26, 2026
5e3a651
add launch commands for moveit pro for new sim
bkanator Mar 26, 2026
ea2bbf2
Merge pull request #550 from PickNikRobotics/17728-lunar_sim-does-not…
bkanator Mar 27, 2026
b18b96d
17718 Increase path tolerance on factory sim to allow Pick and Place …
griswaldbrooks Mar 27, 2026
c2fcd99
Merge pull request #549 from PickNikRobotics/fix-icp-objective
dsobek Mar 27, 2026
4359ecb
Merge pull request #545 from PickNikRobotics/17708-add-access-stand-c…
JWhitleyWork Mar 27, 2026
3d67bdb
Merge pull request #552 from PickNikRobotics/17718-pick-and-place-pat…
griswaldbrooks Mar 30, 2026
4029489
Fix Invalid URDF Names
JWhitleyWork Mar 30, 2026
964c6a1
Merge pull request #554 from PickNikRobotics/9.1-fix-invalid-names
JWhitleyWork Mar 30, 2026
67671e8
Merge branch 'v9.1' into merge-9.1-to-main
JWhitleyWork Mar 30, 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
Expand Up @@ -81,7 +81,7 @@ joint_trajectory_admittance_controller:
# provide the gravity vector in the base frame.
gravity_vector: [0.0, 0.0, -9.8]
# Default maximum joint-space deviation accepted along the trajectory, if not specified in the goal message.
default_path_tolerance: 0.5
default_path_tolerance: 0.6
# Default maximum joint-space deviation accepted at the trajectory end-point, if not specified in the goal message.
default_goal_tolerance: 0.05
# Default maximum absolute force torque readings allowed from the force torque sensor along each Cartesian space
Expand Down
4 changes: 4 additions & 0 deletions src/hangar_sim/config/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,13 @@ objectives:
- "moveit_pro::behaviors::NavBehaviorsLoader"
- "moveit_pro::behaviors::VisionBehaviorsLoader"
- "moveit_pro::behaviors::ConverterBehaviorsLoader"
- "moveit_pro::behaviors::MujocoBehaviorsLoader"
# Specify source folder for objectives
# [Required]
objective_library_paths:
mujoco_objectives:
package_name: "moveit_pro_objectives"
relative_path: "objectives/mujoco"
hangar_sim_objectives:
package_name: "hangar_sim"
relative_path: "objectives"
Expand Down
68 changes: 68 additions & 0 deletions src/hangar_sim/config/moveit/picknik_ur.srdf
Original file line number Diff line number Diff line change
Expand Up @@ -361,6 +361,74 @@
<disable_collisions link1="collision_Cube_002" link2="collision_supports_015" reason="Never"/>
<disable_collisions link1="collision_Cube_002" link2="collision_vacuum_base" reason="Never"/>
<disable_collisions link1="collision_Cube_002" link2="collision_vacuum_suction_cups" reason="Never"/>
<disable_collisions link1="collision_Cube" link2="collision_Cube_002_001" reason="Never"/>
<disable_collisions link1="collision_Cube_001" link2="collision_Cube_002_001" reason="Never"/>
<disable_collisions link1="collision_Cube_002" link2="collision_Cube_002_001" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_Cube_004" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_Cube_005" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_Cube_006" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_Cube_007" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_Cube_008" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_Cube_009" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_Cube_010" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_Cube_011" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_Cube_012" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_Cube_013" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_Cube_014" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_Cube_015" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_Plane" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_Plane_001" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_Plane_002" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_Plane_003" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_Plane_004" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_Plane_005" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_Plane_006" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_Plane_007" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_Plane_008" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_Plane_009" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_Plane_010" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_Plane_011" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_Plane_012" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_SM_Box_A7_73" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_SM_Box_A8" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_SM_Box_C7_77" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_SM_Floor_376" reason="Adjacent"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_SM_Pillar2_001" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_SM_Pillar3_001" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_SM_Pillar4_001" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_SM_Pillar5_001" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_SM_Pillar6_001" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_SM_Pillar7_001" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_SM_Pillar8_001" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_SM_Pillar_10_001" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_SM_Room_426_001" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_SM_Room_426_002" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_SM_Room_426_003" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_SM_Room_426_004" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_SM_WallBack_396_001" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_SM_WallBack_396_002" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_SM_WallFront_382_001" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_SM_WallFront_382_002" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_SM_WallSide16_002" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_SM_WallSide4_001" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_supports" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_supports_001" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_supports_002" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_supports_003" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_supports_004" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_supports_005" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_supports_006" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_supports_007" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_supports_008" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_supports_009" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_supports_010" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_supports_011" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_supports_012" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_supports_013" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_supports_014" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_supports_015" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_vacuum_base" reason="Never"/>
<disable_collisions link1="collision_Cube_002_001" link2="collision_vacuum_suction_cups" reason="Never"/>
<disable_collisions link1="collision_Cube_004" link2="collision_Cube_005" reason="Never"/>
<disable_collisions link1="collision_Cube_004" link2="collision_Cube_006" reason="Never"/>
<disable_collisions link1="collision_Cube_004" link2="collision_Cube_007" reason="Never"/>
Expand Down
Git LFS file not shown
3 changes: 3 additions & 0 deletions src/hangar_sim/description/assets/hangar_mesh/SM_Cart_28.dae
Git LFS file not shown
6 changes: 3 additions & 3 deletions src/hangar_sim/description/hangar.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2517,14 +2517,14 @@
/>
</body>
<body
name="collision_Cube_002.001"
name="collision_Cube_002_001"
pos="-11.812490463256836 2.936809539794922 0.800389289855957"
quat="4.371138828673793e-08 0.0 0.0 -1.0"
>
<geom
class="collision"
type="mesh"
name="collision_Cube_002.001 geom"
name="collision_Cube_002_001 geom"
mesh="collision_Cube_002.001"
/>
<body
Expand Down Expand Up @@ -2969,7 +2969,7 @@
<mesh name="SM_DoorSingle2" file="hangar_mesh/SM_DoorSingle2.obj" />
<mesh name="SM_AccessStand_441" file="hangar_mesh/SM_AccessStand_441.obj" />
<mesh
name="collision_Cube_002.001"
name="collision_Cube_002_001"
file="hangar_mesh/collision_Cube_002.001.obj"
/>
<mesh
Expand Down
28 changes: 27 additions & 1 deletion src/hangar_sim/description/hangar_urdf.xacro
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,17 @@
</link>
<link name="collision_Cube">
<collision>
<origin rpy="0.0 0.0 0.0" xyz="7.231803894042969 -12.968037605285645 1.2229089736938477"/>
<origin rpy="0.0 0.0 0.0" xyz="-11.642203330993652 -23.97299122810723 0.93372729420661926"/>
<geometry>
<mesh filename="package://hangar_sim/description/assets/hangar_mesh/collision_Cube.obj" scale="1.0 1.0 1.0"/>
</geometry>
</collision>
<visual>
<origin rpy="0.0 0.0 0.0" xyz="-11.641720771789551 -23.939123630523683 0.9243095517158508"/>
<geometry>
<mesh filename="package://hangar_sim/description/assets/hangar_mesh/SM_Cart_28.dae" scale="1.0 1.0 1.0"/>
</geometry>
</visual>
</link>
<link name="collision_Cube_001">
<collision>
Expand Down Expand Up @@ -151,6 +157,20 @@
</geometry>
</collision>
</link>
<link name="collision_Cube_002_001">
<collision>
<origin rpy="0.0 0.0 0.0" xyz="-11.812490463256836 -22.871850967407228 1.300389289855957"/>
<geometry>
<mesh filename="package://hangar_sim/description/assets/hangar_mesh/collision_Cube_002.001.obj" scale="1.0 1.0 1.0"/>
</geometry>
</collision>
<visual>
<origin rpy="0.0 0.0 3.141592653589793" xyz="-11.796743392944336 -22.872787143707277 1.380396664142609"/>
<geometry>
<mesh filename="package://hangar_sim/description/assets/hangar_mesh/SM_AccessStand_441.001.dae" scale="1.0 1.0 1.0"/>
</geometry>
</visual>
</link>
<link name="collision_Plane">
<collision>
<origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 0.5"/>
Expand Down Expand Up @@ -640,6 +660,12 @@
<child link="collision_Cube_015"/>
<origin rpy="0.0 0.0 0.0" xyz="0.0 25.80866050720215 -0.5"/>

</joint>
<joint name="collision_SM_Floor_376_collision_Cube_002_001_joint" type="fixed">
<parent link="collision_SM_Floor_376"/>
<child link="collision_Cube_002_001"/>
<origin rpy="0.0 0.0 0.0" xyz="0.0 25.80866050720215 -0.5"/>

</joint>
<joint name="collision_SM_Floor_376_collision_Plane_joint" type="fixed">
<parent link="collision_SM_Floor_376"/>
Expand Down
134 changes: 134 additions & 0 deletions src/hangar_sim/objectives/plan_path_along_surface_-_loop.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
<?xml version="1.0" encoding="UTF-8" ?>
<root BTCPP_format="4" main_tree_to_execute="Plan Path Along Surface - Loop">
<BehaviorTree
ID="Plan Path Along Surface - Loop"
_description="Plan and execute a path following a surface"
_favorite="true"
>
<Decorator ID="KeepRunningUntilFailure">
<Control ID="Sequence" name="TopLevelSequence" _collapsed="true">
<SubTree
ID="Move to Waypoint (JTC)"
_collapsed="true"
acceleration_scale_factor="1.0"
controller_names="joint_trajectory_controller"
joint_group_name="manipulator"
keep_orientation="false"
keep_orientation_tolerance="0.05"
link_padding="0.0"
seed="0"
velocity_scale_factor="1.0"
waypoint_name="Look at Plane"
/>
<Control ID="Sequence" _collapsed="true">
<!--Get a point cloud and crop it to the area of interest-->
<Action
ID="GetPointCloud"
topic_name="/wrist_camera/points"
message_out="{point_cloud}"
publisher_timeout_sec="5.000000"
message_timeout_sec="5.000000"
/>
<Action
ID="TransformPointCloudFrame"
input_cloud="{point_cloud}"
output_cloud="{point_cloud}"
target_frame="world"
/>
<Action
ID="CreateStampedPose"
reference_frame="world"
stamped_pose="{roi_frame}"
position_xyz="0;12;1.7"
/>
<Action
ID="CropPointsInBox"
crop_box_centroid_pose="{roi_frame}"
point_cloud="{point_cloud}"
point_cloud_cropped="{point_cloud}"
crop_box_size="5;15;0.2"
/>
<!--Visualize the cropped point cloud-->
<Action
ID="SendPointCloudToUI"
pcd_topic="/pcd_pointcloud_captures"
point_cloud="{point_cloud}"
/>
</Control>
<Control ID="Sequence" _collapsed="true">
<!--Get the centroid of the cropped point cloud and use it to get a contour-->
<Action
ID="GetCentroidFromPointCloud"
output_pose="{centroid}"
point_cloud="{point_cloud}"
/>
<Action
ID="VisualizePose"
marker_lifetime="20"
marker_name="centroid"
marker_size="0.200000"
pose="{centroid}"
/>
<Action
ID="GetContourFromPointCloudSlice"
contour_path="{contour_path}"
max_pose_spacing="0.200000"
hull_alpha="-1.000000"
input_cloud="{point_cloud}"
slice_distance_from_plane="0.100000"
slice_plane="{centroid}"
contour_crop_angle_span="3.2"
contour_crop_angle_start="1.58"
/>
<Action
ID="VisualizePath"
marker_lifetime="20"
marker_name="path"
path="{contour_path}"
pose_marker_size="0.100000"
show_poses="true"
/>
</Control>
<Control ID="Sequence" _collapsed="true">
<!--Plan and execute a path following the contour at a small distance-->
<Action
ID="PlanCartesianPath"
acceleration_scale_factor="1.000000"
blending_radius="0.0050000"
ik_cartesian_space_density="0.010000"
ik_joint_space_density="0.100000"
joint_trajectory_msg="{joint_trajectory_msg}"
path="{contour_path}"
planning_group_name="manipulator"
position_only="false"
trajectory_sampling_rate="100"
velocity_scale_factor="1.000000"
tip_offset="0;0;0.1;0;0;0"
debug_solution="{debug_solution}"
/>
<Action
ID="ExecuteTrajectory"
execution_pipeline="jtc"
controller_action_name="/joint_trajectory_controller/follow_joint_trajectory"
/>
</Control>
<SubTree
ID="Move to Waypoint (JTC)"
_collapsed="true"
waypoint_name="Look at Plane"
link_padding="0"
acceleration_scale_factor="1.0"
_skipIf="true"
/>
</Control>
</Decorator>
</BehaviorTree>
<TreeNodesModel>
<SubTree ID="Plan Path Along Surface - Loop">
<MetadataFields>
<Metadata runnable="true" />
<Metadata subcategory="Training Examples" />
</MetadataFields>
</SubTree>
</TreeNodesModel>
</root>
2 changes: 1 addition & 1 deletion src/kitchen_sim/config/control/franka_ros2_control.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ joint_trajectory_admittance_controller:
# Joint accelerations to use for immediate stops (e.g. when cancelling a running trajectory).
stop_accelerations: [30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0]
# Default maximum joint-space deviation accepted along the trajectory, if not specified in the goal message.
default_path_tolerance: 0.5
default_path_tolerance: 0.6

franka_gripper_controller:
ros__parameters:
Expand Down
4 changes: 2 additions & 2 deletions src/lab_sim/objectives/cycle_between_waypoints.xml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<?xml version="1.0" ?>
<?xml version="1.0" encoding="UTF-8" ?>
<root BTCPP_format="4" main_tree_to_execute="Cycle Between Waypoints">
<BehaviorTree
ID="Cycle Between Waypoints"
Expand All @@ -9,7 +9,7 @@
<Control ID="Sequence">
<SubTree
ID="Move to Waypoint"
waypoint_name="Above Pick Cube"
waypoint_name="Above Pick Object"
joint_group_name="manipulator"
/>
<SubTree
Expand Down
4 changes: 2 additions & 2 deletions src/lab_sim/objectives/pick_1_pill_bottle.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
_collapsed="true"
joint_group_name="manipulator"
keep_orientation_link_names="grasp_link"
waypoint_name="Above Pick Cube"
waypoint_name="Above Pick Object"
/>
<SubTree
ID="Segment Point Cloud from Text Prompt Subtree"
Expand Down Expand Up @@ -105,7 +105,7 @@
_collapsed="true"
joint_group_name="manipulator"
keep_orientation_link_names="grasp_link"
waypoint_name="Above Pick Cube"
waypoint_name="Above Pick Object"
/>
</Control>
</BehaviorTree>
Expand Down
2 changes: 2 additions & 0 deletions src/lab_sim/objectives/register_cad_part_subtree.xml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
ID="TransformPointCloud"
input_cloud="{red_cloud}"
transform_pose="{stamped_pose}"
output_cloud="{red_cloud}"
/>
<Action
ID="SendPointCloudToUI"
Expand Down Expand Up @@ -81,6 +82,7 @@
ID="TransformPointCloud"
input_cloud="{green_cloud}"
transform_pose="{stamped_pose}"
output_cloud="{green_cloud}"
/>
<Action
ID="TransformPointCloud"
Expand Down
2 changes: 1 addition & 1 deletion src/lab_sim_behaviors/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.22)
project(lab_sim_behaviors CXX)
project(lab_sim_behaviors)

find_package(moveit_pro_package REQUIRED)
moveit_pro_package()
Expand Down
1 change: 1 addition & 0 deletions src/lunar_sim/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ find_package(phoebe_sim REQUIRED)
install(
DIRECTORY
config
launch
mjcf
DESTINATION
share/${PROJECT_NAME}
Expand Down
Loading
Loading