Skip to content
This repository has been archived by the owner on Dec 13, 2024. It is now read-only.

Commit

Permalink
Merge pull request #172 from PickNikRobotics/merge-3.0.0-to-main
Browse files Browse the repository at this point in the history
Merge 3.0.0 to main
  • Loading branch information
sea-bass authored Jan 11, 2024
2 parents 07fb299 + eb8c0f2 commit 85b5f78
Show file tree
Hide file tree
Showing 36 changed files with 147 additions and 142 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -51,4 +51,4 @@ jobs:
colcon test
- if: always()
run: |
colcon test-result
colcon test-result --verbose
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,5 @@
build/
install/
log/

**__pycache__
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# MoveIt Studio Workspace
# MoveIt Studio Workspace for Universal Robots Arms

This is a sample user workspace for running MoveIt Studio with a generic Universal Robots (UR) arm.
For more information, refer to the [MoveIt Studio Documentation](https://docs.picknik.ai/).

Instructions for building your own MoveIt Studio configuration can be found [in the getting started guides.](https://docs.picknik.ai/en/stable/getting_started/getting_started.html)
Instructions for building your own MoveIt Studio configuration can be found [in the getting started guides](https://docs.picknik.ai/en/stable/getting_started/getting_started.html).

MoveIt Studio can be used with real robots and full simulators such as Gazebo and NVIDIA Isaac Sim.
For testing purposes, you can also use the [ROS 2 Control Mock Components](https://control.ros.org/master/doc/ros2_control/hardware_interface/doc/mock_components_userdoc.html), which is what this repo is configured to use.
Expand All @@ -21,6 +21,7 @@ Base[picknik_ur_base_config] --> Site[picknik_ur_site_config]
Base --> Mock[picknik_ur_mock_hw_config]
Site --> Gazebo[picknik_ur_gazebo_config]
Site --> Picknik[Other PickNik configs]
Gazebo --> ScanAndPlan[picknik_ur_gazebo_scan_and_plan_config]
```

Specifically:
Expand All @@ -29,4 +30,5 @@ Specifically:
* `picknik_ur_mock_hw_config` provides overrides for a machine tending application simulated using mock components (no physics).
* `picknik_ur_site_config` extends the base configuration with capabilities for robots with physics and perception.
* `picknik_ur_gazebo_config` extends the site configuration with support for the Gazebo simulator.
* `picknik_ur_gazebo_scan_and_plan_config` extends the Gazebo configuration with an alternate environment for 3D object scanning.
* Other hardware-specific configurations, such as the ones used on PickNik's UR arms, inherit from `picknik_ur_site_config`.
2 changes: 1 addition & 1 deletion src/picknik_ur_base_config/package.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<package format="3">
<name>picknik_ur_base_config</name>
<version>2.11.0</version>
<version>3.0.0</version>

<description>Base configuration package for Picknik's UR robot arms</description>

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
GraspOffset:
x: -0.1
y: 0.0
z: 0.05
qx: 0.707
qy: -0.707
qz: 0.0
qw: 0.0
position:
x: -0.1
y: 0.0
z: 0.05
orientation:
x: 0.707
y: -0.707
z: 0.0
w: 0.0
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
GraspOffset:
x: -0.1
y: 0.0
z: 0.05
qx: 0.707
qy: -0.707
qz: 0.0
qw: 0.0
position:
x: -0.1
y: 0.0
z: 0.05
orientation:
x: 0.707
y: -0.707
z: 0.0
w: 0.0
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
GraspOffset:
x: -0.1
y: 0.0
z: 0.05
qx: 0.707
qy: -0.707
qz: 0.0
qw: 0.0
position:
x: -0.1
y: 0.0
z: 0.05
orientation:
x: 0.707
y: -0.707
z: 0.0
w: 0.0
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<Action ID="GetPoseFromUser" parameter_name="close_cabinet_door.target_pose" parameter_value="{target_pose}" />
<Action ID="SetupMTCMoveToPose" ik_frame="manual_grasp_link" planning_group_name="manipulator" target_pose="{target_pose}" task="{close_cabinet_door_task}" use_all_planners="false"/>
<Action ID="SetupMTCUpdateGroupCollisionRule" name="AllowGripperCollisionWithOctomap" parameters="{parameters}" task="{close_cabinet_door_task}" />
<Action ID="SetupMTCMoveAlongFrameAxis" axis="z" max_distance="1.5" min_distance="0.05" parameters="{parameters}" task="{close_cabinet_door_task}" />
<Action ID="SetupMTCMoveAlongFrameAxis" task="{push_along_axis_task}" hand_frame="manual_grasp_link" axis_frame="manual_grasp_link" axis_x="0.0" axis_y="0.0" axis_z="1.0" max_distance="1.5" min_distance="0.05" planning_group_name="manipulator" velocity_scale="0.05" acceleration_scale="0.05" />
<Action ID="SetupMTCUpdateGroupCollisionRule" name="ForbidGripperCollisionWithOctomap" parameters="{parameters}" task="{close_cabinet_door_task}" />
<Action ID="PlanMTCTask" solution="{full_close_cabinet_door_solution}" task="{close_cabinet_door_task}"/>
<Action ID="SplitMTCSolution" solution_in="{full_close_cabinet_door_solution}" index="3" solution_out_1="{move_to_approach_solution}" solution_out_2="{push_solution}" />
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,3 @@
SetupMTCMoveAlongFrameAxis:
arm_group_name: "manipulator"
hand_frame_name: "manual_grasp_link"
velocity_acceleration_scaling_factor: 0.05

AllowGripperCollisionWithOctomap:
group_name: "gripper"
object_name: "<octomap>"
Expand Down
2 changes: 1 addition & 1 deletion src/picknik_ur_gazebo_config/objectives/push_button.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<Action ID="GetPoseFromUser" parameter_name="push_button.target_pose" parameter_value="{target_pose}" />
<Action ID="SetupMTCMoveToPose" ik_frame="manual_grasp_link" planning_group_name="manipulator" target_pose="{target_pose}" task="{push_button_task}" use_all_planners="false"/>
<Action ID="SetupMTCUpdateGroupCollisionRule" name="AllowGripperCollisionWithOctomap" parameters="{parameters}" task="{push_button_task}" />
<Action ID="SetupMTCMoveAlongFrameAxis" axis="z" max_distance="0.2" min_distance="0.05" parameters="{parameters}" task="{push_button_task}" />
<Action ID="SetupMTCMoveAlongFrameAxis" task="{push_button_task}" hand_frame="manual_grasp_link" axis_frame="manual_grasp_link" axis_x="0.0" axis_y="0.0" axis_z="1.0" max_distance="0.2" min_distance="0.05" planning_group_name="manipulator" velocity_scale="0.05" acceleration_scale="0.05" />
<Action ID="SetupMTCUpdateGroupCollisionRule" name="ForbidGripperCollisionWithOctomap" parameters="{parameters}" task="{push_button_task}" />
<Action ID="PlanMTCTask" solution="{full_push_button_solution}" task="{push_button_task}"/>
<Action ID="SplitMTCSolution" solution_in="{full_push_button_solution}" index="3" solution_out_1="{move_to_approach_solution}" solution_out_2="{push_solution}" />
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,3 @@
SetupMTCMoveAlongFrameAxis:
arm_group_name: "manipulator"
hand_frame_name: "manual_grasp_link"
velocity_acceleration_scaling_factor: 0.05

AllowGripperCollisionWithOctomap:
group_name: "gripper"
object_name: "<octomap>"
Expand Down
3 changes: 1 addition & 2 deletions src/picknik_ur_gazebo_config/objectives/push_button_ml.xml
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,7 @@
<Action ID="SetupMTCUpdateGroupCollisionRule"
name="AllowGripperCollisionWithOctomap" parameters="{parameters}"
task="{push_along_axis_task}" />
<Action ID="SetupMTCMoveAlongFrameAxis" axis="z" max_distance="0.2"
min_distance="0.05" parameters="{parameters}" task="{push_along_axis_task}" />
<Action ID="SetupMTCMoveAlongFrameAxis" task="{push_along_axis_task}" hand_frame="manual_grasp_link" axis_frame="manual_grasp_link" axis_x="0.0" axis_y="0.0" axis_z="1.0" max_distance="0.2" min_distance="0.05" planning_group_name="manipulator" velocity_scale="0.05" acceleration_scale="0.05" />
<Action ID="SetupMTCUpdateGroupCollisionRule"
name="ForbidGripperCollisionWithOctomap" parameters="{parameters}"
task="{push_along_axis_task}" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<SubTree ID="Sample April Tag" num_samples="5" tag_id="1" apriltag_config="apriltag_detection_config.yaml" max_distance="0.02" max_rotation="0.2" avg_pose="{tag_pose}"/>
<Action ID="TransformPoseFrame" input_pose="{tag_pose}" target_frame_id="world" output_pose="{tag_pose_world}"/>
<Action ID="CalculatePoseOffset" source_pose="{tag_pose_world}" destination_pose="{user_grasp_pose}" source_to_destination_pose="{tag_to_user_grasp_pose}"/>
<Action ID="WritePoseToYAML" yaml_filename="apriltag1_grasp_offset" namespace="GraspOffset" pose="{tag_to_user_grasp_pose}"/>
<Action ID="SavePoseToYaml" yaml_filename="apriltag1_grasp_offset" namespace="GraspOffset" message="{tag_to_user_grasp_pose}"/>
</Control>
</BehaviorTree>
</root>
2 changes: 1 addition & 1 deletion src/picknik_ur_gazebo_config/package.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<package format="3">
<name>picknik_ur_gazebo_config</name>
<version>2.11.0</version>
<version>3.0.0</version>

<description>Site configuration package for the UR5e in PickNik's space station world simulated by Gazebo.</description>

Expand Down
2 changes: 1 addition & 1 deletion src/picknik_ur_gazebo_scan_and_plan_config/package.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<package format="3">
<name>picknik_ur_gazebo_scan_and_plan_config</name>
<version>2.11.0</version>
<version>3.0.0</version>

<description>Site configuration package for the UR5e simulated in Gazebo to show "scan and plan" applications.</description>

Expand Down
2 changes: 1 addition & 1 deletion src/picknik_ur_mock_hw_config/package.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<package format="3">
<name>picknik_ur_mock_hw_config</name>
<version>2.11.0</version>
<version>3.0.0</version>

<description>Configuration package for a UR arm that can be simulated with mock hardware</description>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<Action ID="GetPoseFromUser" parameter_name="close_cabinet_door.target_pose" parameter_value="{target_pose}" />
<Action ID="SetupMTCMoveToPose" ik_frame="manual_grasp_link" planning_group_name="manipulator" target_pose="{target_pose}" task="{close_cabinet_door_task}" use_all_planners="false"/>
<Action ID="SetupMTCUpdateGroupCollisionRule" name="AllowGripperCollisionWithOctomap" parameters="{parameters}" task="{close_cabinet_door_task}" />
<Action ID="SetupMTCMoveAlongFrameAxis" axis="z" max_distance="1.5" min_distance="0.05" parameters="{parameters}" task="{close_cabinet_door_task}" />
<Action ID="SetupMTCMoveAlongFrameAxis" task="{close_cabinet_door_task}" hand_frame="manual_grasp_link" axis_frame="manual_grasp_link" axis_x="0.0" axis_y="0.0" axis_z="1.0" max_distance="1.5" min_distance="0.05" planning_group_name="manipulator" velocity_scale="0.05" acceleration_scale="0.05" />
<Action ID="SetupMTCUpdateGroupCollisionRule" name="ForbidGripperCollisionWithOctomap" parameters="{parameters}" task="{close_cabinet_door_task}" />
<Action ID="PlanMTCTask" solution="{full_close_cabinet_door_solution}" task="{close_cabinet_door_task}"/>
<Action ID="SplitMTCSolution" solution_in="{full_close_cabinet_door_solution}" index="3" solution_out_1="{move_to_approach_solution}" solution_out_2="{push_solution}" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,12 @@
<Action ID="GetPoseFromUser" parameter_name="process_door_selection.hinge_axis_pose_end" parameter_value="{hinge_axis_pose_end}" />
<Action ID="GetPoseFromUser" parameter_name="process_door_selection.hinge_axis_pose_start" parameter_value="{hinge_axis_pose_start}" />
<Action ID="GetPoseFromUser" parameter_name="process_door_selection.grasp_pose" parameter_value="{grasp_pose}" />
<Action ID="GetHingeAxisFromSurfaceSelection" grasp_pose="{grasp_pose}" hinge_axis_pose_end="{hinge_axis_pose_end}" hinge_axis_pose_start="{hinge_axis_pose_start}" screw_axis_pose="{screw_axis_pose}" screw_origin_pose="{screw_origin_pose}" target_grasp_pose="{grasp_pose}" />
<Action ID="GetMoveAlongArcSubframes" grasp_pose="{grasp_pose}" hinge_axis_pose_end="{hinge_axis_pose_end}" hinge_axis_pose_start="{hinge_axis_pose_start}" screw_axis_pose="{screw_axis_pose}" screw_origin_pose="{screw_origin_pose}" target_grasp_pose="{grasp_pose}" />
<Action ID="MoveGripperAction" gripper_command_action_name="/robotiq_gripper_controller/gripper_cmd" position="0.0" />
<Control ID="Sequence" name="OpenDoorAffordanceMain">
<Action ID="InitializeMTCTask" task_id="open_door_affordance" controller_names="/joint_trajectory_controller /robotiq_gripper_controller" task="{open_door_affordance_task}" />
<Action ID="SetupMTCCurrentState" task="{open_door_affordance_task}" />
<Action ID="SetupMTCAffordanceTemplate" grasp_pose="{grasp_pose}" name="SetupMTCOpenDoorAffordance" parameters="{parameters}" screw_axis_pose="{screw_axis_pose}" screw_origin_pose="{screw_origin_pose}" task="{open_door_affordance_task}" />
<Action ID="SetupMTCGraspThenMoveAlongArcPull" grasp_pose="{grasp_pose}" name="SetupMTCOpenDoorAffordance" parameters="{parameters}" screw_axis_pose="{screw_axis_pose}" screw_origin_pose="{screw_origin_pose}" task="{open_door_affordance_task}" />
<Action ID="PlanMTCTask" solution="{open_door_affordance_solution}" task="{open_door_affordance_task}" />
<SubTree ID="Wait for Trajectory Approval if User Available" solution="{open_door_affordance_solution}"/>
<!-- Whether task execution succeeds or fails, reset the controllers to disable admittance control. -->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
grasp_pose="{detected_grasp_pose}"
hinge_axis_pose_start="{hinge_axis_pose_start}"
hinge_axis_pose_end="{hinge_axis_pose_end}" />
<Action ID="GetHingeAxisFromSurfaceSelection"
<Action ID="GetMoveAlongArcSubframes"
target_grasp_pose="{detected_grasp_pose}"
hinge_axis_pose_end="{hinge_axis_pose_end}"
hinge_axis_pose_start="{hinge_axis_pose_start}"
Expand All @@ -54,7 +54,7 @@
controller_names="/joint_trajectory_controller /robotiq_gripper_controller"
task="{open_door_affordance_task}" />
<Action ID="SetupMTCCurrentState" task="{open_door_affordance_task}" />
<Action ID="SetupMTCAffordanceTemplate"
<Action ID="SetupMTCGraspThenMoveAlongArcPull"
name="SetupMTCOpenDoorAffordance"
grasp_pose="{affordance_grasp_pose}"
parameters="{parameters}"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
controller_names="/joint_trajectory_controller /robotiq_gripper_controller"
task="{open_lever_handle_door_task}" />
<Action ID="SetupMTCCurrentState" task="{open_lever_handle_door_task}" />
<Action ID="SetupMTCOpenLeverHandleDoor" handle_length="{handle_length}"
<Action ID="SetupMTCGraspAndTwistThenMoveAlongArcPush" handle_length="{handle_length}"
handle_pose="{handle_pose}" handle_z_offset="{handle_z_offset}"
parameters="{parameters}" task="{open_lever_handle_door_task}" />
<Action ID="PlanMTCTask" solution="{open_lever_handle_door_solution}"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ GetDoorHandle:
# e.g. "world", is typically the right choice.
door_handle_pose_frame_name: world

SetupMTCOpenLeverHandleDoor:
SetupMTCGraspAndTwistThenMoveAlongArcPush:
arm_group_name: "manipulator"
end_effector_group_name: "gripper"
ik_frame_name: "grasp_link"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
<Control ID="Sequence" name="OpenLeverHandleDoor">
<Action ID="InitializeMTCTask" task_id="open_lever_handle_door_ml" controller_names="/joint_trajectory_controller /robotiq_gripper_controller" task="{open_lever_handle_door_task}"/>
<Action ID="SetupMTCCurrentState" task="{open_lever_handle_door_task}"/>
<Action ID="SetupMTCOpenLeverHandleDoor"
<Action ID="SetupMTCGraspAndTwistThenMoveAlongArcPush"
handle_pose="{handle_pose}"
handle_length="{length}"
handle_z_offset="{height}"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
SetupMTCOpenLeverHandleDoor:
SetupMTCGraspAndTwistThenMoveAlongArcPush:
arm_group_name: "manipulator"
end_effector_group_name: "gripper"
ik_frame_name: "grasp_link"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,3 @@
SetupMTCMoveAlongFrameAxis:
arm_group_name: "manipulator"
hand_frame_name: "manual_grasp_link"
velocity_acceleration_scaling_factor: 0.05

AllowGripperCollisionWithOctomap:
group_name: "gripper"
object_name: "<octomap>"
Expand Down
2 changes: 1 addition & 1 deletion src/picknik_ur_site_config/objectives/push_button.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<Action ID="GetPoseFromUser" parameter_name="push_button.target_pose" parameter_value="{target_pose}" />
<Action ID="SetupMTCMoveToPose" ik_frame="manual_grasp_link" planning_group_name="manipulator" target_pose="{target_pose}" task="{push_button_task}" use_all_planners="false"/>
<Action ID="SetupMTCUpdateGroupCollisionRule" name="AllowGripperCollisionWithOctomap" parameters="{parameters}" task="{push_button_task}" />
<Action ID="SetupMTCMoveAlongFrameAxis" axis="z" max_distance="0.2" min_distance="0.05" parameters="{parameters}" task="{push_button_task}" />
<Action ID="SetupMTCMoveAlongFrameAxis" task="{push_button_task}" hand_frame="manual_grasp_link" axis_frame="manual_grasp_link" axis_x="0.0" axis_y="0.0" axis_z="1.0" max_distance="0.2" min_distance="0.05" planning_group_name="manipulator" velocity_scale="0.05" acceleration_scale="0.05" />
<Action ID="SetupMTCUpdateGroupCollisionRule" name="ForbidGripperCollisionWithOctomap" parameters="{parameters}" task="{push_button_task}" />
<Action ID="PlanMTCTask" solution="{full_push_button_solution}" task="{push_button_task}"/>
<Action ID="SplitMTCSolution" solution_in="{full_push_button_solution}" index="3" solution_out_1="{move_to_approach_solution}" solution_out_2="{push_solution}" />
Expand Down
3 changes: 1 addition & 2 deletions src/picknik_ur_site_config/objectives/push_button_ml.xml
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,7 @@
<Action ID="SetupMTCUpdateGroupCollisionRule"
name="AllowGripperCollisionWithOctomap" parameters="{parameters}"
task="{push_along_axis_task}" />
<Action ID="SetupMTCMoveAlongFrameAxis" axis="z" max_distance="0.2"
min_distance="0.05" parameters="{parameters}" task="{push_along_axis_task}" />
<Action ID="SetupMTCMoveAlongFrameAxis" task="{push_along_axis_task}" hand_frame="manual_grasp_link" axis_frame="manual_grasp_link" axis_x="0.0" axis_y="0.0" axis_z="1.0" max_distance="1.5" min_distance="0.05" planning_group_name="manipulator" velocity_scale="0.05" acceleration_scale="0.05" />
<Action ID="SetupMTCUpdateGroupCollisionRule"
name="ForbidGripperCollisionWithOctomap" parameters="{parameters}"
task="{push_along_axis_task}" />
Expand Down
2 changes: 1 addition & 1 deletion src/picknik_ur_site_config/package.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<package format="3">
<name>picknik_ur_site_config</name>
<version>2.11.0</version>
<version>3.0.0</version>

<description>Site configuration package for a UR arm that can be simulated with mock hardware</description>

Expand Down
2 changes: 1 addition & 1 deletion src/picknik_ur_studio_integration_testing/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>picknik_ur_studio_integration_testing</name>
<version>2.11.0</version>
<version>3.0.0</version>
<description>Integration tests for UR with MoveIt Studio.</description>
<maintainer email="studio.maintainers@picknik.ai">MoveIt Studio Maintainer</maintainer>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,9 @@
DeclareLaunchArgument,
ExecuteProcess,
IncludeLaunchDescription,
RegisterEventHandler,
TimerAction,
)
from launch.conditions import IfCondition
from launch.event_handlers import OnProcessExit
from launch.launch_description_sources import PythonLaunchDescriptionSource
from launch.some_substitutions_type import SomeSubstitutionsType
from launch.substitutions import (
Expand Down Expand Up @@ -81,7 +79,7 @@ def generate_agent_plus_drivers_launch_description(

# Get path to test objective directory defined within this repo
test_objective_path = Path(
get_package_share_directory("moveit_studio_integration_testing"),
get_package_share_directory("picknik_ur_studio_integration_testing"),
"test",
"objectives",
)
Expand Down Expand Up @@ -110,7 +108,7 @@ def generate_agent_plus_drivers_launch_description(

# Get path to test objective directory defined within this repo
test_objective_path = Path(
get_package_share_directory("moveit_studio_integration_testing"),
get_package_share_directory("picknik_ur_studio_integration_testing"),
"test",
"objectives",
)
Expand Down
Loading

0 comments on commit 85b5f78

Please sign in to comment.