diff --git a/mycobot_280/mycobot_280jn_gripper_moveit/.setup_assistant b/mycobot_280/mycobot_280jn_gripper_moveit/.setup_assistant new file mode 100644 index 0000000..1cfea8e --- /dev/null +++ b/mycobot_280/mycobot_280jn_gripper_moveit/.setup_assistant @@ -0,0 +1,11 @@ +moveit_setup_assistant_config: + URDF: + package: mycobot_description + relative_path: urdf/mycobot_280_jn/mycobot_280_jn_adaptive_gripper_parallel.urdf + xacro_args: "" + SRDF: + relative_path: config/firefighter.srdf + CONFIG: + author_name: wwj + author_email: weijian.wang@elephantrobotics.com + generated_timestamp: 1726133132 \ No newline at end of file diff --git a/mycobot_280/mycobot_280jn_gripper_moveit/CMakeLists.txt b/mycobot_280/mycobot_280jn_gripper_moveit/CMakeLists.txt new file mode 100644 index 0000000..e315fd3 --- /dev/null +++ b/mycobot_280/mycobot_280jn_gripper_moveit/CMakeLists.txt @@ -0,0 +1,15 @@ +cmake_minimum_required(VERSION 3.1.3) +project(mycobot_280jn_gripper_moveit) + +find_package(catkin REQUIRED) + +catkin_package() + +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_280/mycobot_280jn_gripper_moveit/config/cartesian_limits.yaml b/mycobot_280/mycobot_280jn_gripper_moveit/config/cartesian_limits.yaml new file mode 100644 index 0000000..7df72f6 --- /dev/null +++ b/mycobot_280/mycobot_280jn_gripper_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_280/mycobot_280jn_gripper_moveit/config/chomp_planning.yaml b/mycobot_280/mycobot_280jn_gripper_moveit/config/chomp_planning.yaml new file mode 100644 index 0000000..eb9c912 --- /dev/null +++ b/mycobot_280/mycobot_280jn_gripper_moveit/config/chomp_planning.yaml @@ -0,0 +1,18 @@ +planning_time_limit: 10.0 +max_iterations: 200 +max_iterations_after_collision_free: 5 +smoothness_cost_weight: 0.1 +obstacle_cost_weight: 1.0 +learning_rate: 0.01 +smoothness_cost_velocity: 0.0 +smoothness_cost_acceleration: 1.0 +smoothness_cost_jerk: 0.0 +ridge_factor: 0.0 +use_pseudo_inverse: false +pseudo_inverse_ridge_factor: 1e-4 +joint_update_limit: 0.1 +collision_clearance: 0.2 +collision_threshold: 0.07 +use_stochastic_descent: true +enable_failure_recovery: false +max_recovery_attempts: 5 diff --git a/mycobot_280/mycobot_280jn_gripper_moveit/config/fake_controllers.yaml b/mycobot_280/mycobot_280jn_gripper_moveit/config/fake_controllers.yaml new file mode 100644 index 0000000..3866cfb --- /dev/null +++ b/mycobot_280/mycobot_280jn_gripper_moveit/config/fake_controllers.yaml @@ -0,0 +1,17 @@ +controller_list: + - name: fake_arm_group_controller + type: $(arg fake_execution_type) + joints: + - joint2_to_joint1 + - joint3_to_joint2 + - joint4_to_joint3 + - joint5_to_joint4 + - joint6_to_joint5 + - joint6output_to_joint6 + - name: fake_gripper_group_controller + type: $(arg fake_execution_type) + joints: + - gripper_controller +initial: # Define initial robot poses per group + - group: arm_group + pose: init_pose \ No newline at end of file diff --git a/mycobot_280/mycobot_280jn_gripper_moveit/config/firefighter.srdf b/mycobot_280/mycobot_280jn_gripper_moveit/config/firefighter.srdf new file mode 100644 index 0000000..97ff0df --- /dev/null +++ b/mycobot_280/mycobot_280jn_gripper_moveit/config/firefighter.srdf @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mycobot_280/mycobot_280jn_gripper_moveit/config/gazebo_controllers.yaml b/mycobot_280/mycobot_280jn_gripper_moveit/config/gazebo_controllers.yaml new file mode 100644 index 0000000..e4d2eb0 --- /dev/null +++ b/mycobot_280/mycobot_280jn_gripper_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_280/mycobot_280jn_gripper_moveit/config/gazebo_firefighter.urdf b/mycobot_280/mycobot_280jn_gripper_moveit/config/gazebo_firefighter.urdf new file mode 100644 index 0000000..db68850 --- /dev/null +++ b/mycobot_280/mycobot_280jn_gripper_moveit/config/gazebo_firefighter.urdf @@ -0,0 +1,527 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + 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_280/mycobot_280jn_gripper_moveit/config/joint_limits.yaml b/mycobot_280/mycobot_280jn_gripper_moveit/config/joint_limits.yaml new file mode 100644 index 0000000..17203f3 --- /dev/null +++ b/mycobot_280/mycobot_280jn_gripper_moveit/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: + gripper_controller: + has_velocity_limits: false + max_velocity: 0 + has_acceleration_limits: false + max_acceleration: 0 + joint2_to_joint1: + has_velocity_limits: false + max_velocity: 0 + has_acceleration_limits: false + max_acceleration: 0 + joint3_to_joint2: + has_velocity_limits: false + max_velocity: 0 + has_acceleration_limits: false + max_acceleration: 0 + joint4_to_joint3: + has_velocity_limits: false + max_velocity: 0 + has_acceleration_limits: false + max_acceleration: 0 + joint5_to_joint4: + has_velocity_limits: false + max_velocity: 0 + has_acceleration_limits: false + max_acceleration: 0 + joint6_to_joint5: + has_velocity_limits: false + max_velocity: 0 + has_acceleration_limits: false + max_acceleration: 0 + joint6output_to_joint6: + has_velocity_limits: false + max_velocity: 0 + has_acceleration_limits: false + max_acceleration: 0 \ No newline at end of file diff --git a/mycobot_280/mycobot_280jn_gripper_moveit/config/kinematics.yaml b/mycobot_280/mycobot_280jn_gripper_moveit/config/kinematics.yaml new file mode 100644 index 0000000..d49cb42 --- /dev/null +++ b/mycobot_280/mycobot_280jn_gripper_moveit/config/kinematics.yaml @@ -0,0 +1,14 @@ +arm_group: + kinematics_solver: kdl_kinematics_plugin/KDLKinematicsPlugin + kinematics_solver_search_resolution: 0.005 + kinematics_solver_timeout: 0.005 + goal_joint_tolerance: 0.0001 + goal_position_tolerance: 0.0001 + goal_orientation_tolerance: 0.001 +gripper_group: + kinematics_solver: kdl_kinematics_plugin/KDLKinematicsPlugin + kinematics_solver_search_resolution: 0.005 + kinematics_solver_timeout: 0.005 + 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_280/mycobot_280jn_gripper_moveit/config/ompl_planning.yaml b/mycobot_280/mycobot_280jn_gripper_moveit/config/ompl_planning.yaml new file mode 100644 index 0000000..14fe610 --- /dev/null +++ b/mycobot_280/mycobot_280jn_gripper_moveit/config/ompl_planning.yaml @@ -0,0 +1,224 @@ +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() + EST: + type: geometric::EST + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0 setup() + goal_bias: 0.05 # When close to goal select goal, with this probability. default: 0.05 + LBKPIECE: + type: geometric::LBKPIECE + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() + border_fraction: 0.9 # Fraction of time focused on boarder default: 0.9 + min_valid_path_fraction: 0.5 # Accept partially valid moves above fraction. default: 0.5 + BKPIECE: + type: geometric::BKPIECE + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() + border_fraction: 0.9 # Fraction of time focused on boarder default: 0.9 + failed_expansion_score_factor: 0.5 # When extending motion fails, scale score by factor. default: 0.5 + min_valid_path_fraction: 0.5 # Accept partially valid moves above fraction. default: 0.5 + KPIECE: + type: geometric::KPIECE + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() + goal_bias: 0.05 # When close to goal select goal, with this probability. default: 0.05 + border_fraction: 0.9 # Fraction of time focused on boarder default: 0.9 (0.0,1.] + failed_expansion_score_factor: 0.5 # When extending motion fails, scale score by factor. default: 0.5 + min_valid_path_fraction: 0.5 # Accept partially valid moves above fraction. default: 0.5 + RRT: + type: geometric::RRT + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() + goal_bias: 0.05 # When close to goal select goal, with this probability? default: 0.05 + RRTConnect: + type: geometric::RRTConnect + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() + RRTstar: + type: geometric::RRTstar + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() + goal_bias: 0.05 # When close to goal select goal, with this probability? default: 0.05 + delay_collision_checking: 1 # Stop collision checking as soon as C-free parent found. default 1 + TRRT: + type: geometric::TRRT + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() + goal_bias: 0.05 # When close to goal select goal, with this probability? default: 0.05 + max_states_failed: 10 # when to start increasing temp. default: 10 + 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 + 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 + max_nearest_neighbors: 10 # use k nearest neighbors. default: 10 + PRMstar: + type: geometric::PRMstar + FMT: + type: geometric::FMT + num_samples: 1000 # number of states that the planner should sample. default: 1000 + radius_multiplier: 1.1 # multiplier used for the nearest neighbors search radius. default: 1.1 + nearest_k: 1 # use Knearest strategy. default: 1 + cache_cc: 1 # use collision checking cache. default: 1 + heuristics: 0 # activate cost to go heuristics. default: 0 + extended_fmt: 1 # activate the extended FMT*: adding new samples if planner does not finish successfully. default: 1 + BFMT: + type: geometric::BFMT + num_samples: 1000 # number of states that the planner should sample. default: 1000 + radius_multiplier: 1.0 # multiplier used for the nearest neighbors search radius. default: 1.0 + nearest_k: 1 # use the Knearest strategy. default: 1 + balanced: 0 # exploration strategy: balanced true expands one tree every iteration. False will select the tree with lowest maximum cost to go. default: 1 + optimality: 1 # termination strategy: optimality true finishes when the best possible path is found. Otherwise, the algorithm will finish when the first feasible path is found. default: 1 + heuristics: 1 # activates cost to go heuristics. default: 1 + cache_cc: 1 # use the collision checking cache. default: 1 + extended_fmt: 1 # Activates the extended FMT*: adding new samples if planner does not finish successfully. default: 1 + PDST: + type: geometric::PDST + STRIDE: + type: geometric::STRIDE + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() + goal_bias: 0.05 # When close to goal select goal, with this probability. default: 0.05 + use_projected_distance: 0 # whether nearest neighbors are computed based on distances in a projection of the state rather distances in the state space itself. default: 0 + degree: 16 # desired degree of a node in the Geometric Near-neightbor Access Tree (GNAT). default: 16 + max_degree: 18 # max degree of a node in the GNAT. default: 12 + min_degree: 12 # min degree of a node in the GNAT. default: 12 + max_pts_per_leaf: 6 # max points per leaf in the GNAT. default: 6 + estimated_dimension: 0.0 # estimated dimension of the free space. default: 0.0 + min_valid_path_fraction: 0.2 # Accept partially valid moves above fraction. default: 0.2 + BiTRRT: + type: geometric::BiTRRT + 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 + 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 + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() + goal_bias: 0.05 # When close to goal select goal, with this probability. default: 0.05 + epsilon: 0.4 # optimality approximation factor. default: 0.4 + BiEST: + type: geometric::BiEST + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() + ProjEST: + type: geometric::ProjEST + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() + goal_bias: 0.05 # When close to goal select goal, with this probability. default: 0.05 + LazyPRM: + type: geometric::LazyPRM + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() + LazyPRMstar: + type: geometric::LazyPRMstar + SPARS: + type: geometric::SPARS + stretch_factor: 3.0 # roadmap spanner stretch factor. multiplicative upper bound on path quality. It does not make sense to make this parameter more than 3. default: 3.0 + 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: 1000 # maximum consecutive failure limit. default: 1000 + SPARStwo: + type: geometric::SPARStwo + stretch_factor: 3.0 # roadmap spanner stretch factor. multiplicative upper bound on path quality. It does not make sense to make this parameter more than 3. default: 3.0 + 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: + planner_configs: + - AnytimePathShortening + - SBL + - EST + - LBKPIECE + - BKPIECE + - KPIECE + - RRT + - RRTConnect + - RRTstar + - TRRT + - PRM + - PRMstar + - FMT + - BFMT + - PDST + - STRIDE + - BiTRRT + - LBTRRT + - BiEST + - ProjEST + - LazyPRM + - LazyPRMstar + - SPARS + - SPARStwo + - AITstar + - ABITstar + - BITstar +gripper_group: + planner_configs: + - AnytimePathShortening + - SBL + - EST + - LBKPIECE + - BKPIECE + - KPIECE + - RRT + - RRTConnect + - RRTstar + - TRRT + - PRM + - PRMstar + - FMT + - BFMT + - PDST + - STRIDE + - BiTRRT + - LBTRRT + - BiEST + - ProjEST + - LazyPRM + - LazyPRMstar + - SPARS + - SPARStwo + - AITstar + - ABITstar + - BITstar diff --git a/mycobot_280/mycobot_280jn_gripper_moveit/config/ros_controllers.yaml b/mycobot_280/mycobot_280jn_gripper_moveit/config/ros_controllers.yaml new file mode 100644 index 0000000..cb91357 --- /dev/null +++ b/mycobot_280/mycobot_280jn_gripper_moveit/config/ros_controllers.yaml @@ -0,0 +1,50 @@ +arm_group_controller: + type: effort_controllers/JointTrajectoryController + joints: + - joint2_to_joint1 + - joint3_to_joint2 + - joint4_to_joint3 + - joint5_to_joint4 + - joint6_to_joint5 + - joint6output_to_joint6 + gains: + 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 + joint6output_to_joint6: + p: 100 + d: 1 + i: 1 + i_clamp: 1 +gripper_group_controller: + type: effort_controllers/JointTrajectoryController + joints: + - gripper_controller + gains: + gripper_controller: + p: 100 + d: 1 + i: 1 + i_clamp: 1 \ No newline at end of file diff --git a/mycobot_280/mycobot_280jn_gripper_moveit/config/sensors_3d.yaml b/mycobot_280/mycobot_280jn_gripper_moveit/config/sensors_3d.yaml new file mode 100644 index 0000000..51010a3 --- /dev/null +++ b/mycobot_280/mycobot_280jn_gripper_moveit/config/sensors_3d.yaml @@ -0,0 +1,2 @@ +sensors: + [] \ No newline at end of file diff --git a/mycobot_280/mycobot_280jn_gripper_moveit/config/simple_moveit_controllers.yaml b/mycobot_280/mycobot_280jn_gripper_moveit/config/simple_moveit_controllers.yaml new file mode 100644 index 0000000..c8b8662 --- /dev/null +++ b/mycobot_280/mycobot_280jn_gripper_moveit/config/simple_moveit_controllers.yaml @@ -0,0 +1,18 @@ +controller_list: + - name: arm_group_controller + action_ns: follow_joint_trajectory + type: FollowJointTrajectory + default: True + joints: + - joint2_to_joint1 + - joint3_to_joint2 + - joint4_to_joint3 + - joint5_to_joint4 + - joint6_to_joint5 + - joint6output_to_joint6 + - name: gripper_group_controller + action_ns: follow_joint_trajectory + type: FollowJointTrajectory + default: True + joints: + - gripper_controller \ No newline at end of file diff --git a/mycobot_280/mycobot_280jn_gripper_moveit/config/stomp_planning.yaml b/mycobot_280/mycobot_280jn_gripper_moveit/config/stomp_planning.yaml new file mode 100644 index 0000000..90716ca --- /dev/null +++ b/mycobot_280/mycobot_280jn_gripper_moveit/config/stomp_planning.yaml @@ -0,0 +1,78 @@ +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 +stomp/gripper_group: + group_name: gripper_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] + 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_280/mycobot_280jn_gripper_moveit/launch/chomp_planning_pipeline.launch.xml b/mycobot_280/mycobot_280jn_gripper_moveit/launch/chomp_planning_pipeline.launch.xml new file mode 100644 index 0000000..42748e2 --- /dev/null +++ b/mycobot_280/mycobot_280jn_gripper_moveit/launch/chomp_planning_pipeline.launch.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + diff --git a/mycobot_280/mycobot_280jn_gripper_moveit/launch/default_warehouse_db.launch b/mycobot_280/mycobot_280jn_gripper_moveit/launch/default_warehouse_db.launch new file mode 100644 index 0000000..f2e54fc --- /dev/null +++ b/mycobot_280/mycobot_280jn_gripper_moveit/launch/default_warehouse_db.launch @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/mycobot_280/mycobot_280jn_gripper_moveit/launch/demo.launch b/mycobot_280/mycobot_280jn_gripper_moveit/launch/demo.launch new file mode 100644 index 0000000..a9fbe69 --- /dev/null +++ b/mycobot_280/mycobot_280jn_gripper_moveit/launch/demo.launch @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [move_group/fake_controller_joint_states] + + + + [move_group/fake_controller_joint_states] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mycobot_280/mycobot_280jn_gripper_moveit/launch/demo_gazebo.launch b/mycobot_280/mycobot_280jn_gripper_moveit/launch/demo_gazebo.launch new file mode 100644 index 0000000..0ef8f95 --- /dev/null +++ b/mycobot_280/mycobot_280jn_gripper_moveit/launch/demo_gazebo.launch @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/mycobot_280/mycobot_280jn_gripper_moveit/launch/fake_moveit_controller_manager.launch.xml b/mycobot_280/mycobot_280jn_gripper_moveit/launch/fake_moveit_controller_manager.launch.xml new file mode 100644 index 0000000..9a0ac2a --- /dev/null +++ b/mycobot_280/mycobot_280jn_gripper_moveit/launch/fake_moveit_controller_manager.launch.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/mycobot_280/mycobot_280jn_gripper_moveit/launch/firefighter_moveit_sensor_manager.launch.xml b/mycobot_280/mycobot_280jn_gripper_moveit/launch/firefighter_moveit_sensor_manager.launch.xml new file mode 100644 index 0000000..5d02698 --- /dev/null +++ b/mycobot_280/mycobot_280jn_gripper_moveit/launch/firefighter_moveit_sensor_manager.launch.xml @@ -0,0 +1,3 @@ + + + diff --git a/mycobot_280/mycobot_280jn_gripper_moveit/launch/gazebo.launch b/mycobot_280/mycobot_280jn_gripper_moveit/launch/gazebo.launch new file mode 100644 index 0000000..c8c924a --- /dev/null +++ b/mycobot_280/mycobot_280jn_gripper_moveit/launch/gazebo.launch @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mycobot_280/mycobot_280jn_gripper_moveit/launch/joystick_control.launch b/mycobot_280/mycobot_280jn_gripper_moveit/launch/joystick_control.launch new file mode 100644 index 0000000..9411f6e --- /dev/null +++ b/mycobot_280/mycobot_280jn_gripper_moveit/launch/joystick_control.launch @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/mycobot_280/mycobot_280jn_gripper_moveit/launch/move_group.launch b/mycobot_280/mycobot_280jn_gripper_moveit/launch/move_group.launch new file mode 100644 index 0000000..2330bcb --- /dev/null +++ b/mycobot_280/mycobot_280jn_gripper_moveit/launch/move_group.launch @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mycobot_280/mycobot_280jn_gripper_moveit/launch/moveit.rviz b/mycobot_280/mycobot_280jn_gripper_moveit/launch/moveit.rviz new file mode 100644 index 0000000..706652c --- /dev/null +++ b/mycobot_280/mycobot_280jn_gripper_moveit/launch/moveit.rviz @@ -0,0 +1,329 @@ +Panels: + - Class: rviz/Displays + Help Height: 84 + Name: Displays + Property Tree Widget: + Expanded: + - /MotionPlanning1 + - /MotionPlanning1/Planning Request1 + - /MotionPlanning1/Planned Path1 + Splitter Ratio: 0.5 + Tree Height: 209 + - Class: rviz/Help + Name: Help + - Class: rviz/Views + Expanded: + - /Current View1 + Name: Views + Splitter Ratio: 0.5 +Preferences: + PromptSaveOnExit: true +Toolbars: + toolButtonStyle: 2 +Visualization Manager: + Class: "" + Displays: + - Alpha: 0.5 + Cell Size: 1 + Class: rviz/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 + Expand Joint Details: false + Expand Link Details: false + Expand Tree: false + Link Tree Style: Links in Alphabetic Order + g_base: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + gripper_base: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + gripper_left1: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + gripper_left2: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + gripper_left3: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + gripper_right1: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + gripper_right2: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + gripper_right3: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + joint1: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + joint2: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + joint3: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + joint4: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + joint5: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + joint6: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + joint6_flange: + 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: 0.05 s + Trail Step Size: 1 + Trajectory Topic: move_group/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.11999999731779099 + Joint Violation Color: 255; 0; 255 + Planning Group: arm_group + Query Goal State: true + Query Start State: false + Show Workspace: false + Start State Alpha: 1 + Start State Color: 0; 255; 0 + Planning Scene Topic: move_group/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 + Expand Joint Details: false + Expand Link Details: false + Expand Tree: false + Link Tree Style: Links in Alphabetic Order + g_base: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + gripper_base: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + gripper_left1: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + gripper_left2: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + gripper_left3: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + gripper_right1: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + gripper_right2: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + gripper_right3: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + joint1: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + joint2: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + joint3: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + joint4: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + joint5: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + joint6: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + joint6_flange: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + Robot Alpha: 0.5 + Show Robot Collision: false + Show Robot Visual: true + Value: true + Velocity_Scaling_Factor: 0.1 + Enabled: true + Global Options: + Background Color: 48; 48; 48 + Default Light: true + Fixed Frame: g_base + Frame Rate: 30 + Name: root + Tools: + - Class: rviz/Interact + Hide Inactive Objects: true + - Class: rviz/MoveCamera + - Class: rviz/Select + Value: true + Views: + Current: + Class: rviz/Orbit + Distance: 2 + Enable Stereo Rendering: + Stereo Eye Separation: 0.05999999865889549 + Stereo Focal Distance: 1 + Swap Stereo Eyes: false + Value: false + Field of View: 0.75 + Focal Point: + X: -0.10000000149011612 + Y: 0.25 + Z: 0.30000001192092896 + Focal Shape Fixed Size: true + Focal Shape Size: 0.05000000074505806 + Invert Z Axis: false + Name: Current View + Near Clip Distance: 0.009999999776482582 + Pitch: 0.21000005304813385 + Target Frame: g_base + Yaw: 5.264951229095459 + Saved: ~ +Window Geometry: + Displays: + collapsed: false + Height: 906 + Help: + collapsed: false + Hide Left Dock: false + Hide Right Dock: false + MotionPlanning: + collapsed: false + MotionPlanning - Trajectory Slider: + collapsed: false + QMainWindow State: 000000ff00000000fd0000000100000000000001f300000330fc0200000007fb000000100044006900730070006c006100790073010000003d00000162000000c900fffffffb0000000800480065006c00700000000342000000bb0000006e00fffffffb0000000a00560069006500770073000000010c000000a4000000a400fffffffb0000000c00430061006d00650072006100000002ff000001610000000000000000fb0000001e004d006f00740069006f006e00200050006c0061006e006e0069006e00670100000374000001890000000000000000fb00000044004d006f00740069006f006e0050006c0061006e006e0069006e00670020002d0020005400720061006a006500630074006f0072007900200053006c006900640065007201000001a5000000410000004100fffffffb0000001c004d006f00740069006f006e0050006c0061006e006e0069006e006701000001ec000001810000017d00ffffff0000053f0000033000000001000000020000000100000002fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 + Views: + collapsed: false + Width: 1848 + X: 72 + Y: 27 diff --git a/mycobot_280/mycobot_280jn_gripper_moveit/launch/moveit_rviz.launch b/mycobot_280/mycobot_280jn_gripper_moveit/launch/moveit_rviz.launch new file mode 100644 index 0000000..a4605c0 --- /dev/null +++ b/mycobot_280/mycobot_280jn_gripper_moveit/launch/moveit_rviz.launch @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + diff --git a/mycobot_280/mycobot_280jn_gripper_moveit/launch/mycobot_moveit.launch b/mycobot_280/mycobot_280jn_gripper_moveit/launch/mycobot_moveit.launch new file mode 100644 index 0000000..a9fbe69 --- /dev/null +++ b/mycobot_280/mycobot_280jn_gripper_moveit/launch/mycobot_moveit.launch @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [move_group/fake_controller_joint_states] + + + + [move_group/fake_controller_joint_states] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mycobot_280/mycobot_280jn_gripper_moveit/launch/ompl-chomp_planning_pipeline.launch.xml b/mycobot_280/mycobot_280jn_gripper_moveit/launch/ompl-chomp_planning_pipeline.launch.xml new file mode 100644 index 0000000..89c4c22 --- /dev/null +++ b/mycobot_280/mycobot_280jn_gripper_moveit/launch/ompl-chomp_planning_pipeline.launch.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + diff --git a/mycobot_280/mycobot_280jn_gripper_moveit/launch/ompl_planning_pipeline.launch.xml b/mycobot_280/mycobot_280jn_gripper_moveit/launch/ompl_planning_pipeline.launch.xml new file mode 100644 index 0000000..74d9343 --- /dev/null +++ b/mycobot_280/mycobot_280jn_gripper_moveit/launch/ompl_planning_pipeline.launch.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + diff --git a/mycobot_280/mycobot_280jn_gripper_moveit/launch/pilz_industrial_motion_planner_planning_pipeline.launch.xml b/mycobot_280/mycobot_280jn_gripper_moveit/launch/pilz_industrial_motion_planner_planning_pipeline.launch.xml new file mode 100644 index 0000000..c7c4cf5 --- /dev/null +++ b/mycobot_280/mycobot_280jn_gripper_moveit/launch/pilz_industrial_motion_planner_planning_pipeline.launch.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + diff --git a/mycobot_280/mycobot_280jn_gripper_moveit/launch/planning_context.launch b/mycobot_280/mycobot_280jn_gripper_moveit/launch/planning_context.launch new file mode 100644 index 0000000..304b404 --- /dev/null +++ b/mycobot_280/mycobot_280jn_gripper_moveit/launch/planning_context.launch @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mycobot_280/mycobot_280jn_gripper_moveit/launch/planning_pipeline.launch.xml b/mycobot_280/mycobot_280jn_gripper_moveit/launch/planning_pipeline.launch.xml new file mode 100644 index 0000000..4b4d0d6 --- /dev/null +++ b/mycobot_280/mycobot_280jn_gripper_moveit/launch/planning_pipeline.launch.xml @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/mycobot_280/mycobot_280jn_gripper_moveit/launch/ros_control_moveit_controller_manager.launch.xml b/mycobot_280/mycobot_280jn_gripper_moveit/launch/ros_control_moveit_controller_manager.launch.xml new file mode 100644 index 0000000..9ebc91c --- /dev/null +++ b/mycobot_280/mycobot_280jn_gripper_moveit/launch/ros_control_moveit_controller_manager.launch.xml @@ -0,0 +1,4 @@ + + + + diff --git a/mycobot_280/mycobot_280jn_gripper_moveit/launch/ros_controllers.launch b/mycobot_280/mycobot_280jn_gripper_moveit/launch/ros_controllers.launch new file mode 100644 index 0000000..0772b67 --- /dev/null +++ b/mycobot_280/mycobot_280jn_gripper_moveit/launch/ros_controllers.launch @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/mycobot_280/mycobot_280jn_gripper_moveit/launch/run_benchmark_ompl.launch b/mycobot_280/mycobot_280jn_gripper_moveit/launch/run_benchmark_ompl.launch new file mode 100644 index 0000000..462a4f6 --- /dev/null +++ b/mycobot_280/mycobot_280jn_gripper_moveit/launch/run_benchmark_ompl.launch @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/mycobot_280/mycobot_280jn_gripper_moveit/launch/sensor_manager.launch.xml b/mycobot_280/mycobot_280jn_gripper_moveit/launch/sensor_manager.launch.xml new file mode 100644 index 0000000..e82147c --- /dev/null +++ b/mycobot_280/mycobot_280jn_gripper_moveit/launch/sensor_manager.launch.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/mycobot_280/mycobot_280jn_gripper_moveit/launch/setup_assistant.launch b/mycobot_280/mycobot_280jn_gripper_moveit/launch/setup_assistant.launch new file mode 100644 index 0000000..29f5a82 --- /dev/null +++ b/mycobot_280/mycobot_280jn_gripper_moveit/launch/setup_assistant.launch @@ -0,0 +1,16 @@ + + + + + + + + + + + + diff --git a/mycobot_280/mycobot_280jn_gripper_moveit/launch/simple_moveit_controller_manager.launch.xml b/mycobot_280/mycobot_280jn_gripper_moveit/launch/simple_moveit_controller_manager.launch.xml new file mode 100644 index 0000000..fbfa885 --- /dev/null +++ b/mycobot_280/mycobot_280jn_gripper_moveit/launch/simple_moveit_controller_manager.launch.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/mycobot_280/mycobot_280jn_gripper_moveit/launch/stomp_planning_pipeline.launch.xml b/mycobot_280/mycobot_280jn_gripper_moveit/launch/stomp_planning_pipeline.launch.xml new file mode 100644 index 0000000..c138804 --- /dev/null +++ b/mycobot_280/mycobot_280jn_gripper_moveit/launch/stomp_planning_pipeline.launch.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + diff --git a/mycobot_280/mycobot_280jn_gripper_moveit/launch/trajectory_execution.launch.xml b/mycobot_280/mycobot_280jn_gripper_moveit/launch/trajectory_execution.launch.xml new file mode 100644 index 0000000..20c3dfc --- /dev/null +++ b/mycobot_280/mycobot_280jn_gripper_moveit/launch/trajectory_execution.launch.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/mycobot_280/mycobot_280jn_gripper_moveit/launch/warehouse.launch b/mycobot_280/mycobot_280jn_gripper_moveit/launch/warehouse.launch new file mode 100644 index 0000000..0712e67 --- /dev/null +++ b/mycobot_280/mycobot_280jn_gripper_moveit/launch/warehouse.launch @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/mycobot_280/mycobot_280jn_gripper_moveit/launch/warehouse_settings.launch.xml b/mycobot_280/mycobot_280jn_gripper_moveit/launch/warehouse_settings.launch.xml new file mode 100644 index 0000000..e473b08 --- /dev/null +++ b/mycobot_280/mycobot_280jn_gripper_moveit/launch/warehouse_settings.launch.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/mycobot_280/mycobot_280jn_gripper_moveit/package.xml b/mycobot_280/mycobot_280jn_gripper_moveit/package.xml new file mode 100644 index 0000000..5d4566d --- /dev/null +++ b/mycobot_280/mycobot_280jn_gripper_moveit/package.xml @@ -0,0 +1,41 @@ + + + mycobot_280jn_gripper_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 + + wwj + wwj + + BSD + + http://moveit.ros.org/ + https://github.com/ros-planning/moveit/issues + https://github.com/ros-planning/moveit + + catkin + + moveit_ros_move_group + moveit_fake_controller_manager + moveit_kinematics + 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 + + + + + + mycobot_description + + + diff --git a/mycobot_280/mycobot_280jn_gripper_moveit/scripts/sync_plan.py b/mycobot_280/mycobot_280jn_gripper_moveit/scripts/sync_plan.py new file mode 100644 index 0000000..d789797 --- /dev/null +++ b/mycobot_280/mycobot_280jn_gripper_moveit/scripts/sync_plan.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python3 +# encoding:utf-8 +"""[summary] +This file obtains the joint angle of the manipulator in ROS, +and then sends it directly to the real manipulator using `pymycobot` API. +This file is [slider_control.launch] related script. +Passable parameters: + port: serial prot string. Defaults is '/dev/ttyTHS1' + baud: serial prot baudrate. Defaults is 1000000. +""" +import time +import math +import rospy +from sensor_msgs.msg import JointState + +from pymycobot.mycobot import MyCobot + + +mc = None + + +def callback(data): + # rospy.loginfo(rospy.get_caller_id() + "%s", data.position) + data_list = [] + for index, value in enumerate(data.position): + data_list.append(round(value,3)) + # print(data_list[6:]) + + data_list = data_list[:7] + print("radians:%s"%data_list[:6]) + mc.send_radians(data_list[:6], 25) + gripper_value = int(abs(-0.7-data_list[6])* 117) + print("gripper_value:%s"%gripper_value) + mc.set_gripper_value(gripper_value, 80, 1) + + +def listener(): + global mc + rospy.init_node("control_slider", anonymous=True) + + rospy.Subscriber("joint_states", JointState, callback) + port = rospy.get_param("~port", "/dev/ttyTHS1") + baud = rospy.get_param("~baud", 1000000) + print(port, baud) + mc = MyCobot(port, baud) + time.sleep(0.05) + mc.set_fresh_mode(1) + time.sleep(0.05) + + # spin() simply keeps python from exiting until this node is stopped + # spin()只是阻止python退出,直到该节点停止 + print("spin ...") + rospy.spin() + + +if __name__ == "__main__": + listener() diff --git a/mycobot_280/mycobot_280jn_moveit/CMakeLists.txt b/mycobot_280/mycobot_280jn_moveit/CMakeLists.txt index 62f56f9..fc670d1 100644 --- a/mycobot_280/mycobot_280jn_moveit/CMakeLists.txt +++ b/mycobot_280/mycobot_280jn_moveit/CMakeLists.txt @@ -5,6 +5,11 @@ find_package(catkin REQUIRED) catkin_package() +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})