diff --git a/mycobot_description/urdf/mycobot_pro_630/mycobot_pro_630_moveit.urdf b/mycobot_description/urdf/mycobot_pro_630/mycobot_pro_630_moveit.urdf new file mode 100755 index 0000000..3b109d6 --- /dev/null +++ b/mycobot_description/urdf/mycobot_pro_630/mycobot_pro_630_moveit.urdf @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mycobot_pro/mycobot_630_moveit/.setup_assistant b/mycobot_pro/mycobot_630_moveit/.setup_assistant index baebb43..660b509 100644 --- a/mycobot_pro/mycobot_630_moveit/.setup_assistant +++ b/mycobot_pro/mycobot_630_moveit/.setup_assistant @@ -1,11 +1,11 @@ moveit_setup_assistant_config: URDF: package: mycobot_description - relative_path: urdf/mycobot_pro_630/mycobot_pro_630.urdf + relative_path: urdf/mycobot_pro_630/mycobot_pro_630_moveit.urdf xacro_args: "--inorder " SRDF: relative_path: config/firefighter.srdf CONFIG: author_name: wangweijian author_email: weijian.wang@elephantrobotics.com - generated_timestamp: 1652406964 \ No newline at end of file + generated_timestamp: 1736239899 \ No newline at end of file diff --git a/mycobot_pro/mycobot_630_moveit/CMakeLists.txt b/mycobot_pro/mycobot_630_moveit/CMakeLists.txt index c6b79de..0f9c3c0 100644 --- a/mycobot_pro/mycobot_630_moveit/CMakeLists.txt +++ b/mycobot_pro/mycobot_630_moveit/CMakeLists.txt @@ -1,21 +1,10 @@ -cmake_minimum_required(VERSION 2.8.3) +cmake_minimum_required(VERSION 3.1.3) project(mycobot_630_moveit) -find_package(catkin REQUIRED - rospy - std_msgs - moveit_msgs -) +find_package(catkin REQUIRED) catkin_package() -## Mark executable scripts (Python etc.) for installation -## in contrast to setup.py, you can choose the destination -catkin_install_python(PROGRAMS - scripts/sync_plan.py - DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} -) - install(DIRECTORY launch DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} PATTERN "setup_assistant.launch" EXCLUDE) install(DIRECTORY config DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}) diff --git a/mycobot_pro/mycobot_630_moveit/config/cartesian_limits.yaml b/mycobot_pro/mycobot_630_moveit/config/cartesian_limits.yaml new file mode 100644 index 0000000..7df72f6 --- /dev/null +++ b/mycobot_pro/mycobot_630_moveit/config/cartesian_limits.yaml @@ -0,0 +1,5 @@ +cartesian_limits: + max_trans_vel: 1 + max_trans_acc: 2.25 + max_trans_dec: -5 + max_rot_vel: 1.57 diff --git a/mycobot_pro/mycobot_630_moveit/config/chomp_planning.yaml b/mycobot_pro/mycobot_630_moveit/config/chomp_planning.yaml index 75258e5..eb9c912 100644 --- a/mycobot_pro/mycobot_630_moveit/config/chomp_planning.yaml +++ b/mycobot_pro/mycobot_630_moveit/config/chomp_planning.yaml @@ -7,12 +7,12 @@ learning_rate: 0.01 smoothness_cost_velocity: 0.0 smoothness_cost_acceleration: 1.0 smoothness_cost_jerk: 0.0 -ridge_factor: 0.01 +ridge_factor: 0.0 use_pseudo_inverse: false pseudo_inverse_ridge_factor: 1e-4 joint_update_limit: 0.1 -collision_clearence: 0.2 +collision_clearance: 0.2 collision_threshold: 0.07 use_stochastic_descent: true -enable_failure_recovery: true -max_recovery_attempts: 5 \ No newline at end of file +enable_failure_recovery: false +max_recovery_attempts: 5 diff --git a/mycobot_pro/mycobot_630_moveit/config/fake_controllers.yaml b/mycobot_pro/mycobot_630_moveit/config/fake_controllers.yaml index aa4aef9..3e6f342 100644 --- a/mycobot_pro/mycobot_630_moveit/config/fake_controllers.yaml +++ b/mycobot_pro/mycobot_630_moveit/config/fake_controllers.yaml @@ -1,9 +1,13 @@ controller_list: - name: fake_arm_group_controller + type: $(arg fake_execution_type) joints: - joint1_to_base - joint2_to_joint1 - joint3_to_joint2 - joint4_to_joint3 - joint5_to_joint4 - - joint6_to_joint5 \ No newline at end of file + - joint6_to_joint5 +initial: # Define initial robot poses per group + - group: arm_group + pose: init_pose \ No newline at end of file diff --git a/mycobot_pro/mycobot_630_moveit/config/firefighter.srdf b/mycobot_pro/mycobot_630_moveit/config/firefighter.srdf index 9609c58..27ae337 100644 --- a/mycobot_pro/mycobot_630_moveit/config/firefighter.srdf +++ b/mycobot_pro/mycobot_630_moveit/config/firefighter.srdf @@ -1,4 +1,4 @@ - + - - - - - - + + + + + + - - - - - - + + + + + + - - - - + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/mycobot_pro/mycobot_630_moveit/config/gazebo_controllers.yaml b/mycobot_pro/mycobot_630_moveit/config/gazebo_controllers.yaml new file mode 100644 index 0000000..e4d2eb0 --- /dev/null +++ b/mycobot_pro/mycobot_630_moveit/config/gazebo_controllers.yaml @@ -0,0 +1,4 @@ +# Publish joint_states +joint_state_controller: + type: joint_state_controller/JointStateController + publish_rate: 50 diff --git a/mycobot_pro/mycobot_630_moveit/config/gazebo_firefighter.urdf b/mycobot_pro/mycobot_630_moveit/config/gazebo_firefighter.urdf new file mode 100644 index 0000000..381af5c --- /dev/null +++ b/mycobot_pro/mycobot_630_moveit/config/gazebo_firefighter.urdf @@ -0,0 +1,250 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + transmission_interface/SimpleTransmission + + hardware_interface/EffortJointInterface + + + hardware_interface/EffortJointInterface + 1 + + + + transmission_interface/SimpleTransmission + + hardware_interface/EffortJointInterface + + + hardware_interface/EffortJointInterface + 1 + + + + transmission_interface/SimpleTransmission + + hardware_interface/EffortJointInterface + + + hardware_interface/EffortJointInterface + 1 + + + + transmission_interface/SimpleTransmission + + hardware_interface/EffortJointInterface + + + hardware_interface/EffortJointInterface + 1 + + + + transmission_interface/SimpleTransmission + + hardware_interface/EffortJointInterface + + + hardware_interface/EffortJointInterface + 1 + + + + transmission_interface/SimpleTransmission + + hardware_interface/EffortJointInterface + + + hardware_interface/EffortJointInterface + 1 + + + + + / + + + + diff --git a/mycobot_pro/mycobot_630_moveit/config/joint_limits.yaml b/mycobot_pro/mycobot_630_moveit/config/joint_limits.yaml index 8bc72c6..47328ee 100644 --- a/mycobot_pro/mycobot_630_moveit/config/joint_limits.yaml +++ b/mycobot_pro/mycobot_630_moveit/config/joint_limits.yaml @@ -1,34 +1,40 @@ # 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: joint1_to_base: - has_velocity_limits: true - max_velocity: 3.14 + has_velocity_limits: false + max_velocity: 0 has_acceleration_limits: false - max_acceleration: 30 + max_acceleration: 0 joint2_to_joint1: - has_velocity_limits: true - max_velocity: 3.14 + has_velocity_limits: false + max_velocity: 0 has_acceleration_limits: false - max_acceleration: 30 + max_acceleration: 0 joint3_to_joint2: - has_velocity_limits: true - max_velocity: 3.14 + has_velocity_limits: false + max_velocity: 0 has_acceleration_limits: false - max_acceleration: 30 + max_acceleration: 0 joint4_to_joint3: - has_velocity_limits: true - max_velocity: 3.14 + has_velocity_limits: false + max_velocity: 0 has_acceleration_limits: false - max_acceleration: 30 + max_acceleration: 0 joint5_to_joint4: - has_velocity_limits: true - max_velocity: 3.14 + has_velocity_limits: false + max_velocity: 0 has_acceleration_limits: false - max_acceleration: 30 + max_acceleration: 0 joint6_to_joint5: - has_velocity_limits: true - max_velocity: 3.14 + has_velocity_limits: false + max_velocity: 0 has_acceleration_limits: false - max_acceleration: 30 \ No newline at end of file + max_acceleration: 0 \ No newline at end of file diff --git a/mycobot_pro/mycobot_630_moveit/config/kinematics.yaml b/mycobot_pro/mycobot_630_moveit/config/kinematics.yaml index 3c16bbc..2f06d6e 100644 --- a/mycobot_pro/mycobot_630_moveit/config/kinematics.yaml +++ b/mycobot_pro/mycobot_630_moveit/config/kinematics.yaml @@ -2,4 +2,6 @@ arm_group: kinematics_solver: kdl_kinematics_plugin/KDLKinematicsPlugin kinematics_solver_search_resolution: 0.005 kinematics_solver_timeout: 0.005 - kinematics_solver_attempts: 3 + goal_joint_tolerance: 0.0001 + goal_position_tolerance: 0.0001 + goal_orientation_tolerance: 0.001 \ No newline at end of file diff --git a/mycobot_pro/mycobot_630_moveit/config/ompl_planning.yaml b/mycobot_pro/mycobot_630_moveit/config/ompl_planning.yaml index 82f7d9d..7f30514 100644 --- a/mycobot_pro/mycobot_630_moveit/config/ompl_planning.yaml +++ b/mycobot_pro/mycobot_630_moveit/config/ompl_planning.yaml @@ -1,4 +1,11 @@ planner_configs: + AnytimePathShortening: + type: geometric::AnytimePathShortening + shortcut: true # Attempt to shortcut all new solution paths + hybridize: true # Compute hybrid solution trajectories + max_hybrid_paths: 24 # Number of hybrid paths generated per iteration + num_planners: 4 # The number of default planners to use for planning + planners: "" # A comma-separated list of planner types (e.g., "PRM,EST,RRTConnect"Optionally, planner parameters can be passed to change the default:"PRM[max_nearest_neighbors=5],EST[goal_bias=.5],RRT[range=10. goal_bias=.1]" SBL: type: geometric::SBL range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() @@ -44,8 +51,8 @@ planner_configs: temp_change_factor: 2.0 # how much to increase or decrease temp. default: 2.0 min_temperature: 10e-10 # lower limit of temp change. default: 10e-10 init_temperature: 10e-6 # initial temperature. default: 10e-6 - frountier_threshold: 0.0 # dist new state to nearest neighbor to disqualify as frontier. default: 0.0 set in setup() - frountierNodeRatio: 0.1 # 1/10, or 1 nonfrontier for every 10 frontier. default: 0.1 + frontier_threshold: 0.0 # dist new state to nearest neighbor to disqualify as frontier. default: 0.0 set in setup() + frontier_node_ratio: 0.1 # 1/10, or 1 nonfrontier for every 10 frontier. default: 0.1 k_constant: 0.0 # value used to normalize expresssion. default: 0.0 set in setup() PRM: type: geometric::PRM @@ -88,8 +95,8 @@ planner_configs: range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() temp_change_factor: 0.1 # how much to increase or decrease temp. default: 0.1 init_temperature: 100 # initial temperature. default: 100 - frountier_threshold: 0.0 # dist new state to nearest neighbor to disqualify as frontier. default: 0.0 set in setup() - frountier_node_ratio: 0.1 # 1/10, or 1 nonfrontier for every 10 frontier. default: 0.1 + frontier_threshold: 0.0 # dist new state to nearest neighbor to disqualify as frontier. default: 0.0 set in setup() + frontier_node_ratio: 0.1 # 1/10, or 1 nonfrontier for every 10 frontier. default: 0.1 cost_threshold: 1e300 # the cost threshold. Any motion cost that is not better will not be expanded. default: inf LBTRRT: type: geometric::LBTRRT @@ -120,9 +127,47 @@ planner_configs: sparse_delta_fraction: 0.25 # delta fraction for connection distance. This value represents the visibility range of sparse samples. default: 0.25 dense_delta_fraction: 0.001 # delta fraction for interface detection. default: 0.001 max_failures: 5000 # maximum consecutive failure limit. default: 5000 + AITstar: + type: geometric::AITstar + use_k_nearest: 1 # whether to use a k-nearest RGG connection model (1) or an r-disc model (0). Default: 1 + rewire_factor: 1.001 # rewire factor of the RGG. Valid values: [1.0:0.01:3.0]. Default: 1.001 + samples_per_batch: 100 # batch size. Valid values: [1:1:1000]. Default: 100 + use_graph_pruning: 1 # enable graph pruning (1) or not (0). Default: 1 + find_approximate_solutions: 0 # track approximate solutions (1) or not (0). Default: 0 + set_max_num_goals: 1 # maximum number of goals sampled from sampleable goal regions. Valid values: [1:1:1000]. Default: 1 + ABITstar: + type: geometric::ABITstar + use_k_nearest: 1 # whether to use a k-nearest RGG connection model (1) or an r-disc model (0). Default: 1 + rewire_factor: 1.001 # rewire factor of the RGG. Valid values: [1.0:0.01:3.0]. Default: 1.001 + samples_per_batch: 100 # batch size. Valid values: [1:1:1000]. Default: 100 + use_graph_pruning: 1 # enable graph pruning (1) or not (0). Default: 1 + prune_threshold_as_fractional_cost_change: 0.1 # fractional change in the solution cost AND problem measure necessary for pruning to occur. Default: 0.1 + delay_rewiring_to_first_solution: 0 # delay (1) or not (0) rewiring until a solution is found. Default: 0 + use_just_in_time_sampling: 0 # delay the generation of samples until they are * necessary. Only works with r-disc connection and path length minimization. Default: 0 + drop_unconnected_samples_on_prune: 0 # drop unconnected samples when pruning, regardless of their heuristic value. Default: 0 + stop_on_each_solution_improvement: 0 # stop the planner each time a solution improvement is found. Useful for debugging. Default: 0 + use_strict_queue_ordering: 0 # sort edges in the queue at the end of the batch (0) or after each rewiring (1). Default: 0 + find_approximate_solutions: 0 # track approximate solutions (1) or not (0). Default: 0 + initial_inflation_factor: 1000000 # inflation factor for the initial search. Valid values: [1.0:0.01:1000000.0]. Default: 1000000 + inflation_scaling_parameter: 10 # scaling parameter for the inflation factor update policy. Valid values: [1.0:0.01:1000000.0]. Default: 0 + truncation_scaling_parameter: 5.0 # scaling parameter for the truncation factor update policy. Valid values: [1.0:0.01:1000000.0]. Default: 0 + BITstar: + type: geometric::BITstar + use_k_nearest: 1 # whether to use a k-nearest RGG connection model (1) or an r-disc model (0). Default: 1 + rewire_factor: 1.001 # rewire factor of the RGG. Valid values: [1.0:0.01:3.0]. Default: 1.001 + samples_per_batch: 100 # batch size. Valid values: [1:1:1000]. Default: 100 + use_graph_pruning: 1 # enable graph pruning (1) or not (0). Default: 1 + prune_threshold_as_fractional_cost_change: 0.1 # fractional change in the solution cost AND problem measure necessary for pruning to occur. Default: 0.1 + delay_rewiring_to_first_solution: 0 # delay (1) or not (0) rewiring until a solution is found. Default: 0 + use_just_in_time_sampling: 0 # delay the generation of samples until they are * necessary. Only works with r-disc connection and path length minimization. Default: 0 + drop_unconnected_samples_on_prune: 0 # drop unconnected samples when pruning, regardless of their heuristic value. Default: 0 + stop_on_each_solution_improvement: 0 # stop the planner each time a solution improvement is found. Useful for debugging. Default: 0 + use_strict_queue_ordering: 0 # sort edges in the queue at the end of the batch (0) or after each rewiring (1). Default: 0 + find_approximate_solutions: 0 # track approximate solutions (1) or not (0). Default: 0 arm_group: default_planner_config: RRTConnect planner_configs: + - AnytimePathShortening - SBL - EST - LBKPIECE @@ -146,5 +191,8 @@ arm_group: - LazyPRMstar - SPARS - SPARStwo - projection_evaluator: joints(joint2_to_joint1,joint3_to_joint2) - longest_valid_segment_fraction: 0.005 \ No newline at end of file + - AITstar + - ABITstar + - BITstar + projection_evaluator: joints(joint1_to_base,joint2_to_joint1) + longest_valid_segment_fraction: 0.005 diff --git a/mycobot_pro/mycobot_630_moveit/config/ros_controllers.yaml b/mycobot_pro/mycobot_630_moveit/config/ros_controllers.yaml index 491f450..efc7c6c 100644 --- a/mycobot_pro/mycobot_630_moveit/config/ros_controllers.yaml +++ b/mycobot_pro/mycobot_630_moveit/config/ros_controllers.yaml @@ -1,26 +1,40 @@ -# Simulation settings for using moveit_sim_controllers -moveit_sim_hw_interface: - joint_model_group: arm_group - joint_model_group_pose: init_pose -# Settings for ros_control_boilerplate control loop -generic_hw_control_loop: - loop_hz: 300 - cycle_time_error_threshold: 0.01 -# Settings for ros_control hardware interface -hardware_interface: +arm_group_controller: + type: effort_controllers/JointTrajectoryController joints: - - vitual_joint - joint1_to_base - joint2_to_joint1 - joint3_to_joint2 - joint4_to_joint3 - joint5_to_joint4 - joint6_to_joint5 - sim_control_mode: 1 # 0: position, 1: velocity -# Publish all joint states -# Creates the /joint_states topic necessary in ROS -joint_state_controller: - type: joint_state_controller/JointStateController - publish_rate: 50 -controller_list: - [] \ No newline at end of file + gains: + joint1_to_base: + p: 100 + d: 1 + i: 1 + i_clamp: 1 + joint2_to_joint1: + p: 100 + d: 1 + i: 1 + i_clamp: 1 + joint3_to_joint2: + p: 100 + d: 1 + i: 1 + i_clamp: 1 + joint4_to_joint3: + p: 100 + d: 1 + i: 1 + i_clamp: 1 + joint5_to_joint4: + p: 100 + d: 1 + i: 1 + i_clamp: 1 + joint6_to_joint5: + p: 100 + d: 1 + i: 1 + i_clamp: 1 \ No newline at end of file diff --git a/mycobot_pro/mycobot_630_moveit/config/sensors_3d.yaml b/mycobot_pro/mycobot_630_moveit/config/sensors_3d.yaml index a4bb13e..01538cc 100644 --- a/mycobot_pro/mycobot_630_moveit/config/sensors_3d.yaml +++ b/mycobot_pro/mycobot_630_moveit/config/sensors_3d.yaml @@ -1,4 +1,3 @@ -# The name of this file shouldn't be changed, or else the Setup Assistant won't detect it sensors: - filtered_cloud_topic: filtered_cloud max_range: 5.0 diff --git a/mycobot_pro/mycobot_630_moveit/config/simple_moveit_controllers.yaml b/mycobot_pro/mycobot_630_moveit/config/simple_moveit_controllers.yaml new file mode 100644 index 0000000..68c9469 --- /dev/null +++ b/mycobot_pro/mycobot_630_moveit/config/simple_moveit_controllers.yaml @@ -0,0 +1,12 @@ +controller_list: + - name: arm_group_controller + action_ns: follow_joint_trajectory + type: FollowJointTrajectory + default: True + joints: + - joint1_to_base + - joint2_to_joint1 + - joint3_to_joint2 + - joint4_to_joint3 + - joint5_to_joint4 + - joint6_to_joint5 \ No newline at end of file diff --git a/mycobot_pro/mycobot_630_moveit/config/stomp_planning.yaml b/mycobot_pro/mycobot_630_moveit/config/stomp_planning.yaml new file mode 100644 index 0000000..fa999a9 --- /dev/null +++ b/mycobot_pro/mycobot_630_moveit/config/stomp_planning.yaml @@ -0,0 +1,39 @@ +stomp/arm_group: + group_name: arm_group + optimization: + num_timesteps: 60 + num_iterations: 40 + num_iterations_after_valid: 0 + num_rollouts: 30 + max_rollouts: 30 + initialization_method: 1 # [1 : LINEAR_INTERPOLATION, 2 : CUBIC_POLYNOMIAL, 3 : MININUM_CONTROL_COST] + control_cost_weight: 0.0 + task: + noise_generator: + - class: stomp_moveit/NormalDistributionSampling + stddev: [0.05, 0.05, 0.05, 0.05, 0.05, 0.05] + cost_functions: + - class: stomp_moveit/CollisionCheck + collision_penalty: 1.0 + cost_weight: 1.0 + kernel_window_percentage: 0.2 + longest_valid_joint_move: 0.05 + noisy_filters: + - class: stomp_moveit/JointLimits + lock_start: True + lock_goal: True + - class: stomp_moveit/MultiTrajectoryVisualization + line_width: 0.02 + rgb: [255, 255, 0] + marker_array_topic: stomp_trajectories + marker_namespace: noisy + update_filters: + - class: stomp_moveit/PolynomialSmoother + poly_order: 6 + - class: stomp_moveit/TrajectoryVisualization + line_width: 0.05 + rgb: [0, 191, 255] + error_rgb: [255, 0, 0] + publish_intermediate: True + marker_topic: stomp_trajectory + marker_namespace: optimized \ No newline at end of file diff --git a/mycobot_pro/mycobot_630_moveit/launch/chomp_planning_pipeline.launch.xml b/mycobot_pro/mycobot_630_moveit/launch/chomp_planning_pipeline.launch.xml index d660d07..3748356 100644 --- a/mycobot_pro/mycobot_630_moveit/launch/chomp_planning_pipeline.launch.xml +++ b/mycobot_pro/mycobot_630_moveit/launch/chomp_planning_pipeline.launch.xml @@ -1,10 +1,21 @@ - - - + + + + - - + + + + - + diff --git a/mycobot_pro/mycobot_630_moveit/launch/default_warehouse_db.launch b/mycobot_pro/mycobot_630_moveit/launch/default_warehouse_db.launch index e2fc2f8..c85e7fe 100644 --- a/mycobot_pro/mycobot_630_moveit/launch/default_warehouse_db.launch +++ b/mycobot_pro/mycobot_630_moveit/launch/default_warehouse_db.launch @@ -5,7 +5,7 @@ - + diff --git a/mycobot_pro/mycobot_630_moveit/launch/demo.launch b/mycobot_pro/mycobot_630_moveit/launch/demo.launch index c47c540..87652b8 100644 --- a/mycobot_pro/mycobot_630_moveit/launch/demo.launch +++ b/mycobot_pro/mycobot_630_moveit/launch/demo.launch @@ -1,65 +1,66 @@ + + + - - - - + - MoveIt!'s "demo" mode replaces the real robot driver with the joint_state_publisher. - The latter one maintains and publishes the current joint configuration of the simulated robot. - It also provides a GUI to move the simulated robot around "manually". - This corresponds to moving around the real robot without the use of MoveIt. - --> + + + + + + - - - - - - + - + - - - - - [move_group/fake_controller_joint_states] - + + + + [move_group/fake_controller_joint_states] + + + + [move_group/fake_controller_joint_states] + - - - + + + - - - + + - + + + + - - - + + - - + diff --git a/mycobot_pro/mycobot_630_moveit/launch/demo_gazebo.launch b/mycobot_pro/mycobot_630_moveit/launch/demo_gazebo.launch index 3ee6039..0ef8f95 100644 --- a/mycobot_pro/mycobot_630_moveit/launch/demo_gazebo.launch +++ b/mycobot_pro/mycobot_630_moveit/launch/demo_gazebo.launch @@ -1,70 +1,21 @@ + + + - - - - + + + + + - - + + - - - - - - - - - - - - - - + + + + + - - - - - - - - - - - - - [/joint_states] - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/mycobot_pro/mycobot_630_moveit/launch/fake_moveit_controller_manager.launch.xml b/mycobot_pro/mycobot_630_moveit/launch/fake_moveit_controller_manager.launch.xml index 06e4891..dc584b0 100644 --- a/mycobot_pro/mycobot_630_moveit/launch/fake_moveit_controller_manager.launch.xml +++ b/mycobot_pro/mycobot_630_moveit/launch/fake_moveit_controller_manager.launch.xml @@ -1,9 +1,12 @@ + + + - + diff --git a/mycobot_pro/mycobot_630_moveit/launch/gazebo.launch b/mycobot_pro/mycobot_630_moveit/launch/gazebo.launch index 444a8d3..e145891 100644 --- a/mycobot_pro/mycobot_630_moveit/launch/gazebo.launch +++ b/mycobot_pro/mycobot_630_moveit/launch/gazebo.launch @@ -1,23 +1,34 @@ - - - + + + + + + - - - - - + + + - - + + - - + + + + - + + + + + + + + diff --git a/mycobot_pro/mycobot_630_moveit/launch/move_group.launch b/mycobot_pro/mycobot_630_moveit/launch/move_group.launch index 9f58ce1..2330bcb 100644 --- a/mycobot_pro/mycobot_630_moveit/launch/move_group.launch +++ b/mycobot_pro/mycobot_630_moveit/launch/move_group.launch @@ -1,12 +1,10 @@ - - + value="gdb -x $(dirname)/gdb_settings.gdb --ex run --args" /> @@ -14,10 +12,11 @@ + - + + - @@ -38,20 +37,46 @@ " /> --> - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - + @@ -61,11 +86,14 @@ - - - - + + + + + + diff --git a/mycobot_pro/mycobot_630_moveit/launch/moveit.rviz b/mycobot_pro/mycobot_630_moveit/launch/moveit.rviz index 61506b6..e4b03b9 100644 --- a/mycobot_pro/mycobot_630_moveit/launch/moveit.rviz +++ b/mycobot_pro/mycobot_630_moveit/launch/moveit.rviz @@ -211,7 +211,7 @@ Visualization Manager: Views: Current: Class: rviz/XYOrbit - Distance: 1.3915867805480957 + Distance: 1.955079197883606 Enable Stereo Rendering: Stereo Eye Separation: 0.05999999865889549 Stereo Focal Distance: 1 @@ -227,9 +227,9 @@ Visualization Manager: Invert Z Axis: false Name: Current View Near Clip Distance: 0.009999999776482582 - Pitch: 0.3547966480255127 + Pitch: 0.2597966492176056 Target Frame: base - Yaw: 2.0267655849456787 + Yaw: 2.8617656230926514 Saved: ~ Window Geometry: Displays: @@ -243,7 +243,7 @@ Window Geometry: collapsed: false MotionPlanning - Trajectory Slider: collapsed: false - QMainWindow State: 000000ff00000000fd0000000100000000000001f300000330fc0200000007fb000000100044006900730070006c006100790073010000003d00000156000000c900fffffffb0000000800480065006c00700000000342000000bb0000006e00fffffffb0000000a0056006900650077007300000003b0000000b0000000a400fffffffb0000000c00430061006d00650072006100000002ff000001610000000000000000fb0000001e004d006f00740069006f006e00200050006c0061006e006e0069006e00670100000374000001890000000000000000fb00000044004d006f00740069006f006e0050006c0061006e006e0069006e00670020002d0020005400720061006a006500630074006f0072007900200053006c00690064006500720100000199000000420000004100fffffffb0000001c004d006f00740069006f006e0050006c0061006e006e0069006e006701000001e10000018c0000017d00ffffff0000053f0000033000000001000000020000000100000002fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 + QMainWindow State: 000000ff00000000fd0000000100000000000001f300000330fc0200000007fb000000100044006900730070006c006100790073010000003d00000156000000c900fffffffb0000000800480065006c00700000000342000000bb0000006e00fffffffb0000000a0056006900650077007300000003b0000000b0000000a400fffffffb0000000c00430061006d00650072006100000002ff000001610000000000000000fb0000001e004d006f00740069006f006e00200050006c0061006e006e0069006e00670100000374000001890000000000000000fb00000044004d006f00740069006f006e0050006c0061006e006e0069006e00670020002d0020005400720061006a006500630074006f0072007900200053006c00690064006500720100000199000000410000004100fffffffb0000001c004d006f00740069006f006e0050006c0061006e006e0069006e006701000001e00000018d0000017d00ffffff0000053f0000033000000001000000020000000100000002fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 Views: collapsed: false Width: 1848 diff --git a/mycobot_pro/mycobot_630_moveit/launch/moveit_rviz.launch b/mycobot_pro/mycobot_630_moveit/launch/moveit_rviz.launch index a375679..a4605c0 100644 --- a/mycobot_pro/mycobot_630_moveit/launch/moveit_rviz.launch +++ b/mycobot_pro/mycobot_630_moveit/launch/moveit_rviz.launch @@ -4,13 +4,12 @@ - - - + + + - + args="$(arg command_args)" output="screen"> diff --git a/mycobot_pro/mycobot_630_moveit/launch/mycobot630_moveit.launch b/mycobot_pro/mycobot_630_moveit/launch/mycobot630_moveit.launch index 0a9be57..87652b8 100644 --- a/mycobot_pro/mycobot_630_moveit/launch/mycobot630_moveit.launch +++ b/mycobot_pro/mycobot_630_moveit/launch/mycobot630_moveit.launch @@ -1,64 +1,66 @@ + + + - - - + - + - MoveIt!'s "demo" mode replaces the real robot driver with the joint_state_publisher. - The latter one maintains and publishes the current joint configuration of the simulated robot. - It also provides a GUI to move the simulated robot around "manually". - This corresponds to moving around the real robot without the use of MoveIt. - --> + + + + + + - - - - - - + - + - - - - - [move_group/fake_controller_joint_states] - + + + + [move_group/fake_controller_joint_states] + + + + [move_group/fake_controller_joint_states] + - - - + + + - - - + + - + + + + - - - + + - - + diff --git a/mycobot_pro/mycobot_630_moveit/launch/ompl-chomp_planning_pipeline.launch.xml b/mycobot_pro/mycobot_630_moveit/launch/ompl-chomp_planning_pipeline.launch.xml new file mode 100644 index 0000000..8ff1cd7 --- /dev/null +++ b/mycobot_pro/mycobot_630_moveit/launch/ompl-chomp_planning_pipeline.launch.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + diff --git a/mycobot_pro/mycobot_630_moveit/launch/ompl_planning_pipeline.launch.xml b/mycobot_pro/mycobot_630_moveit/launch/ompl_planning_pipeline.launch.xml index ccbe152..79f6f44 100644 --- a/mycobot_pro/mycobot_630_moveit/launch/ompl_planning_pipeline.launch.xml +++ b/mycobot_pro/mycobot_630_moveit/launch/ompl_planning_pipeline.launch.xml @@ -1,21 +1,23 @@ - - + + - - + + - - - + + diff --git a/mycobot_pro/mycobot_630_moveit/launch/pilz_industrial_motion_planner_planning_pipeline.launch.xml b/mycobot_pro/mycobot_630_moveit/launch/pilz_industrial_motion_planner_planning_pipeline.launch.xml new file mode 100644 index 0000000..c7c4cf5 --- /dev/null +++ b/mycobot_pro/mycobot_630_moveit/launch/pilz_industrial_motion_planner_planning_pipeline.launch.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + diff --git a/mycobot_pro/mycobot_630_moveit/launch/planning_context.launch b/mycobot_pro/mycobot_630_moveit/launch/planning_context.launch index 36ba3d9..4f54be0 100644 --- a/mycobot_pro/mycobot_630_moveit/launch/planning_context.launch +++ b/mycobot_pro/mycobot_630_moveit/launch/planning_context.launch @@ -6,7 +6,7 @@ - + @@ -14,11 +14,13 @@ + + diff --git a/mycobot_pro/mycobot_630_moveit/launch/planning_pipeline.launch.xml b/mycobot_pro/mycobot_630_moveit/launch/planning_pipeline.launch.xml index 6640f40..4b4d0d6 100644 --- a/mycobot_pro/mycobot_630_moveit/launch/planning_pipeline.launch.xml +++ b/mycobot_pro/mycobot_630_moveit/launch/planning_pipeline.launch.xml @@ -5,6 +5,6 @@ - + diff --git a/mycobot_pro/mycobot_630_moveit/launch/ros_control_moveit_controller_manager.launch.xml b/mycobot_pro/mycobot_630_moveit/launch/ros_control_moveit_controller_manager.launch.xml new file mode 100644 index 0000000..9ebc91c --- /dev/null +++ b/mycobot_pro/mycobot_630_moveit/launch/ros_control_moveit_controller_manager.launch.xml @@ -0,0 +1,4 @@ + + + + diff --git a/mycobot_pro/mycobot_630_moveit/launch/ros_controllers.launch b/mycobot_pro/mycobot_630_moveit/launch/ros_controllers.launch index 939670e..faece43 100644 --- a/mycobot_pro/mycobot_630_moveit/launch/ros_controllers.launch +++ b/mycobot_pro/mycobot_630_moveit/launch/ros_controllers.launch @@ -6,6 +6,6 @@ + output="screen" args="arm_group_controller "/> diff --git a/mycobot_pro/mycobot_630_moveit/launch/run_benchmark_ompl.launch b/mycobot_pro/mycobot_630_moveit/launch/run_benchmark_ompl.launch index bf9c8b6..3fb79fa 100644 --- a/mycobot_pro/mycobot_630_moveit/launch/run_benchmark_ompl.launch +++ b/mycobot_pro/mycobot_630_moveit/launch/run_benchmark_ompl.launch @@ -4,18 +4,17 @@ - + - + - diff --git a/mycobot_pro/mycobot_630_moveit/launch/sensor_manager.launch.xml b/mycobot_pro/mycobot_630_moveit/launch/sensor_manager.launch.xml index 66a8fb4..d89d281 100644 --- a/mycobot_pro/mycobot_630_moveit/launch/sensor_manager.launch.xml +++ b/mycobot_pro/mycobot_630_moveit/launch/sensor_manager.launch.xml @@ -12,6 +12,6 @@ - + diff --git a/mycobot_pro/mycobot_630_moveit/launch/setup_assistant.launch b/mycobot_pro/mycobot_630_moveit/launch/setup_assistant.launch index bba5569..a37d34a 100644 --- a/mycobot_pro/mycobot_630_moveit/launch/setup_assistant.launch +++ b/mycobot_pro/mycobot_630_moveit/launch/setup_assistant.launch @@ -1,4 +1,4 @@ - + @@ -8,8 +8,9 @@ diff --git a/mycobot_pro/mycobot_630_moveit/launch/simple_moveit_controller_manager.launch.xml b/mycobot_pro/mycobot_630_moveit/launch/simple_moveit_controller_manager.launch.xml new file mode 100644 index 0000000..9ad259c --- /dev/null +++ b/mycobot_pro/mycobot_630_moveit/launch/simple_moveit_controller_manager.launch.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/mycobot_pro/mycobot_630_moveit/launch/stomp_planning_pipeline.launch.xml b/mycobot_pro/mycobot_630_moveit/launch/stomp_planning_pipeline.launch.xml new file mode 100644 index 0000000..b70333c --- /dev/null +++ b/mycobot_pro/mycobot_630_moveit/launch/stomp_planning_pipeline.launch.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + diff --git a/mycobot_pro/mycobot_630_moveit/launch/trajectory_execution.launch.xml b/mycobot_pro/mycobot_630_moveit/launch/trajectory_execution.launch.xml index 20e6e19..20c3dfc 100644 --- a/mycobot_pro/mycobot_630_moveit/launch/trajectory_execution.launch.xml +++ b/mycobot_pro/mycobot_630_moveit/launch/trajectory_execution.launch.xml @@ -1,8 +1,11 @@ + - + + + - + @@ -13,8 +16,8 @@ - - - + + diff --git a/mycobot_pro/mycobot_630_moveit/launch/warehouse.launch b/mycobot_pro/mycobot_630_moveit/launch/warehouse.launch index 1496e6f..0712e67 100644 --- a/mycobot_pro/mycobot_630_moveit/launch/warehouse.launch +++ b/mycobot_pro/mycobot_630_moveit/launch/warehouse.launch @@ -4,7 +4,7 @@ - + diff --git a/mycobot_pro/mycobot_630_moveit/package.xml b/mycobot_pro/mycobot_630_moveit/package.xml index fbdd127..6b2a499 100644 --- a/mycobot_pro/mycobot_630_moveit/package.xml +++ b/mycobot_pro/mycobot_630_moveit/package.xml @@ -3,7 +3,7 @@ mycobot_630_moveit 0.3.0 - An automatically generated package with all the configuration and launch files for using the firefighter with the MoveIt! Motion Planning Framework + An automatically generated package with all the configuration and launch files for using the firefighter with the MoveIt Motion Planning Framework wangweijian wangweijian @@ -19,20 +19,22 @@ moveit_ros_move_group moveit_fake_controller_manager moveit_kinematics - moveit_planners_ompl + moveit_planners moveit_ros_visualization moveit_setup_assistant + moveit_simple_controller_manager joint_state_publisher + joint_state_publisher_gui robot_state_publisher + rviz + tf2_ros xacro + + + - roscpp - rospy - std_msgs - actionlib - moveit_msgs - mycobot_description mycobot_description diff --git a/mycobot_pro/mycobot_630_moveit/scripts/sync_plan.py b/mycobot_pro/mycobot_630_moveit/scripts/sync_plan.py index 661f825..c0db4ea 100755 --- a/mycobot_pro/mycobot_630_moveit/scripts/sync_plan.py +++ b/mycobot_pro/mycobot_630_moveit/scripts/sync_plan.py @@ -23,6 +23,9 @@ def callback(data): radians_to_angles = round(math.degrees(value), 2) data_list.append(radians_to_angles) + data_list[1] = data_list[1] - 90 + data_list[3] = data_list[3] - 90 + rospy.loginfo(rospy.get_caller_id() + "%s", data_list) mc.write_angles(data_list, 800) diff --git a/mycobot_pro/mycobot_630_moveit/scripts/test_add_ground.py b/mycobot_pro/mycobot_630_moveit/scripts/test_add_ground.py new file mode 100755 index 0000000..36f7f48 --- /dev/null +++ b/mycobot_pro/mycobot_630_moveit/scripts/test_add_ground.py @@ -0,0 +1,35 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +import rospy +from moveit_commander import PlanningSceneInterface +from geometry_msgs.msg import PoseStamped + +class GroundAdder: + def __init__(self): + # 初始化 ROS 节点 + rospy.init_node('add_ground_node', anonymous=True) + + # 初始化 PlanningSceneInterface + self.scene = PlanningSceneInterface() + rospy.sleep(2) # 等待场景初始化 + + def add_ground(self): + # 定义地面的姿态 + ground_pose = PoseStamped() + ground_pose.header.frame_id = "base" # 基座坐标系 + ground_pose.pose.position.x = 0.0 + ground_pose.pose.position.y = 0.0 + ground_pose.pose.position.z = -0.01 # 地面位于基座下方 0.01 米 + ground_pose.pose.orientation.w = 1.0 + + # 添加地面到场景中 + self.scene.add_box("ground", ground_pose, size=(1.5, 1.5, 0.005)) + rospy.loginfo("Ground added to the planning scene.") + +if __name__ == "__main__": + try: + ground_adder = GroundAdder() + ground_adder.add_ground() + rospy.spin() # 保持节点运行,防止退出 + except rospy.ROSInterruptException: + pass