diff --git a/.fish/activate.fish b/.fish/activate.fish index a809eb7..68c44c0 100755 --- a/.fish/activate.fish +++ b/.fish/activate.fish @@ -26,6 +26,9 @@ if type -q bass if test -f ./install/setup.bash bass source ./install/setup.bash end + if test -f ~/Documents/ws_moveit/install/setup.bash + bass source ~/Documents/ws_moveit/install/setup.bash + end else echo (set_color red)"Error: bass is required for ROS2 environment. Install with: fisher install edc/bass"(set_color normal) return 1 @@ -71,4 +74,4 @@ function __env_custom_deactivate functions -e cb cbs cbt ct ctr 2>/dev/null echo (set_color blue)"ROS2 environment cleanup completed"(set_color normal) -end \ No newline at end of file +end diff --git a/slides/lesson_2/lesson_2.pdf b/slides/lesson_2/lesson_2.pdf new file mode 100644 index 0000000..06b3e67 Binary files /dev/null and b/slides/lesson_2/lesson_2.pdf differ diff --git a/slides/lesson_2/robot_moveit.rviz b/slides/lesson_2/robot_moveit.rviz new file mode 100644 index 0000000..fa73922 --- /dev/null +++ b/slides/lesson_2/robot_moveit.rviz @@ -0,0 +1,409 @@ +Panels: + - Class: rviz_common/Displays + Help Height: 0 + Name: Displays + Property Tree Widget: + Expanded: + - /Global Options1 + - /Status1 + - /RobotModel1/Description Topic1 + - /MotionPlanning1/Scene Robot1/Links1 + - /MotionPlanning1/Scene Robot1/Links1/link_51 + Splitter Ratio: 0.5 + Tree Height: 233 + - Class: rviz_common/Selection + Name: Selection + - Class: rviz_common/Tool Properties + Expanded: + - /2D Goal Pose1 + - /Publish Point1 + Name: Tool Properties + Splitter Ratio: 0.5886790156364441 + - Class: rviz_common/Views + Expanded: + - /Current View1 + Name: Views + Splitter Ratio: 0.5 + - Class: rviz_common/Time + Experimental: false + Name: Time + SyncMode: 0 + SyncSource: "" +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 + - Alpha: 1 + Class: rviz_default_plugins/RobotModel + Collision Enabled: false + Description File: "" + Description Source: Topic + Description Topic: + Depth: 5 + Durability Policy: Volatile + History Policy: Keep Last + Reliability Policy: Reliable + Value: /robot_description + Enabled: true + Links: + All Links Enabled: true + Expand Joint Details: false + Expand Link Details: false + Expand Tree: false + Link Tree Style: Links in Alphabetic Order + base_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + gripper_left: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + gripper_right: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + link_1: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + link_2: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + link_3: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + link_4: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + link_5: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + Mass Properties: + Inertia: false + Mass: false + Name: RobotModel + TF Prefix: "" + Update Interval: 0 + Value: true + Visual Enabled: true + - Class: rviz_default_plugins/TF + Enabled: true + Filter (blacklist): "" + Filter (whitelist): "" + Frame Timeout: 15 + Frames: + All Enabled: true + base_link: + Value: true + gripper_left: + Value: true + gripper_right: + Value: true + link_1: + Value: true + link_2: + Value: true + link_3: + Value: true + link_4: + Value: true + link_5: + Value: true + Marker Scale: 1 + Name: TF + Show Arrows: true + Show Axes: true + Show Names: false + Tree: + base_link: + link_1: + link_2: + link_3: + link_4: + link_5: + gripper_left: + {} + gripper_right: + {} + Update Interval: 0 + 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 + Expand Joint Details: false + Expand Link Details: false + Expand Tree: false + Link Tree Style: Links in Alphabetic Order + base_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + gripper_left: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + gripper_right: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + link_1: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + link_2: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + link_3: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + link_4: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + link_5: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + Loop Animation: false + Robot Alpha: 0.5 + Robot Color: 150; 50; 150 + Show Robot Collision: false + Show Robot Visual: true + Show Trail: false + State Display Time: 3x + 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: 1 + Goal State Color: 250; 128; 0 + Interactive Marker Size: 0 + Joint Violation Color: 255; 0; 255 + Planning Group: gripper + Query Goal State: true + Query Start State: false + Show Workspace: false + Start State Alpha: 1 + Start State Color: 0; 255; 0 + Planning Scene Topic: /monitored_planning_scene + Robot Description: robot_description + Scene Geometry: + Scene Alpha: 0.8999999761581421 + 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 + Expand Joint Details: false + Expand Link Details: false + Expand Tree: false + Link Tree Style: Links in Alphabetic Order + base_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + gripper_left: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + gripper_right: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + link_1: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + link_2: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + link_3: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + link_4: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + link_5: + Alpha: 1 + Show Axes: false + Show Trail: true + Value: true + Robot Alpha: 1 + Show Robot Collision: false + Show Robot Visual: true + Value: true + Velocity_Scaling_Factor: 0.1 + Enabled: true + Global Options: + Background Color: 48; 48; 48 + Fixed Frame: base_link + 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 + - Class: rviz_default_plugins/FocusCamera + - Class: rviz_default_plugins/Measure + Line color: 128; 128; 0 + - Class: rviz_default_plugins/SetInitialPose + Covariance x: 0.25 + Covariance y: 0.25 + Covariance yaw: 0.06853891909122467 + Topic: + Depth: 5 + Durability Policy: Volatile + History Policy: Keep Last + Reliability Policy: Reliable + Value: /initialpose + - Class: rviz_default_plugins/SetGoal + Topic: + Depth: 5 + Durability Policy: Volatile + History Policy: Keep Last + Reliability Policy: Reliable + Value: /goal_pose + - Class: rviz_default_plugins/PublishPoint + Single click: true + Topic: + Depth: 5 + Durability Policy: Volatile + History Policy: Keep Last + Reliability Policy: Reliable + Value: /clicked_point + Transformation: + Current: + Class: rviz_default_plugins/TF + Value: true + Views: + Current: + Class: rviz_default_plugins/Orbit + Distance: 3.4432098865509033 + Enable Stereo Rendering: + Stereo Eye Separation: 0.05999999865889549 + Stereo Focal Distance: 1 + Swap Stereo Eyes: false + Value: false + Focal Point: + X: -0.299166202545166 + Y: -0.3069069981575012 + Z: 0.8311280012130737 + Focal Shape Fixed Size: true + Focal Shape Size: 0.05000000074505806 + Invert Z Axis: false + Name: Current View + Near Clip Distance: 0.009999999776482582 + Pitch: 0.3503985106945038 + Target Frame: + Value: Orbit (rviz) + Yaw: 0.5403982400894165 + Saved: ~ +Window Geometry: + "": + collapsed: false + " - Trajectory Slider": + collapsed: false + Displays: + collapsed: false + Height: 854 + Hide Left Dock: false + Hide Right Dock: false + QMainWindow State: 000000ff00000000fd0000000400000000000001ee000002b4fc020000000afb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003d00000126000000c900fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261fb000000280020002d0020005400720061006a006500630074006f0072007900200053006c00690064006500720000000000ffffffff0000004100fffffffbffffffff0100000169000001880000017d00ffffff000000010000010f000002a3fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a005600690065007700730000000048000002a3000000a400fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000004bd00000042fc0100000002fb0000000800540069006d00650100000000000004bd0000026f00fffffffb0000000800540069006d00650100000000000004500000000000000000000002c9000002b400000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 + Selection: + collapsed: false + Time: + collapsed: false + Tool Properties: + collapsed: false + Views: + collapsed: false + Width: 1213 + X: 400 + Y: 84 diff --git a/src/robot_bringup/CMakeLists.txt b/src/robot_bringup/CMakeLists.txt new file mode 100644 index 0000000..7922bc0 --- /dev/null +++ b/src/robot_bringup/CMakeLists.txt @@ -0,0 +1,12 @@ +cmake_minimum_required(VERSION 3.8) +project(robot_bringup) + +find_package(ament_cmake REQUIRED) + +# Install directories +install( + DIRECTORY launch config + DESTINATION share/${PROJECT_NAME} +) + +ament_package() \ No newline at end of file diff --git a/src/robot_bringup/config/skyentific_robot_controllers.yaml b/src/robot_bringup/config/skyentific_robot_controllers.yaml new file mode 100644 index 0000000..076e79b --- /dev/null +++ b/src/robot_bringup/config/skyentific_robot_controllers.yaml @@ -0,0 +1,32 @@ +controller_manager: # config file used by ros2_control + ros__parameters: + update_rate: 1 # Hz (Limit this a bit) + arm_controller: + type: joint_trajectory_controller/JointTrajectoryController + gripper_controller: + type: joint_trajectory_controller/JointTrajectoryController + joint_state_broadcaster: + type: joint_state_broadcaster/JointStateBroadcaster + +arm_controller: + ros__parameters: + joints: + - joint_1 + - joint_2 + - joint_3 + - joint_4 + - joint_5 + command_interfaces: + - position + state_interfaces: + - position + allow_nonzero_velocity_at_trajectory_end: true +gripper_controller: + ros__parameters: + joints: + - joint_6 + command_interfaces: + - position + state_interfaces: + - position + allow_nonzero_velocity_at_trajectory_end: true diff --git a/src/robot_bringup/launch/robot.launch.xml b/src/robot_bringup/launch/robot.launch.xml new file mode 100644 index 0000000..50129d3 --- /dev/null +++ b/src/robot_bringup/launch/robot.launch.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + diff --git a/src/robot_bringup/package.xml b/src/robot_bringup/package.xml new file mode 100644 index 0000000..bcd6753 --- /dev/null +++ b/src/robot_bringup/package.xml @@ -0,0 +1,18 @@ + + + + robot_bringup + 0.0.0 + TODO: Package description + wessel + TODO: License declaration + + ament_cmake + + ament_lint_auto + ament_lint_common + + + ament_cmake + + diff --git a/src/robot_commander/CMakeLists.txt b/src/robot_commander/CMakeLists.txt new file mode 100644 index 0000000..5902509 --- /dev/null +++ b/src/robot_commander/CMakeLists.txt @@ -0,0 +1,20 @@ +cmake_minimum_required(VERSION 3.8) +project(robot_commander) + +if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") + add_compile_options(-Wall -Wextra -Wpedantic) +endif() + +find_package(ament_cmake REQUIRED) # find dependencies +find_package(rclcpp REQUIRED) +find_package(moveit_ros_planning_interface REQUIRED) + +add_executable(test_moveit src/test_moveit.cpp) +ament_target_dependencies(test_moveit rclcpp moveit_ros_planning_interface) + +install(TARGETS + test_moveit + DESTINATION lib/${PROJECT_NAME}/ +) + +ament_package() diff --git a/src/robot_commander/package.xml b/src/robot_commander/package.xml new file mode 100644 index 0000000..3d7e3c1 --- /dev/null +++ b/src/robot_commander/package.xml @@ -0,0 +1,21 @@ + + + + robot_commander + 0.0.0 + TODO: Package description + wessel + TODO: License declaration + + ament_cmake + + rclpp + moveit_ros_planning_interface + + ament_lint_auto + ament_lint_common + + + ament_cmake + + diff --git a/src/robot_commander/src/test_moveit.cpp b/src/robot_commander/src/test_moveit.cpp new file mode 100644 index 0000000..edee493 --- /dev/null +++ b/src/robot_commander/src/test_moveit.cpp @@ -0,0 +1,36 @@ +#include +#include + +int main(int argc, char **argv) { + rclcpp::init(argc, argv); + auto node = std::make_shared("test_moveit"); + + // we need a new thread at this point to spin node + // - thread with instructions to move the robot + // - thread to spin the node + // create single threaded executor + rclcpp::executors::SingleThreadedExecutor executor; + executor.add_node(node); + + auto spinner = std::thread([&executor]() { executor.spin(); }); + + auto arm = moveit::planning_interface::MoveGroupInterface(node, "arm"); + + arm.setMaxVelocityScalingFactor(1.0); + arm.setMaxAccelerationScalingFactor(1.0); + + auto gripper = moveit::planning_interface::MoveGroupInterface(node, "gripper"); + + arm.setStartStateToCurrentState(); + arm.setNamedTarget("pose_1"); + moveit::planning_interface::MoveGroupInterface::Plan plan1; + bool success1 = (arm.plan(plan1) == moveit::core::MoveItErrorCode::SUCCESS); + if (success1) { + arm.execute(plan1); + } + + rclcpp::shutdown(); + spinner.join(); + + return 0; +} diff --git a/src/robot_description/urdf/skyentific_robot_ros2_control.xacro b/src/robot_description/urdf/skyentific_robot_ros2_control.xacro index 2b0ae82..a678fc8 100644 --- a/src/robot_description/urdf/skyentific_robot_ros2_control.xacro +++ b/src/robot_description/urdf/skyentific_robot_ros2_control.xacro @@ -10,6 +10,30 @@ 0.0 + + + + 0.0 + + + + + + 0.0 + + + + + + 0.0 + + + + + + 0.0 + + diff --git a/src/robot_moveit_config/.setup_assistant b/src/robot_moveit_config/.setup_assistant new file mode 100644 index 0000000..34c3508 --- /dev/null +++ b/src/robot_moveit_config/.setup_assistant @@ -0,0 +1,23 @@ +moveit_setup_assistant_config: + urdf: + package: robot_description + relative_path: urdf/skyentific_robot.urdf.xacro + srdf: + relative_path: config/skyentific_robot.srdf + package_settings: + author_name: Wessel T + author_email: contact@wessel.gg + generated_timestamp: 1759396334 + control_xacro: + command: + - position + state: + - position + modified_urdf: + xacros: + - control_xacro + control_xacro: + command: + - position + state: + - position \ No newline at end of file diff --git a/src/robot_moveit_config/CMakeLists.txt b/src/robot_moveit_config/CMakeLists.txt new file mode 100644 index 0000000..950a2c9 --- /dev/null +++ b/src/robot_moveit_config/CMakeLists.txt @@ -0,0 +1,16 @@ +cmake_minimum_required(VERSION 3.22) +project(robot_moveit_config) + +find_package(ament_cmake REQUIRED) + +ament_package() + +if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/launch") + install( + DIRECTORY launch + DESTINATION share/${PROJECT_NAME} + PATTERN "setup_assistant.launch" EXCLUDE) +endif() + +install(DIRECTORY config DESTINATION share/${PROJECT_NAME}) +install(FILES .setup_assistant DESTINATION share/${PROJECT_NAME}) diff --git a/src/robot_moveit_config/config/initial_positions.yaml b/src/robot_moveit_config/config/initial_positions.yaml new file mode 100644 index 0000000..b12f0fa --- /dev/null +++ b/src/robot_moveit_config/config/initial_positions.yaml @@ -0,0 +1,9 @@ +# Default initial positions for skyentific_robot's ros2_control fake system + +initial_positions: + joint_1: 0 + joint_2: 0 + joint_3: 0 + joint_4: 0 + joint_5: 0 + joint_6: 0 \ No newline at end of file diff --git a/src/robot_moveit_config/config/joint_limits.yaml b/src/robot_moveit_config/config/joint_limits.yaml new file mode 100644 index 0000000..5b665c9 --- /dev/null +++ b/src/robot_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: + joint_1: + has_velocity_limits: true + max_velocity: 10.0 + has_acceleration_limits: true + max_acceleration: 5.0 + joint_2: + has_velocity_limits: true + max_velocity: 10.0 + has_acceleration_limits: true + max_acceleration: 5.0 + joint_3: + has_velocity_limits: true + max_velocity: 100.0 + has_acceleration_limits: true + max_acceleration: 50.0 + joint_4: + has_velocity_limits: true + max_velocity: 100.0 + has_acceleration_limits: true + max_acceleration: 50.0 + joint_5: + has_velocity_limits: true + max_velocity: 100.0 + has_acceleration_limits: true + max_acceleration: 50.0 + joint_6: + has_velocity_limits: true + max_velocity: 100.0 + has_acceleration_limits: true + max_acceleration: 50.0 + joint_7: + has_velocity_limits: true + max_velocity: 100.0 + has_acceleration_limits: true + max_acceleration: 50.0 diff --git a/src/robot_moveit_config/config/kinematics.yaml b/src/robot_moveit_config/config/kinematics.yaml new file mode 100644 index 0000000..2f6bb96 --- /dev/null +++ b/src/robot_moveit_config/config/kinematics.yaml @@ -0,0 +1,4 @@ +arm: + kinematics_solver: kdl_kinematics_plugin/KDLKinematicsPlugin + kinematics_solver_search_resolution: 0.0050000000000000001 + kinematics_solver_timeout: 0.0050000000000000001 \ No newline at end of file diff --git a/src/robot_moveit_config/config/moveit.rviz b/src/robot_moveit_config/config/moveit.rviz new file mode 100644 index 0000000..99bb740 --- /dev/null +++ b/src/robot_moveit_config/config/moveit.rviz @@ -0,0 +1,51 @@ +Panels: + - Class: rviz_common/Displays + Name: Displays + Property Tree Widget: + Expanded: + - /MotionPlanning1 + - Class: rviz_common/Help + Name: Help + - Class: rviz_common/Views + Name: Views +Visualization Manager: + Displays: + - Class: rviz_default_plugins/Grid + Name: Grid + Value: true + - Class: moveit_rviz_plugin/MotionPlanning + Name: MotionPlanning + Planned Path: + Loop Animation: true + State Display Time: 0.05 s + Trajectory Topic: display_planned_path + Planning Scene Topic: monitored_planning_scene + Robot Description: robot_description + Scene Geometry: + Scene Alpha: 1 + Scene Robot: + Robot Alpha: 0.5 + Value: true + Global Options: + Fixed Frame: base_link + Tools: + - Class: rviz_default_plugins/Interact + - Class: rviz_default_plugins/MoveCamera + - Class: rviz_default_plugins/Select + Value: true + Views: + Current: + Class: rviz_default_plugins/Orbit + Distance: 2.0 + Focal Point: + X: -0.1 + Y: 0.25 + Z: 0.30 + Name: Current View + Pitch: 0.5 + Target Frame: base_link + Yaw: -0.623 +Window Geometry: + Height: 975 + QMainWindow State: 000000ff00000000fd0000000100000000000002b400000375fc0200000005fb00000044004d006f00740069006f006e0050006c0061006e006e0069006e00670020002d0020005400720061006a006500630074006f0072007900200053006c00690064006500720000000000ffffffff0000004100fffffffb000000100044006900730070006c006100790073010000003d00000123000000c900fffffffb0000001c004d006f00740069006f006e0050006c0061006e006e0069006e00670100000166000001910000018800fffffffb0000000800480065006c0070000000029a0000006e0000006e00fffffffb0000000a0056006900650077007301000002fd000000b5000000a400ffffff000001f60000037500000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 + Width: 1200 diff --git a/src/robot_moveit_config/config/moveit_controllers.yaml b/src/robot_moveit_config/config/moveit_controllers.yaml new file mode 100644 index 0000000..95e8243 --- /dev/null +++ b/src/robot_moveit_config/config/moveit_controllers.yaml @@ -0,0 +1,25 @@ +# MoveIt uses this configuration for controller management + +moveit_controller_manager: moveit_simple_controller_manager/MoveItSimpleControllerManager + +moveit_simple_controller_manager: + controller_names: + - arm_controller + - gripper_controller + + arm_controller: + type: FollowJointTrajectory + joints: + - joint_1 + - joint_2 + - joint_3 + - joint_4 + - joint_5 + action_ns: follow_joint_trajectory + default: true + gripper_controller: + type: FollowJointTrajectory + joints: + - joint_6 + action_ns: follow_joint_trajectory + default: true diff --git a/src/robot_moveit_config/config/pilz_cartesian_limits.yaml b/src/robot_moveit_config/config/pilz_cartesian_limits.yaml new file mode 100644 index 0000000..b2997ca --- /dev/null +++ b/src/robot_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/src/robot_moveit_config/config/ros2_controllers.yaml b/src/robot_moveit_config/config/ros2_controllers.yaml new file mode 100644 index 0000000..2332997 --- /dev/null +++ b/src/robot_moveit_config/config/ros2_controllers.yaml @@ -0,0 +1,38 @@ +# This config file is used by ros2_control +controller_manager: + ros__parameters: + update_rate: 100 # Hz + + arm_controller: + type: joint_trajectory_controller/JointTrajectoryController + + + gripper_controller: + type: joint_trajectory_controller/JointTrajectoryController + + + joint_state_broadcaster: + type: joint_state_broadcaster/JointStateBroadcaster + +arm_controller: + ros__parameters: + joints: + - joint_1 + - joint_2 + - joint_3 + - joint_4 + - joint_5 + command_interfaces: + - position + state_interfaces: + - position + allow_nonzero_velocity_at_trajectory_end: true +gripper_controller: + ros__parameters: + joints: + - joint_6 + command_interfaces: + - position + state_interfaces: + - position + allow_nonzero_velocity_at_trajectory_end: true \ No newline at end of file diff --git a/src/robot_moveit_config/config/sensors_3d.yaml b/src/robot_moveit_config/config/sensors_3d.yaml new file mode 100644 index 0000000..5d90e51 --- /dev/null +++ b/src/robot_moveit_config/config/sensors_3d.yaml @@ -0,0 +1,23 @@ +sensors: + - kinect_pointcloud + - kinect_depthimage +kinect_pointcloud: + filtered_cloud_topic: filtered_cloud + max_range: 5.0 + max_update_rate: 1.0 + padding_offset: 0.1 + padding_scale: 1.0 + point_cloud_topic: /head_mount_kinect/depth_registered/points + point_subsample: 1 + sensor_plugin: occupancy_map_monitor/PointCloudOctomapUpdater +kinect_depthimage: + far_clipping_plane_distance: 5.0 + filtered_cloud_topic: filtered_cloud + image_topic: /head_mount_kinect/depth_registered/image_raw + max_update_rate: 1.0 + near_clipping_plane_distance: 0.3 + padding_offset: 0.03 + padding_scale: 4.0 + queue_size: 5 + sensor_plugin: occupancy_map_monitor/DepthImageOctomapUpdater + shadow_threshold: 0.2 \ No newline at end of file diff --git a/src/robot_moveit_config/config/skyentific_robot.ros2_control.xacro b/src/robot_moveit_config/config/skyentific_robot.ros2_control.xacro new file mode 100644 index 0000000..17b3147 --- /dev/null +++ b/src/robot_moveit_config/config/skyentific_robot.ros2_control.xacro @@ -0,0 +1,50 @@ + + + + + + + + + mock_components/GenericSystem + + + + + ${initial_positions['joint_1']} + + + + + + ${initial_positions['joint_2']} + + + + + + ${initial_positions['joint_3']} + + + + + + ${initial_positions['joint_4']} + + + + + + ${initial_positions['joint_5']} + + + + + + ${initial_positions['joint_6']} + + + + + + diff --git a/src/robot_moveit_config/config/skyentific_robot.srdf b/src/robot_moveit_config/config/skyentific_robot.srdf new file mode 100644 index 0000000..08c0573 --- /dev/null +++ b/src/robot_moveit_config/config/skyentific_robot.srdf @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/robot_moveit_config/config/skyentific_robot.urdf.xacro b/src/robot_moveit_config/config/skyentific_robot.urdf.xacro new file mode 100644 index 0000000..e20211c --- /dev/null +++ b/src/robot_moveit_config/config/skyentific_robot.urdf.xacro @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/robot_moveit_config/launch/demo.launch.py b/src/robot_moveit_config/launch/demo.launch.py new file mode 100644 index 0000000..9d7f084 --- /dev/null +++ b/src/robot_moveit_config/launch/demo.launch.py @@ -0,0 +1,7 @@ +from moveit_configs_utils import MoveItConfigsBuilder +from moveit_configs_utils.launches import generate_demo_launch + + +def generate_launch_description(): + moveit_config = MoveItConfigsBuilder("skyentific_robot", package_name="robot_moveit_config").to_moveit_configs() + return generate_demo_launch(moveit_config) diff --git a/src/robot_moveit_config/launch/move_group.launch.py b/src/robot_moveit_config/launch/move_group.launch.py new file mode 100644 index 0000000..32cb203 --- /dev/null +++ b/src/robot_moveit_config/launch/move_group.launch.py @@ -0,0 +1,7 @@ +from moveit_configs_utils import MoveItConfigsBuilder +from moveit_configs_utils.launches import generate_move_group_launch + + +def generate_launch_description(): + moveit_config = MoveItConfigsBuilder("skyentific_robot", package_name="robot_moveit_config").to_moveit_configs() + return generate_move_group_launch(moveit_config) diff --git a/src/robot_moveit_config/launch/moveit_rviz.launch.py b/src/robot_moveit_config/launch/moveit_rviz.launch.py new file mode 100644 index 0000000..aa23996 --- /dev/null +++ b/src/robot_moveit_config/launch/moveit_rviz.launch.py @@ -0,0 +1,7 @@ +from moveit_configs_utils import MoveItConfigsBuilder +from moveit_configs_utils.launches import generate_moveit_rviz_launch + + +def generate_launch_description(): + moveit_config = MoveItConfigsBuilder("skyentific_robot", package_name="robot_moveit_config").to_moveit_configs() + return generate_moveit_rviz_launch(moveit_config) diff --git a/src/robot_moveit_config/launch/rsp.launch.py b/src/robot_moveit_config/launch/rsp.launch.py new file mode 100644 index 0000000..c23fd32 --- /dev/null +++ b/src/robot_moveit_config/launch/rsp.launch.py @@ -0,0 +1,7 @@ +from moveit_configs_utils import MoveItConfigsBuilder +from moveit_configs_utils.launches import generate_rsp_launch + + +def generate_launch_description(): + moveit_config = MoveItConfigsBuilder("skyentific_robot", package_name="robot_moveit_config").to_moveit_configs() + return generate_rsp_launch(moveit_config) diff --git a/src/robot_moveit_config/launch/setup_assistant.launch.py b/src/robot_moveit_config/launch/setup_assistant.launch.py new file mode 100644 index 0000000..8386acc --- /dev/null +++ b/src/robot_moveit_config/launch/setup_assistant.launch.py @@ -0,0 +1,7 @@ +from moveit_configs_utils import MoveItConfigsBuilder +from moveit_configs_utils.launches import generate_setup_assistant_launch + + +def generate_launch_description(): + moveit_config = MoveItConfigsBuilder("skyentific_robot", package_name="robot_moveit_config").to_moveit_configs() + return generate_setup_assistant_launch(moveit_config) diff --git a/src/robot_moveit_config/launch/spawn_controllers.launch.py b/src/robot_moveit_config/launch/spawn_controllers.launch.py new file mode 100644 index 0000000..67aef05 --- /dev/null +++ b/src/robot_moveit_config/launch/spawn_controllers.launch.py @@ -0,0 +1,7 @@ +from moveit_configs_utils import MoveItConfigsBuilder +from moveit_configs_utils.launches import generate_spawn_controllers_launch + + +def generate_launch_description(): + moveit_config = MoveItConfigsBuilder("skyentific_robot", package_name="robot_moveit_config").to_moveit_configs() + return generate_spawn_controllers_launch(moveit_config) diff --git a/src/robot_moveit_config/launch/static_virtual_joint_tfs.launch.py b/src/robot_moveit_config/launch/static_virtual_joint_tfs.launch.py new file mode 100644 index 0000000..900946d --- /dev/null +++ b/src/robot_moveit_config/launch/static_virtual_joint_tfs.launch.py @@ -0,0 +1,7 @@ +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("skyentific_robot", package_name="robot_moveit_config").to_moveit_configs() + return generate_static_virtual_joint_tfs_launch(moveit_config) diff --git a/src/robot_moveit_config/launch/warehouse_db.launch.py b/src/robot_moveit_config/launch/warehouse_db.launch.py new file mode 100644 index 0000000..f84e61f --- /dev/null +++ b/src/robot_moveit_config/launch/warehouse_db.launch.py @@ -0,0 +1,7 @@ +from moveit_configs_utils import MoveItConfigsBuilder +from moveit_configs_utils.launches import generate_warehouse_db_launch + + +def generate_launch_description(): + moveit_config = MoveItConfigsBuilder("skyentific_robot", package_name="robot_moveit_config").to_moveit_configs() + return generate_warehouse_db_launch(moveit_config) diff --git a/src/robot_moveit_config/package.xml b/src/robot_moveit_config/package.xml new file mode 100644 index 0000000..8c14a83 --- /dev/null +++ b/src/robot_moveit_config/package.xml @@ -0,0 +1,52 @@ + + + + robot_moveit_config + 0.3.0 + + An automatically generated package with all the configuration and launch files for using the skyentific_robot with the MoveIt Motion Planning Framework + + Wessel T + + BSD-3-Clause + + http://moveit.ros.org/ + https://github.com/moveit/moveit2/issues + https://github.com/moveit/moveit2 + + Wessel T + + 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_description + robot_state_publisher + rviz2 + rviz_common + rviz_default_plugins + tf2_ros + warehouse_ros_mongo + xacro + + + + ament_cmake + +