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 00000000..6f04eb38
Binary files /dev/null and b/ros_trick/ros_src/trick_canadarm_moveit_config/launch/__pycache__/moveit_rviz.launch.cpython-310.pyc differ
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
+
+