From d4d8acbfa53cf71c9e2358322406df9e727ffe67 Mon Sep 17 00:00:00 2001 From: xfiderek Date: Fri, 6 Sep 2024 13:57:53 +0200 Subject: [PATCH] NASA_Challenge_[@xfiderek] Add canadarm2 moveit config for trick demo (#42). Adds moveit config with ros2 controllers configuration for the end to end demo. --- .../.setup_assistant | 27 ++ .../CMakeLists.txt | 11 + .../config/SSRMS_Canadarm2.ros2_control.xacro | 90 ++++ .../config/SSRMS_Canadarm2.srdf | 56 +++ .../config/SSRMS_Canadarm2.urdf.xacro | 295 ++++++++++++ .../config/initial_positions.yaml | 8 + .../config/joint_limits.yaml | 45 ++ .../config/kinematics.yaml | 8 + .../config/moveit.rviz | 448 ++++++++++++++++++ .../config/moveit_controllers.yaml | 18 + .../config/pilz_cartesian_limits.yaml | 6 + .../config/ros2_controllers.yaml | 77 +++ .../moveit_rviz.launch.cpython-310.pyc | Bin 0 -> 499 bytes .../launch/demo.launch.py | 67 +++ .../launch/move_group.launch.py | 73 +++ .../launch/moveit_rviz.launch.py | 14 + .../launch/rsp.launch.py | 32 ++ .../launch/setup_assistant.launch.py | 9 + .../launch/spawn_controllers.launch.py | 9 + .../launch/static_virtual_joint_tfs.launch.py | 9 + .../launch/warehouse_db.launch.py | 9 + .../trick_canadarm_moveit_config/package.xml | 46 ++ 22 files changed, 1357 insertions(+) create mode 100644 ros_trick/ros_src/trick_canadarm_moveit_config/.setup_assistant create mode 100644 ros_trick/ros_src/trick_canadarm_moveit_config/CMakeLists.txt create mode 100644 ros_trick/ros_src/trick_canadarm_moveit_config/config/SSRMS_Canadarm2.ros2_control.xacro create mode 100644 ros_trick/ros_src/trick_canadarm_moveit_config/config/SSRMS_Canadarm2.srdf create mode 100644 ros_trick/ros_src/trick_canadarm_moveit_config/config/SSRMS_Canadarm2.urdf.xacro create mode 100644 ros_trick/ros_src/trick_canadarm_moveit_config/config/initial_positions.yaml create mode 100644 ros_trick/ros_src/trick_canadarm_moveit_config/config/joint_limits.yaml create mode 100644 ros_trick/ros_src/trick_canadarm_moveit_config/config/kinematics.yaml create mode 100644 ros_trick/ros_src/trick_canadarm_moveit_config/config/moveit.rviz create mode 100644 ros_trick/ros_src/trick_canadarm_moveit_config/config/moveit_controllers.yaml create mode 100644 ros_trick/ros_src/trick_canadarm_moveit_config/config/pilz_cartesian_limits.yaml create mode 100644 ros_trick/ros_src/trick_canadarm_moveit_config/config/ros2_controllers.yaml create mode 100644 ros_trick/ros_src/trick_canadarm_moveit_config/launch/__pycache__/moveit_rviz.launch.cpython-310.pyc create mode 100644 ros_trick/ros_src/trick_canadarm_moveit_config/launch/demo.launch.py create mode 100644 ros_trick/ros_src/trick_canadarm_moveit_config/launch/move_group.launch.py create mode 100644 ros_trick/ros_src/trick_canadarm_moveit_config/launch/moveit_rviz.launch.py create mode 100644 ros_trick/ros_src/trick_canadarm_moveit_config/launch/rsp.launch.py create mode 100644 ros_trick/ros_src/trick_canadarm_moveit_config/launch/setup_assistant.launch.py create mode 100644 ros_trick/ros_src/trick_canadarm_moveit_config/launch/spawn_controllers.launch.py create mode 100644 ros_trick/ros_src/trick_canadarm_moveit_config/launch/static_virtual_joint_tfs.launch.py create mode 100644 ros_trick/ros_src/trick_canadarm_moveit_config/launch/warehouse_db.launch.py create mode 100644 ros_trick/ros_src/trick_canadarm_moveit_config/package.xml diff --git a/ros_trick/ros_src/trick_canadarm_moveit_config/.setup_assistant b/ros_trick/ros_src/trick_canadarm_moveit_config/.setup_assistant new file mode 100644 index 00000000..23da2f9a --- /dev/null +++ b/ros_trick/ros_src/trick_canadarm_moveit_config/.setup_assistant @@ -0,0 +1,27 @@ +moveit_setup_assistant_config: + urdf: + package: simulation + relative_path: models/canadarm/urdf/SSRMS_Canadarm2.urdf + srdf: + relative_path: config/SSRMS_Canadarm2.srdf + package_settings: + author_name: Dharini Dutia + author_email: dharini@openrobotics.org + generated_timestamp: 1672757808 + control_xacro: + command: + - position + - velocity + state: + - position + - velocity + modified_urdf: + xacros: + - control_xacro + control_xacro: + command: + - position + - velocity + state: + - position + - velocity \ No newline at end of file diff --git a/ros_trick/ros_src/trick_canadarm_moveit_config/CMakeLists.txt b/ros_trick/ros_src/trick_canadarm_moveit_config/CMakeLists.txt new file mode 100644 index 00000000..29f23015 --- /dev/null +++ b/ros_trick/ros_src/trick_canadarm_moveit_config/CMakeLists.txt @@ -0,0 +1,11 @@ +cmake_minimum_required(VERSION 3.22) +project(trick_canadarm_moveit_config) + +find_package(ament_cmake REQUIRED) + +ament_package() + +install(DIRECTORY launch DESTINATION share/${PROJECT_NAME} + PATTERN "setup_assistant.launch" EXCLUDE) +install(DIRECTORY config DESTINATION share/${PROJECT_NAME}) +install(FILES .setup_assistant DESTINATION share/${PROJECT_NAME}) diff --git a/ros_trick/ros_src/trick_canadarm_moveit_config/config/SSRMS_Canadarm2.ros2_control.xacro b/ros_trick/ros_src/trick_canadarm_moveit_config/config/SSRMS_Canadarm2.ros2_control.xacro new file mode 100644 index 00000000..8b5dacac --- /dev/null +++ b/ros_trick/ros_src/trick_canadarm_moveit_config/config/SSRMS_Canadarm2.ros2_control.xacro @@ -0,0 +1,90 @@ + + + + + + trick_ros2_control/TrickSystem + localhost + 49765 + 100.0 + + + + + + + + CanadarmManip.manip.q[0] + CanadarmManip.manip.q_dot[0] + CanadarmManip.manip.q_dotdot[0] + CanadarmManip.manip.input_torque[0] + + + + + + + + CanadarmManip.manip.q[1] + CanadarmManip.manip.q_dot[1] + CanadarmManip.manip.q_dotdot[1] + CanadarmManip.manip.input_torque[1] + + + + + + + + CanadarmManip.manip.q[2] + CanadarmManip.manip.q_dot[2] + CanadarmManip.manip.q_dotdot[2] + CanadarmManip.manip.input_torque[2] + + + + + + + + CanadarmManip.manip.q[3] + CanadarmManip.manip.q_dot[3] + CanadarmManip.manip.q_dotdot[3] + CanadarmManip.manip.input_torque[3] + + + + + + + + CanadarmManip.manip.q[4] + CanadarmManip.manip.q_dot[4] + CanadarmManip.manip.q_dotdot[4] + CanadarmManip.manip.input_torque[4] + + + + + + + + CanadarmManip.manip.q[5] + CanadarmManip.manip.q_dot[5] + CanadarmManip.manip.q_dotdot[5] + CanadarmManip.manip.input_torque[5] + + + + + + + + CanadarmManip.manip.q[6] + CanadarmManip.manip.q_dot[6] + CanadarmManip.manip.q_dotdot[6] + CanadarmManip.manip.input_torque[6] + + + + diff --git a/ros_trick/ros_src/trick_canadarm_moveit_config/config/SSRMS_Canadarm2.srdf b/ros_trick/ros_src/trick_canadarm_moveit_config/config/SSRMS_Canadarm2.srdf new file mode 100644 index 00000000..3b6cf266 --- /dev/null +++ b/ros_trick/ros_src/trick_canadarm_moveit_config/config/SSRMS_Canadarm2.srdf @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ros_trick/ros_src/trick_canadarm_moveit_config/config/SSRMS_Canadarm2.urdf.xacro b/ros_trick/ros_src/trick_canadarm_moveit_config/config/SSRMS_Canadarm2.urdf.xacro new file mode 100644 index 00000000..a1ffd28c --- /dev/null +++ b/ros_trick/ros_src/trick_canadarm_moveit_config/config/SSRMS_Canadarm2.urdf.xacro @@ -0,0 +1,295 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ros_trick/ros_src/trick_canadarm_moveit_config/config/initial_positions.yaml b/ros_trick/ros_src/trick_canadarm_moveit_config/config/initial_positions.yaml new file mode 100644 index 00000000..a60f036d --- /dev/null +++ b/ros_trick/ros_src/trick_canadarm_moveit_config/config/initial_positions.yaml @@ -0,0 +1,8 @@ +initial_positions: + Base_Joint: 0 + Elbow_Pitch: 0 + Shoulder_Roll: 0 + Shoulder_Yaw: 0 + Wrist_Pitch: 0 + Wrist_Roll: 0 + Wrist_Yaw: 0 diff --git a/ros_trick/ros_src/trick_canadarm_moveit_config/config/joint_limits.yaml b/ros_trick/ros_src/trick_canadarm_moveit_config/config/joint_limits.yaml new file mode 100644 index 00000000..276f5eb3 --- /dev/null +++ b/ros_trick/ros_src/trick_canadarm_moveit_config/config/joint_limits.yaml @@ -0,0 +1,45 @@ +# joint_limits.yaml allows the dynamics properties specified in the URDF to be overwritten or augmented as needed + +# For beginners, we downscale velocity and acceleration limits. +# You can always specify higher scaling factors (<= 1.0) in your motion requests. # Increase the values below to 1.0 to always move at maximum speed. +default_velocity_scaling_factor: 0.1 +default_acceleration_scaling_factor: 0.1 + +# Specific joint properties can be changed with the keys [max_position, min_position, max_velocity, max_acceleration] +# Joint limits can be turned off with [has_velocity_limits, has_acceleration_limits] +joint_limits: + Base_Joint: + has_velocity_limits: true + max_velocity: 0.1 + has_acceleration_limits: true + max_acceleration: 0.025 + Elbow_Pitch: + has_velocity_limits: true + max_velocity: 0.1 + has_acceleration_limits: true + max_acceleration: 0.025 + Shoulder_Roll: + has_velocity_limits: true + max_velocity: 0.1 + has_acceleration_limits: true + max_acceleration: 0.025 + Shoulder_Yaw: + has_velocity_limits: true + max_velocity: 0.1 + has_acceleration_limits: true + max_acceleration: 0.025 + Wrist_Pitch: + has_velocity_limits: true + max_velocity: 0.1 + has_acceleration_limits: true + max_acceleration: 0.025 + Wrist_Roll: + has_velocity_limits: true + max_velocity: 0.1 + has_acceleration_limits: true + max_acceleration: 0.025 + Wrist_Yaw: + has_velocity_limits: true + max_velocity: 0.1 + has_acceleration_limits: true + max_acceleration: 0.025 diff --git a/ros_trick/ros_src/trick_canadarm_moveit_config/config/kinematics.yaml b/ros_trick/ros_src/trick_canadarm_moveit_config/config/kinematics.yaml new file mode 100644 index 00000000..f54b70cd --- /dev/null +++ b/ros_trick/ros_src/trick_canadarm_moveit_config/config/kinematics.yaml @@ -0,0 +1,8 @@ +canadarm: + kinematics_solver: kdl_kinematics_plugin/KDLKinematicsPlugin + kinematics_solver_search_resolution: 0.005 + kinematics_solver_timeout: 0.05 +canadarm_planning_group: + kinematics_solver: kdl_kinematics_plugin/KDLKinematicsPlugin + kinematics_solver_search_resolution: 0.005 + kinematics_solver_timeout: 0.005 diff --git a/ros_trick/ros_src/trick_canadarm_moveit_config/config/moveit.rviz b/ros_trick/ros_src/trick_canadarm_moveit_config/config/moveit.rviz new file mode 100644 index 00000000..c4d16195 --- /dev/null +++ b/ros_trick/ros_src/trick_canadarm_moveit_config/config/moveit.rviz @@ -0,0 +1,448 @@ +Panels: + - Class: rviz_common/Displays + Help Height: 0 + Name: Displays + Property Tree Widget: + Expanded: + - /Wrench1 + - /Wrench2 + - /Wrench3 + - /Wrench4 + - /Wrench5 + - /Wrench6 + - /Wrench7 + - /TF1 + - /MotionPlanning1 + - /MotionPlanning1/Scene Robot1 + - /MotionPlanning1/Planning Request1 + - /MotionPlanning1/Planned Path1 + Splitter Ratio: 0.5 + Tree Height: 165 + - Class: rviz_common/Help + Name: Help + - Class: rviz_common/Views + Expanded: + - /Current View1 + Name: Views + Splitter Ratio: 0.5 +Visualization Manager: + Class: "" + Displays: + - Alpha: 0.5 + Cell Size: 1 + Class: rviz_default_plugins/Grid + Color: 160; 160; 164 + Enabled: true + Line Style: + Line Width: 0.029999999329447746 + Value: Lines + Name: Grid + Normal Cell Count: 0 + Offset: + X: 0 + Y: 0 + Z: 0 + Plane: XY + Plane Cell Count: 10 + Reference Frame: + Value: true + - Acceleration_Scaling_Factor: 0.1 + Class: moveit_rviz_plugin/MotionPlanning + Enabled: true + Move Group Namespace: "" + MoveIt_Allow_Approximate_IK: false + MoveIt_Allow_External_Program: false + MoveIt_Allow_Replanning: false + MoveIt_Allow_Sensor_Positioning: false + MoveIt_Planning_Attempts: 10 + MoveIt_Planning_Time: 5 + MoveIt_Use_Cartesian_Path: false + MoveIt_Use_Constraint_Aware_IK: false + MoveIt_Workspace: + Center: + X: 0 + Y: 0 + Z: 0 + Size: + X: 2 + Y: 2 + Z: 2 + Name: MotionPlanning + Planned Path: + Color Enabled: false + Interrupt Display: false + Links: + All Links Enabled: true + B1: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + B2: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + B3: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + B4: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + B5: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + B6: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + Base_SSRMS: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + EE_SSRMS: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + Expand Joint Details: false + Expand Link Details: false + Expand Tree: false + Link Tree Style: Links in Alphabetic Order + world: + Alpha: 1 + Show Axes: false + Show Trail: false + Loop Animation: false + Robot Alpha: 0.30000001192092896 + Robot Color: 150; 50; 150 + Show Robot Collision: false + Show Robot Visual: true + Show Trail: false + State Display Time: 0.05 s + Trail Step Size: 1 + Trajectory Topic: display_planned_path + Use Sim Time: false + Planning Metrics: + Payload: 1 + Show Joint Torques: false + Show Manipulability: false + Show Manipulability Index: false + Show Weight Limit: false + TextHeight: 0.07999999821186066 + Planning Request: + Colliding Link Color: 255; 0; 0 + Goal State Alpha: 0.25 + Goal State Color: 250; 128; 0 + Interactive Marker Size: 1.5 + Joint Violation Color: 255; 0; 255 + Planning Group: canadarm + Query Goal State: true + Query Start State: false + Show Workspace: false + Start State Alpha: 0 + Start State Color: 0; 255; 0 + Planning Scene Topic: monitored_planning_scene + Robot Description: robot_description + Scene Geometry: + Scene Alpha: 1 + Scene Color: 50; 230; 50 + Scene Display Time: 0.009999999776482582 + Show Scene Geometry: true + Voxel Coloring: Z-Axis + Voxel Rendering: Occupied Voxels + Scene Robot: + Attached Body Color: 150; 50; 150 + Links: + All Links Enabled: true + B1: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + B2: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + B3: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + B4: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + B5: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + B6: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + Base_SSRMS: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + EE_SSRMS: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + Expand Joint Details: false + Expand Link Details: false + Expand Tree: false + Link Tree Style: Links in Alphabetic Order + world: + Alpha: 1 + Show Axes: false + Show Trail: false + Robot Alpha: 1 + Show Robot Collision: false + Show Robot Visual: true + Value: true + Velocity_Scaling_Factor: 0.1 + - Accept NaN Values: false + Alpha: 1 + Arrow Width: 0.4000000059604645 + Class: rviz_default_plugins/Wrench + Enabled: true + Force Arrow Scale: 2 + Force Color: 204; 51; 51 + History Length: 1 + Name: Wrench + Topic: + Depth: 5 + Durability Policy: Volatile + Filter size: 10 + History Policy: Keep Last + Reliability Policy: Reliable + Value: /wrench_topic/B1/total_torque + Torque Arrow Scale: 0.029999999329447746 + Torque Color: 255; 0; 255 + Value: true + - Class: rviz_default_plugins/TF + Enabled: true + Frame Timeout: 15 + Frames: + All Enabled: true + B1: + Value: true + B2: + Value: true + B3: + Value: true + B4: + Value: true + B5: + Value: true + B6: + Value: true + Base_SSRMS: + Value: true + EE_SSRMS: + Value: true + world: + Value: true + Marker Scale: 4 + Name: TF + Show Arrows: false + Show Axes: true + Show Names: true + Tree: + world: + Base_SSRMS: + B1: + B2: + B3: + B4: + B5: + B6: + EE_SSRMS: + {} + Update Interval: 0 + Value: true + - Accept NaN Values: false + Alpha: 1 + Arrow Width: 0.4000000059604645 + Class: rviz_default_plugins/Wrench + Enabled: true + Force Arrow Scale: 2 + Force Color: 204; 51; 51 + History Length: 1 + Name: Wrench + Topic: + Depth: 5 + Durability Policy: Volatile + Filter size: 10 + History Policy: Keep Last + Reliability Policy: Reliable + Value: /wrench_topic/B2/total_torque + Torque Arrow Scale: 0.029999999329447746 + Torque Color: 255; 0; 255 + Value: true + - Accept NaN Values: false + Alpha: 1 + Arrow Width: 0.4000000059604645 + Class: rviz_default_plugins/Wrench + Enabled: true + Force Arrow Scale: 2 + Force Color: 204; 51; 51 + History Length: 1 + Name: Wrench + Topic: + Depth: 5 + Durability Policy: Volatile + Filter size: 10 + History Policy: Keep Last + Reliability Policy: Reliable + Value: /wrench_topic/B3/total_torque + Torque Arrow Scale: 0.029999999329447746 + Torque Color: 255; 0; 255 + Value: true + - Accept NaN Values: false + Alpha: 1 + Arrow Width: 0.4000000059604645 + Class: rviz_default_plugins/Wrench + Enabled: true + Force Arrow Scale: 2 + Force Color: 204; 51; 51 + History Length: 1 + Name: Wrench + Topic: + Depth: 5 + Durability Policy: Volatile + Filter size: 10 + History Policy: Keep Last + Reliability Policy: Reliable + Value: /wrench_topic/B4/total_torque + Torque Arrow Scale: 0.029999999329447746 + Torque Color: 255; 0; 255 + Value: true + - Accept NaN Values: false + Alpha: 1 + Arrow Width: 0.4000000059604645 + Class: rviz_default_plugins/Wrench + Enabled: true + Force Arrow Scale: 2 + Force Color: 204; 51; 51 + History Length: 1 + Name: Wrench + Topic: + Depth: 5 + Durability Policy: Volatile + Filter size: 10 + History Policy: Keep Last + Reliability Policy: Reliable + Value: /wrench_topic/B5/total_torque + Torque Arrow Scale: 0.029999999329447746 + Torque Color: 255; 0; 255 + Value: true + - Accept NaN Values: false + Alpha: 1 + Arrow Width: 0.4000000059604645 + Class: rviz_default_plugins/Wrench + Enabled: true + Force Arrow Scale: 2 + Force Color: 204; 51; 51 + History Length: 1 + Name: Wrench + Topic: + Depth: 5 + Durability Policy: Volatile + Filter size: 10 + History Policy: Keep Last + Reliability Policy: Reliable + Value: /wrench_topic/B6/total_torque + Torque Arrow Scale: 0.029999999329447746 + Torque Color: 255; 0; 255 + Value: true + - Accept NaN Values: false + Alpha: 1 + Arrow Width: 0.4000000059604645 + Class: rviz_default_plugins/Wrench + Enabled: true + Force Arrow Scale: 2 + Force Color: 204; 51; 51 + History Length: 1 + Name: Wrench + Topic: + Depth: 5 + Durability Policy: Volatile + Filter size: 10 + History Policy: Keep Last + Reliability Policy: Reliable + Value: /wrench_topic/EE_SSRMS/total_torque + Torque Arrow Scale: 0.029999999329447746 + Torque Color: 255; 0; 255 + Value: true + Enabled: true + Global Options: + Background Color: 48; 48; 48 + Fixed Frame: world + Frame Rate: 30 + Name: root + Tools: + - Class: rviz_default_plugins/Interact + Hide Inactive Objects: true + - Class: rviz_default_plugins/MoveCamera + - Class: rviz_default_plugins/Select + Transformation: + Current: + Class: rviz_default_plugins/TF + Value: true + Views: + Current: + Class: rviz_default_plugins/Orbit + Distance: 13.27796459197998 + Enable Stereo Rendering: + Stereo Eye Separation: 0.05999999865889549 + Stereo Focal Distance: 1 + Swap Stereo Eyes: false + Value: false + Focal Point: + X: 2.8083510398864746 + Y: -0.03512916713953018 + Z: 1.6076182126998901 + Focal Shape Fixed Size: true + Focal Shape Size: 0.05000000074505806 + Invert Z Axis: false + Name: Current View + Near Clip Distance: 0.009999999776482582 + Pitch: 0.40500012040138245 + Target Frame: + Value: Orbit (rviz_default_plugins) + Yaw: 5.786983013153076 + Saved: ~ +Window Geometry: + Displays: + collapsed: false + Height: 1080 + Help: + collapsed: false + Hide Left Dock: false + Hide Right Dock: false + MotionPlanning: + collapsed: false + MotionPlanning - Trajectory Slider: + collapsed: false + QMainWindow State: 000000ff00000000fd0000000100000000000001e600000397fc0200000005fb00000044004d006f00740069006f006e0050006c0061006e006e0069006e00670020002d0020005400720061006a006500630074006f0072007900200053006c00690064006500720000000000ffffffff0000004600fffffffb000000100044006900730070006c0061007900730100000025000000e7000000ce00fffffffb0000001c004d006f00740069006f006e0050006c0061006e006e0069006e00670100000112000001e3000001a300fffffffb0000000800480065006c0070000000029a0000006e0000007000fffffffb0000000a0056006900650077007301000002fb000000c1000000ac00ffffff000005940000039700000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 + Views: + collapsed: false + Width: 1920 + X: 0 + Y: 27 diff --git a/ros_trick/ros_src/trick_canadarm_moveit_config/config/moveit_controllers.yaml b/ros_trick/ros_src/trick_canadarm_moveit_config/config/moveit_controllers.yaml new file mode 100644 index 00000000..e38b88b3 --- /dev/null +++ b/ros_trick/ros_src/trick_canadarm_moveit_config/config/moveit_controllers.yaml @@ -0,0 +1,18 @@ +moveit_controller_manager: moveit_simple_controller_manager/MoveItSimpleControllerManager + +moveit_simple_controller_manager: + controller_names: + - canadarm_controller + + canadarm_controller: + type: FollowJointTrajectory + action_ns: follow_joint_trajectory + default: true + joints: + - Base_Joint + - Shoulder_Roll + - Shoulder_Yaw + - Elbow_Pitch + - Wrist_Pitch + - Wrist_Yaw + - Wrist_Roll diff --git a/ros_trick/ros_src/trick_canadarm_moveit_config/config/pilz_cartesian_limits.yaml b/ros_trick/ros_src/trick_canadarm_moveit_config/config/pilz_cartesian_limits.yaml new file mode 100644 index 00000000..b2997caf --- /dev/null +++ b/ros_trick/ros_src/trick_canadarm_moveit_config/config/pilz_cartesian_limits.yaml @@ -0,0 +1,6 @@ +# Limits for the Pilz planner +cartesian_limits: + max_trans_vel: 1.0 + max_trans_acc: 2.25 + max_trans_dec: -5.0 + max_rot_vel: 1.57 diff --git a/ros_trick/ros_src/trick_canadarm_moveit_config/config/ros2_controllers.yaml b/ros_trick/ros_src/trick_canadarm_moveit_config/config/ros2_controllers.yaml new file mode 100644 index 00000000..244d22bd --- /dev/null +++ b/ros_trick/ros_src/trick_canadarm_moveit_config/config/ros2_controllers.yaml @@ -0,0 +1,77 @@ +# This config file is used by ros2_control +controller_manager: + ros__parameters: + update_rate: 100 # Hz + + canadarm_controller: + type: joint_trajectory_controller/JointTrajectoryController + + + joint_state_broadcaster: + type: joint_state_broadcaster/JointStateBroadcaster + +canadarm_controller: + ros__parameters: + open_loop_control: false + allow_nonzero_velocity_at_trajectory_end: false + constraints: + stopped_velocity_tolerance: 0.001 + goal_time: 0.0 + joints: + - Base_Joint + - Shoulder_Roll + - Shoulder_Yaw + - Elbow_Pitch + - Wrist_Pitch + - Wrist_Yaw + - Wrist_Roll + command_interfaces: + - effort + state_interfaces: + - position + - velocity + state_publish_rate: 50.0 + action_monitor_rate: 20.0 + gains: + Base_Joint: + p: 92000.0 + i: 0.0 + d: 2050.0 + ff_velocity_scale: 0.0 + i_clamp: 0.0 + Shoulder_Roll: + p: 92000.0 + i: 0.0 + d: 2050.0 + ff_velocity_scale: 0.0 + i_clamp: 0.0 + Shoulder_Yaw: + p: 92000.0 + i: 0.0 + d: 2050.0 + ff_velocity_scale: 0.0 + i_clamp: 0.0 + Elbow_Pitch: + p: 92000.0 + i: 0.0 + d: 2050.0 + ff_velocity_scale: 0.0 + i_clamp: 0.0 + Wrist_Pitch: + p: 50000.0 + i: 0.0 + d: 1100.0 + ff_velocity_scale: 0.0 + i_clamp: 0.0 + Wrist_Yaw: + p: 500.0 + i: 0.0 + d: 50.0 + ff_velocity_scale: 0.0 + i_clamp: 0.0 + Wrist_Roll: + p: 500.0 + i: 0.0 + d: 50.0 + ff_velocity_scale: 0.0 + i_clamp: 0.0 diff --git a/ros_trick/ros_src/trick_canadarm_moveit_config/launch/__pycache__/moveit_rviz.launch.cpython-310.pyc b/ros_trick/ros_src/trick_canadarm_moveit_config/launch/__pycache__/moveit_rviz.launch.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6f04eb38f42f31264325deb164b8361b4314205c GIT binary patch literal 499 zcmZvZy-ve05P;8dS_-5Bq=JwT8%vfB%m^VeF*F0&x>#2128;Yuwo?fN6Rf-gj64Hx zl9h>9VB*}gQYvxMozCa``OdC}!yQ1`l3%l!0DQYcS3Epip_(%^0tCsSAX7q|@8w=W zrxblE{8yOzqL)C}|G`WMNi&*M3wdLss+_6JT-PcWQe*rilcm($N>*TkvP>`3Bg=VR zrgy2UT?_Jnj~bzxV>A}$3s2BD@11>Cg$${7J2nTl+DtT>VjRGZ#=)iBxeE!!-KI>vozGq@-!QRni~ NJ)`NP2_PT={R4oygns}4 literal 0 HcmV?d00001 diff --git a/ros_trick/ros_src/trick_canadarm_moveit_config/launch/demo.launch.py b/ros_trick/ros_src/trick_canadarm_moveit_config/launch/demo.launch.py new file mode 100644 index 00000000..61fe9c9e --- /dev/null +++ b/ros_trick/ros_src/trick_canadarm_moveit_config/launch/demo.launch.py @@ -0,0 +1,67 @@ +from launch import LaunchDescription +from launch.actions import IncludeLaunchDescription +from launch.launch_description_sources import PythonLaunchDescriptionSource +from launch_ros.actions import Node, SetParameter +from moveit_configs_utils import MoveItConfigsBuilder + + +def generate_launch_description(): + moveit_config = MoveItConfigsBuilder( + "SSRMS_Canadarm2", package_name="trick_canadarm_moveit_config" + ).to_moveit_configs() + moveit_config.move_group_capabilities["capabilities"] = "" + ld = LaunchDescription() + virtual_joints_launch = ( + moveit_config.package_path / "launch/static_virtual_joint_tfs.launch.py" + ) + if virtual_joints_launch.exists(): + ld.add_action( + IncludeLaunchDescription( + PythonLaunchDescriptionSource(str(virtual_joints_launch)), + ) + ) + + # Given the published joint states, publish tf for the robot links + ld.add_action( + IncludeLaunchDescription( + PythonLaunchDescriptionSource( + str(moveit_config.package_path / "launch/rsp.launch.py") + ), + ) + ) + + ld.add_action( + IncludeLaunchDescription( + PythonLaunchDescriptionSource( + str(moveit_config.package_path / "launch/move_group.launch.py") + ), + ) + ) + + ld.add_action( + Node( + package="canadarm_wrench_publisher", + executable="canadarm_wrench_publisher_node", + ) + ) + + ld.add_action( + Node( + package="controller_manager", + executable="ros2_control_node", + parameters=[ + moveit_config.robot_description, + str(moveit_config.package_path / "config/ros2_controllers.yaml"), + ], + ) + ) + + ld.add_action( + IncludeLaunchDescription( + PythonLaunchDescriptionSource( + str(moveit_config.package_path / "launch/spawn_controllers.launch.py") + ), + ) + ) + + return ld diff --git a/ros_trick/ros_src/trick_canadarm_moveit_config/launch/move_group.launch.py b/ros_trick/ros_src/trick_canadarm_moveit_config/launch/move_group.launch.py new file mode 100644 index 00000000..31727c2f --- /dev/null +++ b/ros_trick/ros_src/trick_canadarm_moveit_config/launch/move_group.launch.py @@ -0,0 +1,73 @@ +from launch import LaunchDescription +from launch.actions import DeclareLaunchArgument +from launch.substitutions import LaunchConfiguration +from launch_ros.parameter_descriptions import ParameterValue +from moveit_configs_utils import MoveItConfigsBuilder +from moveit_configs_utils.launch_utils import ( + DeclareBooleanLaunchArg, + add_debuggable_node, +) + + +def generate_launch_description(): + moveit_config = MoveItConfigsBuilder( + "SSRMS_Canadarm2", package_name="trick_canadarm_moveit_config" + ).to_moveit_configs() + # print("prinint capab") + # print(moveit_config.move_group_capabilities) + moveit_config.move_group_capabilities["capabilities"] = "" + ld = LaunchDescription() + + ld.add_action(DeclareBooleanLaunchArg("debug", default_value=False)) + ld.add_action( + DeclareBooleanLaunchArg("allow_trajectory_execution", default_value=True) + ) + ld.add_action( + DeclareBooleanLaunchArg("publish_monitored_planning_scene", default_value=True) + ) + # load non-default MoveGroup capabilities (space separated) + ld.add_action(DeclareLaunchArgument("capabilities", default_value="")) + # inhibit these default MoveGroup capabilities (space separated) + ld.add_action(DeclareLaunchArgument("disable_capabilities", default_value="")) + + # do not copy dynamics information from /joint_states to internal robot monitoring + # default to false, because almost nothing in move_group relies on this information + ld.add_action(DeclareBooleanLaunchArg("monitor_dynamics", default_value=False)) + + should_publish = LaunchConfiguration("publish_monitored_planning_scene") + + move_group_configuration = { + "publish_robot_description_semantic": True, + "allow_trajectory_execution": LaunchConfiguration("allow_trajectory_execution"), + # Note: Wrapping the following values is necessary so that the parameter value can be the empty string + "capabilities": ParameterValue( + LaunchConfiguration("capabilities"), value_type=str + ), + "disable_capabilities": ParameterValue( + LaunchConfiguration("disable_capabilities"), value_type=str + ), + # Publish the planning scene of the physical robot so that rviz plugin can know actual robot + "publish_planning_scene": should_publish, + "publish_geometry_updates": should_publish, + "publish_state_updates": should_publish, + "publish_transforms_updates": should_publish, + "monitor_dynamics": False, + } + + move_group_params = [ + moveit_config.to_dict(), + move_group_configuration, + ] + + add_debuggable_node( + ld, + package="moveit_ros_move_group", + executable="move_group", + commands_file=str(moveit_config.package_path / "launch" / "gdb_settings.gdb"), + output="screen", + parameters=move_group_params, + extra_debug_args=["--debug"], + # Set the display variable, in case OpenGL code is used internally + additional_env={"DISPLAY": ""}, + ) + return ld diff --git a/ros_trick/ros_src/trick_canadarm_moveit_config/launch/moveit_rviz.launch.py b/ros_trick/ros_src/trick_canadarm_moveit_config/launch/moveit_rviz.launch.py new file mode 100644 index 00000000..91b265fe --- /dev/null +++ b/ros_trick/ros_src/trick_canadarm_moveit_config/launch/moveit_rviz.launch.py @@ -0,0 +1,14 @@ +from launch import LaunchDescription +from moveit_configs_utils import MoveItConfigsBuilder +from moveit_configs_utils.launches import generate_moveit_rviz_launch + + +def generate_launch_description(): + ld = LaunchDescription() + + moveit_config = MoveItConfigsBuilder( + "SSRMS_Canadarm2", package_name="trick_canadarm_moveit_config" + ).to_moveit_configs() + + ld.add_action(generate_moveit_rviz_launch(moveit_config)) + return ld diff --git a/ros_trick/ros_src/trick_canadarm_moveit_config/launch/rsp.launch.py b/ros_trick/ros_src/trick_canadarm_moveit_config/launch/rsp.launch.py new file mode 100644 index 00000000..540aedc4 --- /dev/null +++ b/ros_trick/ros_src/trick_canadarm_moveit_config/launch/rsp.launch.py @@ -0,0 +1,32 @@ +from launch import LaunchDescription +from launch.actions import DeclareLaunchArgument +from launch.substitutions import LaunchConfiguration +from launch_ros.actions import Node +from moveit_configs_utils import MoveItConfigsBuilder + + +def generate_launch_description(): + moveit_config = MoveItConfigsBuilder( + "SSRMS_Canadarm2", package_name="trick_canadarm_moveit_config" + ).to_moveit_configs() + moveit_config.move_group_capabilities["capabilities"] = "" + + ld = LaunchDescription() + ld.add_action(DeclareLaunchArgument("publish_frequency", default_value="15.0")) + + # Given the published joint states, publish tf for the robot links and the robot description + rsp_node = Node( + package="robot_state_publisher", + executable="robot_state_publisher", + respawn=True, + output="screen", + parameters=[ + moveit_config.robot_description, + { + "publish_frequency": LaunchConfiguration("publish_frequency"), + }, + ], + ) + ld.add_action(rsp_node) + + return ld diff --git a/ros_trick/ros_src/trick_canadarm_moveit_config/launch/setup_assistant.launch.py b/ros_trick/ros_src/trick_canadarm_moveit_config/launch/setup_assistant.launch.py new file mode 100644 index 00000000..2b308057 --- /dev/null +++ b/ros_trick/ros_src/trick_canadarm_moveit_config/launch/setup_assistant.launch.py @@ -0,0 +1,9 @@ +from moveit_configs_utils import MoveItConfigsBuilder +from moveit_configs_utils.launches import generate_setup_assistant_launch + + +def generate_launch_description(): + moveit_config = MoveItConfigsBuilder( + "SSRMS_Canadarm2", package_name="trick_canadarm_moveit_config" + ).to_moveit_configs() + return generate_setup_assistant_launch(moveit_config) diff --git a/ros_trick/ros_src/trick_canadarm_moveit_config/launch/spawn_controllers.launch.py b/ros_trick/ros_src/trick_canadarm_moveit_config/launch/spawn_controllers.launch.py new file mode 100644 index 00000000..449daaba --- /dev/null +++ b/ros_trick/ros_src/trick_canadarm_moveit_config/launch/spawn_controllers.launch.py @@ -0,0 +1,9 @@ +from moveit_configs_utils import MoveItConfigsBuilder +from moveit_configs_utils.launches import generate_spawn_controllers_launch + + +def generate_launch_description(): + moveit_config = MoveItConfigsBuilder( + "SSRMS_Canadarm2", package_name="trick_canadarm_moveit_config" + ).to_moveit_configs() + return generate_spawn_controllers_launch(moveit_config) diff --git a/ros_trick/ros_src/trick_canadarm_moveit_config/launch/static_virtual_joint_tfs.launch.py b/ros_trick/ros_src/trick_canadarm_moveit_config/launch/static_virtual_joint_tfs.launch.py new file mode 100644 index 00000000..0ee48dc6 --- /dev/null +++ b/ros_trick/ros_src/trick_canadarm_moveit_config/launch/static_virtual_joint_tfs.launch.py @@ -0,0 +1,9 @@ +from moveit_configs_utils import MoveItConfigsBuilder +from moveit_configs_utils.launches import generate_static_virtual_joint_tfs_launch + + +def generate_launch_description(): + moveit_config = MoveItConfigsBuilder( + "SSRMS_Canadarm2", package_name="trick_canadarm_moveit_config" + ).to_moveit_configs() + return generate_static_virtual_joint_tfs_launch(moveit_config) diff --git a/ros_trick/ros_src/trick_canadarm_moveit_config/launch/warehouse_db.launch.py b/ros_trick/ros_src/trick_canadarm_moveit_config/launch/warehouse_db.launch.py new file mode 100644 index 00000000..7673e3c4 --- /dev/null +++ b/ros_trick/ros_src/trick_canadarm_moveit_config/launch/warehouse_db.launch.py @@ -0,0 +1,9 @@ +from moveit_configs_utils import MoveItConfigsBuilder +from moveit_configs_utils.launches import generate_warehouse_db_launch + + +def generate_launch_description(): + moveit_config = MoveItConfigsBuilder( + "SSRMS_Canadarm2", package_name="trick_canadarm_moveit_config" + ).to_moveit_configs() + return generate_warehouse_db_launch(moveit_config) diff --git a/ros_trick/ros_src/trick_canadarm_moveit_config/package.xml b/ros_trick/ros_src/trick_canadarm_moveit_config/package.xml new file mode 100644 index 00000000..224b2372 --- /dev/null +++ b/ros_trick/ros_src/trick_canadarm_moveit_config/package.xml @@ -0,0 +1,46 @@ + + + + trick_canadarm_moveit_config + 0.3.0 + + An automatically generated package with all the configuration and launch files for using the SSRMS_Canadarm2 with the MoveIt Motion Planning Framework + Derived from spaceros/demos/canadarm_moveit_config demo + + Dharini Dutia + + BSD + + Blazej Fiderek(xfiderek) + Dharini Dutia + + ament_cmake + + moveit_ros_move_group + moveit_kinematics + moveit_planners + moveit_simple_controller_manager + joint_state_publisher + joint_state_publisher_gui + tf2_ros + xacro + controller_manager + moveit_configs_utils + moveit_ros_move_group + moveit_ros_visualization + moveit_ros_warehouse + moveit_setup_assistant + robot_state_publisher + rviz2 + rviz_common + rviz_default_plugins + simulation + tf2_ros + warehouse_ros_mongo + xacro + + + + ament_cmake + +