mirror of
https://github.com/elephantrobotics/mycobot_ros.git
synced 2026-07-05 19:47:04 +00:00
优化630 moveit包-修复rviz添加地面后无法运动规划问题,更新URDF模型初始姿态
This commit is contained in:
parent
7e8e36088f
commit
fbd15bcc56
43 changed files with 978 additions and 319 deletions
175
mycobot_description/urdf/mycobot_pro_630/mycobot_pro_630_moveit.urdf
Executable file
175
mycobot_description/urdf/mycobot_pro_630/mycobot_pro_630_moveit.urdf
Executable file
|
|
@ -0,0 +1,175 @@
|
|||
<?xml version="1.0"?>
|
||||
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="firefighter" >
|
||||
|
||||
<xacro:property name="width" value=".2" />
|
||||
|
||||
|
||||
<link name="base">
|
||||
<visual>
|
||||
<geometry>
|
||||
<mesh filename="package://mycobot_description/urdf/mycobot_pro_630/base.dae"/>
|
||||
</geometry>
|
||||
<origin xyz = "0 0 0 " rpy = " 1.5707 0 0"/>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin xyz = "0 0 0.04 " rpy = " 0 0 1.5708"/>
|
||||
<geometry>
|
||||
<cylinder length="0.08" radius="0.06"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
|
||||
<link name="link1">
|
||||
<visual>
|
||||
<geometry>
|
||||
<mesh filename="package://mycobot_description/urdf/mycobot_pro_630/link1.dae"/>
|
||||
</geometry>
|
||||
<origin xyz = "0 0 -0.06 " rpy = "0 0 3.1415926"/>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin xyz = "0.0 0.0 -0.02 " rpy = " 0 0 1.5708"/>
|
||||
<geometry>
|
||||
<cylinder length="0.06" radius="0.03"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
|
||||
|
||||
<link name="link2">
|
||||
<visual>
|
||||
<geometry>
|
||||
<mesh filename="package://mycobot_description/urdf/mycobot_pro_630/link2.dae"/>
|
||||
</geometry>
|
||||
<origin xyz = "0 0 -0.0446 " rpy = " 0 -1.5707 -1.5707"/>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin xyz = "0.14 0 -0.08 " rpy = " 0 1.5708 0"/>
|
||||
<geometry>
|
||||
<cylinder length="0.28" radius="0.028"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
|
||||
|
||||
<link name="link3">
|
||||
<visual>
|
||||
<geometry>
|
||||
<mesh filename="package://mycobot_description/urdf/mycobot_pro_630/link3.dae"/>
|
||||
</geometry>
|
||||
<origin xyz = "0 0 -0.0444 " rpy = " 0 1.5707 -1.5707"/>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin xyz = "0.13 0.0 0.02 " rpy = "0 1.5708 0"/>
|
||||
<geometry>
|
||||
<cylinder length="0.28" radius="0.024"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
|
||||
|
||||
<link name="link4">
|
||||
<visual>
|
||||
<geometry>
|
||||
<mesh filename="package://mycobot_description/urdf/mycobot_pro_630/link4.dae"/>
|
||||
</geometry>
|
||||
<origin xyz = "0 0 0.041 " rpy = " -1.5707 0 1.5707"/>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin xyz = "0.0 -0.01 0.007" rpy = " 1.5708 1.5708 0"/>
|
||||
<geometry>
|
||||
<cylinder length="0.05" radius="0.024"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
|
||||
|
||||
<link name="link5">
|
||||
<visual>
|
||||
<geometry>
|
||||
<mesh filename="package://mycobot_description/urdf/mycobot_pro_630/link5.dae"/>
|
||||
</geometry>
|
||||
<origin xyz = "-0.043 0 0 " rpy = " 0 -1.5707 3.1415926"/>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin xyz = "0.0 0.0 -0.015 " rpy = " 0 0 -1.5708"/>
|
||||
<geometry>
|
||||
<cylinder length="0.05" radius="0.028"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
|
||||
<link name="link6">
|
||||
<visual>
|
||||
<geometry>
|
||||
<mesh filename="package://mycobot_description/urdf/mycobot_pro_630/link6.dae"/>
|
||||
</geometry>
|
||||
<!-- <material name = "grey">
|
||||
<color rgba = "0.5 0.5 0.5 1"/>
|
||||
</material> -->
|
||||
<origin xyz = "0.01 0 0" rpy = " 0 1.5707 0"/>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin xyz = "0.006 0.0 -0.0 " rpy = " 0 1.5708 0"/>
|
||||
<geometry>
|
||||
<cylinder length="0.006" radius="0.026"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
|
||||
|
||||
<joint name="joint1_to_base" type="revolute">
|
||||
<axis xyz="0 0 1"/>
|
||||
<limit effort = "1000.0" lower = "-3.14" upper = "3.14159" velocity = "0"/>
|
||||
<parent link="base"/>
|
||||
<child link="link1"/>
|
||||
<origin xyz= "0 0 0.22934" rpy = "0 0 0"/>
|
||||
</joint>
|
||||
|
||||
|
||||
<joint name="joint2_to_joint1" type="revolute">
|
||||
<axis xyz="0 0 -1"/>
|
||||
<!-- <limit effort = "1000.0" lower = "-4.71" upper = "1.5707" velocity = "0"/> -->
|
||||
<limit effort = "1000.0" lower = "-3.14159" upper = "3.14159" velocity = "0"/>
|
||||
<parent link="link1"/>
|
||||
<child link="link2"/>
|
||||
<origin xyz= "0 0 0" rpy = "1.5707 -1.5708 0"/>
|
||||
</joint>
|
||||
|
||||
|
||||
<joint name="joint3_to_joint2" type="revolute">
|
||||
<axis xyz=" 0 0 -1"/>
|
||||
<limit effort = "1000.0" lower = "-2.61" upper = "2.618" velocity = "0"/>
|
||||
<parent link="link2"/>
|
||||
<child link="link3"/>
|
||||
<origin xyz= "0.27 0 0 " rpy = "0 0 0"/>
|
||||
</joint>
|
||||
|
||||
<joint name="joint4_to_joint3" type="revolute">
|
||||
<axis xyz=" 0 0 -1"/>
|
||||
<!-- <limit effort = "1000.0" lower = "-4.53" upper = "1.3962" velocity = "0"/> -->
|
||||
<limit effort = "1000.0" lower = "-2.9670" upper = "2.9670" velocity = "0"/>
|
||||
<parent link="link3"/>
|
||||
<child link="link4"/>
|
||||
<origin xyz= "0.267 0 -0.0745" rpy = "0 0 1.5708"/>
|
||||
</joint>
|
||||
|
||||
<joint name="joint5_to_joint4" type="revolute">
|
||||
<axis xyz="0 0 1"/>
|
||||
<limit effort = "1000.0" lower = "-2.93" upper = "2.9321" velocity = "0"/>
|
||||
<parent link="link4"/>
|
||||
<child link="link5"/>
|
||||
<origin xyz= "0 -0.095 0.002" rpy = "1.5707 -1.5707 0"/>
|
||||
</joint>
|
||||
|
||||
<joint name="joint6_to_joint5" type="revolute">
|
||||
<axis xyz="-1 0 0"/>
|
||||
<limit effort = "1000.0" lower = "-3.03" upper = "3.0368" velocity = "0"/>
|
||||
<parent link="link5"/>
|
||||
<child link="link6"/>
|
||||
<origin xyz= "-0.054 0 0" rpy = "-1.5707 0 0 "/>
|
||||
</joint>
|
||||
|
||||
|
||||
|
||||
</robot>
|
||||
|
||||
|
|
@ -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
|
||||
generated_timestamp: 1736239899
|
||||
|
|
@ -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})
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
cartesian_limits:
|
||||
max_trans_vel: 1
|
||||
max_trans_acc: 2.25
|
||||
max_trans_dec: -5
|
||||
max_rot_vel: 1.57
|
||||
|
|
@ -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
|
||||
enable_failure_recovery: false
|
||||
max_recovery_attempts: 5
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
controller_list:
|
||||
- name: fake_arm_group_controller
|
||||
type: $(arg fake_execution_type)
|
||||
joints:
|
||||
- joint1_to_base
|
||||
- joint2_to_joint1
|
||||
|
|
@ -7,3 +8,6 @@ controller_list:
|
|||
- joint4_to_joint3
|
||||
- joint5_to_joint4
|
||||
- joint6_to_joint5
|
||||
initial: # Define initial robot poses per group
|
||||
- group: arm_group
|
||||
pose: init_pose
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
<?xml version="1.0" ?>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--This does not replace URDF, and is not an extension of URDF.
|
||||
This is a format for representing semantic information about the robot structure.
|
||||
A URDF file must exist for this robot as well, where the joints and the links that are referenced are defined
|
||||
|
|
@ -20,33 +20,22 @@
|
|||
<!--GROUP STATES: Purpose: Define a named state for a particular group, in terms of joint values. This is useful to define states like 'folded arms'-->
|
||||
<group_state name="init_pose" group="arm_group">
|
||||
<joint name="joint1_to_base" value="0"/>
|
||||
<joint name="joint2_to_joint1" value="-1.5708" />
|
||||
<joint name="joint2_to_joint1" value="0"/>
|
||||
<joint name="joint3_to_joint2" value="0"/>
|
||||
<joint name="joint4_to_joint3" value="-1.5708" />
|
||||
<joint name="joint4_to_joint3" value="0"/>
|
||||
<joint name="joint5_to_joint4" value="0"/>
|
||||
<joint name="joint6_to_joint5" value="0"/>
|
||||
</group_state>
|
||||
<!--VIRTUAL JOINT: Purpose: this element defines a virtual joint between a robot link and an external frame of reference (considered fixed with respect to the robot)-->
|
||||
|
||||
<!-- <virtual_joint name="vitual_joint" type="fixed" parent_frame="basic" child_link="joint1" /> -->
|
||||
<virtual_joint name="vitual_joint" type="fixed" parent_frame="basic" child_link="base"/>
|
||||
|
||||
<!--DISABLE COLLISIONS: By default it is assumed that any link of the robot could potentially come into collision with any other link in the robot. This tag disables collision checking between a specified pair of links. -->
|
||||
<disable_collisions link1="base" link2="link1" reason="Adjacent"/>
|
||||
<disable_collisions link1="base" link2="link2" reason="Never" />
|
||||
<disable_collisions link1="base" link2="link3" reason="Never" />
|
||||
<disable_collisions link1="base" link2="link4" reason="Never" />
|
||||
<disable_collisions link1="base" link2="link5" reason="Never" />
|
||||
<disable_collisions link1="base" link2="link6" reason="Never" />
|
||||
<disable_collisions link1="link1" link2="link2" reason="Adjacent"/>
|
||||
<disable_collisions link1="link1" link2="link3" reason="Never"/>
|
||||
<disable_collisions link1="link1" link2="link4" reason="Never"/>
|
||||
<disable_collisions link1="link1" link2="link5" reason="Never"/>
|
||||
<disable_collisions link1="link1" link2="link6" reason="Never" />
|
||||
<disable_collisions link1="link2" link2="link3" reason="Adjacent"/>
|
||||
<disable_collisions link1="link2" link2="link4" reason="Never"/>
|
||||
<disable_collisions link1="link2" link2="link5" reason="Never" />
|
||||
<disable_collisions link1="link2" link2="link6" reason="Never" />
|
||||
<disable_collisions link1="link3" link2="link4" reason="Adjacent"/>
|
||||
<disable_collisions link1="link3" link2="link5" reason="Never"/>
|
||||
<disable_collisions link1="link3" link2="link6" reason="Never"/>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,4 @@
|
|||
# Publish joint_states
|
||||
joint_state_controller:
|
||||
type: joint_state_controller/JointStateController
|
||||
publish_rate: 50
|
||||
250
mycobot_pro/mycobot_630_moveit/config/gazebo_firefighter.urdf
Normal file
250
mycobot_pro/mycobot_630_moveit/config/gazebo_firefighter.urdf
Normal file
|
|
@ -0,0 +1,250 @@
|
|||
<?xml version="1.0" ?>
|
||||
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="firefighter">
|
||||
<xacro:property name="width" value=".2" />
|
||||
<link name="base">
|
||||
<visual>
|
||||
<geometry>
|
||||
<mesh filename="package://mycobot_description/urdf/mycobot_pro_630/base.dae" />
|
||||
</geometry>
|
||||
<origin xyz="0 0 0 " rpy=" 1.5707 0 0" />
|
||||
</visual>
|
||||
<collision>
|
||||
<origin xyz="0 0 0.04 " rpy=" 0 0 1.5708" />
|
||||
<geometry>
|
||||
<cylinder length="0.08" radius="0.06" />
|
||||
</geometry>
|
||||
</collision>
|
||||
<inertial>
|
||||
<mass value="0.1" />
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<inertia ixx="0.03" iyy="0.03" izz="0.03" ixy="0.0" ixz="0.0" iyz="0.0" />
|
||||
</inertial>
|
||||
</link>
|
||||
<link name="link1">
|
||||
<visual>
|
||||
<geometry>
|
||||
<mesh filename="package://mycobot_description/urdf/mycobot_pro_630/link1.dae" />
|
||||
</geometry>
|
||||
<origin xyz="0 0 -0.06 " rpy="0 0 3.1415926" />
|
||||
</visual>
|
||||
<collision>
|
||||
<origin xyz="0.0 0.0 -0.02 " rpy=" 0 0 1.5708" />
|
||||
<geometry>
|
||||
<cylinder length="0.06" radius="0.03" />
|
||||
</geometry>
|
||||
</collision>
|
||||
<inertial>
|
||||
<mass value="0.1" />
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<inertia ixx="0.03" iyy="0.03" izz="0.03" ixy="0.0" ixz="0.0" iyz="0.0" />
|
||||
</inertial>
|
||||
</link>
|
||||
<link name="link2">
|
||||
<visual>
|
||||
<geometry>
|
||||
<mesh filename="package://mycobot_description/urdf/mycobot_pro_630/link2.dae" />
|
||||
</geometry>
|
||||
<origin xyz="0 0 -0.0446 " rpy=" 0 -1.5707 -1.5707" />
|
||||
</visual>
|
||||
<collision>
|
||||
<origin xyz="0.14 0 -0.08 " rpy=" 0 1.5708 0" />
|
||||
<geometry>
|
||||
<cylinder length="0.28" radius="0.028" />
|
||||
</geometry>
|
||||
</collision>
|
||||
<inertial>
|
||||
<mass value="0.1" />
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<inertia ixx="0.03" iyy="0.03" izz="0.03" ixy="0.0" ixz="0.0" iyz="0.0" />
|
||||
</inertial>
|
||||
</link>
|
||||
<link name="link3">
|
||||
<visual>
|
||||
<geometry>
|
||||
<mesh filename="package://mycobot_description/urdf/mycobot_pro_630/link3.dae" />
|
||||
</geometry>
|
||||
<origin xyz="0 0 -0.0444 " rpy=" 0 1.5707 -1.5707" />
|
||||
</visual>
|
||||
<collision>
|
||||
<origin xyz="0.13 0.0 0.02 " rpy="0 1.5708 0" />
|
||||
<geometry>
|
||||
<cylinder length="0.28" radius="0.024" />
|
||||
</geometry>
|
||||
</collision>
|
||||
<inertial>
|
||||
<mass value="0.1" />
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<inertia ixx="0.03" iyy="0.03" izz="0.03" ixy="0.0" ixz="0.0" iyz="0.0" />
|
||||
</inertial>
|
||||
</link>
|
||||
<link name="link4">
|
||||
<visual>
|
||||
<geometry>
|
||||
<mesh filename="package://mycobot_description/urdf/mycobot_pro_630/link4.dae" />
|
||||
</geometry>
|
||||
<origin xyz="0 0 0.041 " rpy=" -1.5707 0 1.5707" />
|
||||
</visual>
|
||||
<collision>
|
||||
<origin xyz="0.0 -0.01 0.007" rpy=" 1.5708 1.5708 0" />
|
||||
<geometry>
|
||||
<cylinder length="0.05" radius="0.024" />
|
||||
</geometry>
|
||||
</collision>
|
||||
<inertial>
|
||||
<mass value="0.1" />
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<inertia ixx="0.03" iyy="0.03" izz="0.03" ixy="0.0" ixz="0.0" iyz="0.0" />
|
||||
</inertial>
|
||||
</link>
|
||||
<link name="link5">
|
||||
<visual>
|
||||
<geometry>
|
||||
<mesh filename="package://mycobot_description/urdf/mycobot_pro_630/link5.dae" />
|
||||
</geometry>
|
||||
<origin xyz="-0.043 0 0 " rpy=" 0 -1.5707 3.1415926" />
|
||||
</visual>
|
||||
<collision>
|
||||
<origin xyz="0.0 0.0 -0.015 " rpy=" 0 0 -1.5708" />
|
||||
<geometry>
|
||||
<cylinder length="0.05" radius="0.028" />
|
||||
</geometry>
|
||||
</collision>
|
||||
<inertial>
|
||||
<mass value="0.1" />
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<inertia ixx="0.03" iyy="0.03" izz="0.03" ixy="0.0" ixz="0.0" iyz="0.0" />
|
||||
</inertial>
|
||||
</link>
|
||||
<link name="link6">
|
||||
<visual>
|
||||
<geometry>
|
||||
<mesh filename="package://mycobot_description/urdf/mycobot_pro_630/link6.dae" />
|
||||
</geometry>
|
||||
<!-- <material name = "grey">
|
||||
<color rgba = "0.5 0.5 0.5 1"/>
|
||||
</material> -->
|
||||
<origin xyz="0.01 0 0" rpy=" 0 1.5707 0" />
|
||||
</visual>
|
||||
<collision>
|
||||
<origin xyz="0.006 0.0 -0.0 " rpy=" 0 1.5708 0" />
|
||||
<geometry>
|
||||
<cylinder length="0.006" radius="0.026" />
|
||||
</geometry>
|
||||
</collision>
|
||||
<inertial>
|
||||
<mass value="0.1" />
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<inertia ixx="0.03" iyy="0.03" izz="0.03" ixy="0.0" ixz="0.0" iyz="0.0" />
|
||||
</inertial>
|
||||
</link>
|
||||
<joint name="joint1_to_base" type="revolute">
|
||||
<axis xyz="0 0 1" />
|
||||
<limit effort="1000.0" lower="-3.14" upper="3.14159" velocity="0" />
|
||||
<parent link="base" />
|
||||
<child link="link1" />
|
||||
<origin xyz="0 0 0.22934" rpy="0 0 0" />
|
||||
</joint>
|
||||
<joint name="joint2_to_joint1" type="revolute">
|
||||
<axis xyz="0 0 -1" />
|
||||
<!-- <limit effort = "1000.0" lower = "-4.71" upper = "1.5707" velocity = "0"/> -->
|
||||
<limit effort="1000.0" lower="-3.14159" upper="3.14159" velocity="0" />
|
||||
<parent link="link1" />
|
||||
<child link="link2" />
|
||||
<origin xyz="0 0 0" rpy="1.5707 -1.5708 0" />
|
||||
</joint>
|
||||
<joint name="joint3_to_joint2" type="revolute">
|
||||
<axis xyz=" 0 0 -1" />
|
||||
<limit effort="1000.0" lower="-2.61" upper="2.618" velocity="0" />
|
||||
<parent link="link2" />
|
||||
<child link="link3" />
|
||||
<origin xyz="0.27 0 0 " rpy="0 0 0" />
|
||||
</joint>
|
||||
<joint name="joint4_to_joint3" type="revolute">
|
||||
<axis xyz=" 0 0 -1" />
|
||||
<!-- <limit effort = "1000.0" lower = "-4.53" upper = "1.3962" velocity = "0"/> -->
|
||||
<limit effort="1000.0" lower="-2.9670" upper="2.9670" velocity="0" />
|
||||
<parent link="link3" />
|
||||
<child link="link4" />
|
||||
<origin xyz="0.267 0 -0.0745" rpy="0 0 1.5708" />
|
||||
</joint>
|
||||
<joint name="joint5_to_joint4" type="revolute">
|
||||
<axis xyz="0 0 1" />
|
||||
<limit effort="1000.0" lower="-2.93" upper="2.9321" velocity="0" />
|
||||
<parent link="link4" />
|
||||
<child link="link5" />
|
||||
<origin xyz="0 -0.095 0.002" rpy="1.5707 -1.5707 0" />
|
||||
</joint>
|
||||
<joint name="joint6_to_joint5" type="revolute">
|
||||
<axis xyz="-1 0 0" />
|
||||
<limit effort="1000.0" lower="-3.03" upper="3.0368" velocity="0" />
|
||||
<parent link="link5" />
|
||||
<child link="link6" />
|
||||
<origin xyz="-0.054 0 0" rpy="-1.5707 0 0 " />
|
||||
</joint>
|
||||
<transmission name="trans_joint1_to_base">
|
||||
<type>transmission_interface/SimpleTransmission</type>
|
||||
<joint name="joint1_to_base">
|
||||
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
|
||||
</joint>
|
||||
<actuator name="joint1_to_base_motor">
|
||||
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
|
||||
<mechanicalReduction>1</mechanicalReduction>
|
||||
</actuator>
|
||||
</transmission>
|
||||
<transmission name="trans_joint2_to_joint1">
|
||||
<type>transmission_interface/SimpleTransmission</type>
|
||||
<joint name="joint2_to_joint1">
|
||||
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
|
||||
</joint>
|
||||
<actuator name="joint2_to_joint1_motor">
|
||||
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
|
||||
<mechanicalReduction>1</mechanicalReduction>
|
||||
</actuator>
|
||||
</transmission>
|
||||
<transmission name="trans_joint3_to_joint2">
|
||||
<type>transmission_interface/SimpleTransmission</type>
|
||||
<joint name="joint3_to_joint2">
|
||||
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
|
||||
</joint>
|
||||
<actuator name="joint3_to_joint2_motor">
|
||||
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
|
||||
<mechanicalReduction>1</mechanicalReduction>
|
||||
</actuator>
|
||||
</transmission>
|
||||
<transmission name="trans_joint4_to_joint3">
|
||||
<type>transmission_interface/SimpleTransmission</type>
|
||||
<joint name="joint4_to_joint3">
|
||||
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
|
||||
</joint>
|
||||
<actuator name="joint4_to_joint3_motor">
|
||||
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
|
||||
<mechanicalReduction>1</mechanicalReduction>
|
||||
</actuator>
|
||||
</transmission>
|
||||
<transmission name="trans_joint5_to_joint4">
|
||||
<type>transmission_interface/SimpleTransmission</type>
|
||||
<joint name="joint5_to_joint4">
|
||||
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
|
||||
</joint>
|
||||
<actuator name="joint5_to_joint4_motor">
|
||||
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
|
||||
<mechanicalReduction>1</mechanicalReduction>
|
||||
</actuator>
|
||||
</transmission>
|
||||
<transmission name="trans_joint6_to_joint5">
|
||||
<type>transmission_interface/SimpleTransmission</type>
|
||||
<joint name="joint6_to_joint5">
|
||||
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
|
||||
</joint>
|
||||
<actuator name="joint6_to_joint5_motor">
|
||||
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
|
||||
<mechanicalReduction>1</mechanicalReduction>
|
||||
</actuator>
|
||||
</transmission>
|
||||
<gazebo>
|
||||
<plugin name="gazebo_ros_control">
|
||||
<robotNamespace>/</robotNamespace>
|
||||
</plugin>
|
||||
</gazebo>
|
||||
</robot>
|
||||
|
||||
|
|
@ -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
|
||||
max_acceleration: 0
|
||||
|
|
@ -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
|
||||
|
|
@ -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)
|
||||
- AITstar
|
||||
- ABITstar
|
||||
- BITstar
|
||||
projection_evaluator: joints(joint1_to_base,joint2_to_joint1)
|
||||
longest_valid_segment_fraction: 0.005
|
||||
|
|
@ -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:
|
||||
[]
|
||||
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
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
39
mycobot_pro/mycobot_630_moveit/config/stomp_planning.yaml
Normal file
39
mycobot_pro/mycobot_630_moveit/config/stomp_planning.yaml
Normal file
|
|
@ -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
|
||||
|
|
@ -1,10 +1,21 @@
|
|||
<launch>
|
||||
<!-- CHOMP Plugin for MoveIt! -->
|
||||
<arg name="planning_plugin" value="chomp_interface/CHOMPPlanner" />
|
||||
<arg name="start_state_max_bounds_error" value="0.1" />
|
||||
<arg name="start_state_max_bounds_error" default="0.1" />
|
||||
<arg name="jiggle_fraction" default="0.05" />
|
||||
<!-- The request adapters (plugins) used when planning. ORDER MATTERS! -->
|
||||
<arg name="planning_adapters"
|
||||
default="default_planner_request_adapters/LimitMaxCartesianLinkSpeed
|
||||
default_planner_request_adapters/AddTimeParameterization
|
||||
default_planner_request_adapters/ResolveConstraintFrames
|
||||
default_planner_request_adapters/FixWorkspaceBounds
|
||||
default_planner_request_adapters/FixStartStateBounds
|
||||
default_planner_request_adapters/FixStartStateCollision
|
||||
default_planner_request_adapters/FixStartStatePathConstraints"
|
||||
/>
|
||||
|
||||
<param name="planning_plugin" value="$(arg planning_plugin)" />
|
||||
<param name="planning_plugin" value="chomp_interface/CHOMPPlanner" />
|
||||
<param name="request_adapters" value="$(arg planning_adapters)" />
|
||||
<param name="start_state_max_bounds_error" value="$(arg start_state_max_bounds_error)" />
|
||||
<param name="jiggle_fraction" value="$(arg jiggle_fraction)" />
|
||||
|
||||
<rosparam command="load" file="$(find mycobot_630_moveit)/config/chomp_planning.yaml" />
|
||||
</launch>
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<arg name="moveit_warehouse_database_path" default="$(find mycobot_630_moveit)/default_warehouse_mongo_db" />
|
||||
|
||||
<!-- Launch the warehouse with the configured database location -->
|
||||
<include file="$(find mycobot_630_moveit)/launch/warehouse.launch">
|
||||
<include file="$(dirname)/warehouse.launch">
|
||||
<arg name="moveit_warehouse_database_path" value="$(arg moveit_warehouse_database_path)" />
|
||||
</include>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,65 +1,66 @@
|
|||
<launch>
|
||||
|
||||
<!-- specify the planning pipeline -->
|
||||
<arg name="pipeline" default="ompl" />
|
||||
|
||||
<!-- By default, we do not start a database (it can be large) -->
|
||||
<!-- 默认情况下,我们不启动数据库(它可能很大) -->
|
||||
<arg name="db" default="false" />
|
||||
<!-- Allow user to specify database location -->
|
||||
<!-- 允许用户指定数据库位置 -->
|
||||
<arg name="db_path" default="$(find mycobot_630_moveit)/default_warehouse_mongo_db" />
|
||||
|
||||
<!-- By default, we are not in debug mode -->
|
||||
<!-- 默认情况下,我们不处于调试模式 -->
|
||||
<arg name="debug" default="false" />
|
||||
|
||||
<!--
|
||||
By default, hide joint_state_publisher's GUI
|
||||
<!-- By default, we will load or override the robot_description -->
|
||||
<arg name="load_robot_description" default="true"/>
|
||||
|
||||
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.
|
||||
-->
|
||||
<!-- Choose controller manager: fake, simple, or ros_control -->
|
||||
<arg name="moveit_controller_manager" default="fake" />
|
||||
<!-- Set execution mode for fake execution controllers -->
|
||||
<arg name="fake_execution_type" default="interpolate" />
|
||||
|
||||
<!-- By default, hide joint_state_publisher's GUI in 'fake' controller_manager mode -->
|
||||
<arg name="use_gui" default="false" />
|
||||
|
||||
<!-- Load the URDF, SRDF and other .yaml configuration files on the param server -->
|
||||
<!-- 加载参数服务器上的URDF、SRDF等.yaml配置文件-->
|
||||
<include file="$(find mycobot_630_moveit)/launch/planning_context.launch">
|
||||
<arg name="load_robot_description" value="true"/>
|
||||
</include>
|
||||
<arg name="use_rviz" default="true" />
|
||||
|
||||
<!-- If needed, broadcast static tf for robot root -->
|
||||
<node pkg="tf2_ros" type="static_transform_publisher" name="virtual_joint_broadcaster_0" args="0 0 0 0 0 0 basic base" />
|
||||
|
||||
|
||||
<!-- We do not have a robot connected, so publish fake joint states -->
|
||||
<!-- 我们没有连接机器人,所以发布假关节状态 -->
|
||||
<node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher">
|
||||
<param name="use_gui" value="$(arg use_gui)"/>
|
||||
<group if="$(eval arg('moveit_controller_manager') == 'fake')">
|
||||
<!-- We do not have a real robot connected, so publish fake joint states via a joint_state_publisher
|
||||
MoveIt's fake controller's joint states are considered via the 'source_list' parameter -->
|
||||
<node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" unless="$(arg use_gui)">
|
||||
<rosparam param="source_list">[move_group/fake_controller_joint_states]</rosparam>
|
||||
</node>
|
||||
<!-- If desired, a GUI version is available allowing to move the simulated robot around manually
|
||||
This corresponds to moving around the real robot without the use of MoveIt. -->
|
||||
<node name="joint_state_publisher" pkg="joint_state_publisher_gui" type="joint_state_publisher_gui" if="$(arg use_gui)">
|
||||
<rosparam param="source_list">[move_group/fake_controller_joint_states]</rosparam>
|
||||
</node>
|
||||
|
||||
<!-- Given the published joint states, publish tf for the robot links -->
|
||||
<!-- 给定已发布的关节状态,为机器人链接发布 tf -->
|
||||
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" respawn="true" output="screen" />
|
||||
</group>
|
||||
|
||||
<!-- Run the main MoveIt! executable without trajectory execution (we do not have controllers configured by default) -->
|
||||
<!-- 运行主MoveIt! 没有轨迹执行的可执行文件(我们默认没有配置控制器)-->
|
||||
<include file="$(find mycobot_630_moveit)/launch/move_group.launch">
|
||||
<!-- Run the main MoveIt executable without trajectory execution (we do not have controllers configured by default) -->
|
||||
<include file="$(dirname)/move_group.launch">
|
||||
<arg name="allow_trajectory_execution" value="true"/>
|
||||
<arg name="fake_execution" value="true"/>
|
||||
<arg name="moveit_controller_manager" value="$(arg moveit_controller_manager)" />
|
||||
<arg name="fake_execution_type" value="$(arg fake_execution_type)"/>
|
||||
<arg name="info" value="true"/>
|
||||
<arg name="debug" value="$(arg debug)"/>
|
||||
<arg name="pipeline" value="$(arg pipeline)"/>
|
||||
<arg name="load_robot_description" value="$(arg load_robot_description)"/>
|
||||
</include>
|
||||
|
||||
<!-- Run Rviz and load the default config to see the state of the move_group node -->
|
||||
<!-- 运行 Rviz 并加载默认配置以查看 move_group 节点的状态 -->
|
||||
<include file="$(find mycobot_630_moveit)/launch/moveit_rviz.launch">
|
||||
<arg name="config" value="true"/>
|
||||
<include file="$(dirname)/moveit_rviz.launch" if="$(arg use_rviz)">
|
||||
<arg name="rviz_config" value="$(dirname)/moveit.rviz"/>
|
||||
<arg name="debug" value="$(arg debug)"/>
|
||||
</include>
|
||||
|
||||
<!-- If database loading was enabled, start mongodb as well -->
|
||||
<!-- 如果启用了数据库加载,也启动 mongodb -->
|
||||
<include file="$(find mycobot_630_moveit)/launch/default_warehouse_db.launch" if="$(arg db)">
|
||||
<include file="$(dirname)/default_warehouse_db.launch" if="$(arg db)">
|
||||
<arg name="moveit_warehouse_database_path" value="$(arg db_path)"/>
|
||||
</include>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,70 +1,21 @@
|
|||
<?xml version="1.0"?>
|
||||
<launch>
|
||||
<!-- MoveIt options -->
|
||||
<arg name="pipeline" default="ompl" doc="Planning pipeline to use with MoveIt"/>
|
||||
|
||||
<!-- By default, we do not start a database (it can be large) -->
|
||||
<arg name="db" default="false" />
|
||||
<!-- Allow user to specify database location -->
|
||||
<arg name="db_path" default="$(find mycobot_630_moveit)/default_warehouse_mongo_db" />
|
||||
<!-- Gazebo options -->
|
||||
<arg name="gazebo_gui" default="true" doc="Start Gazebo GUI"/>
|
||||
<arg name="paused" default="false" doc="Start Gazebo paused"/>
|
||||
<arg name="world_name" default="worlds/empty.world" doc="Gazebo world file"/>
|
||||
<arg name="world_pose" default="-x 0 -y 0 -z 0 -R 0 -P 0 -Y 0" doc="Pose to spawn the robot at"/>
|
||||
|
||||
<!-- By default, we are not in debug mode -->
|
||||
<arg name="debug" default="false" />
|
||||
<!-- Launch Gazebo and spawn the robot -->
|
||||
<include file="$(dirname)/gazebo.launch" pass_all_args="true"/>
|
||||
|
||||
<!--
|
||||
By default, hide joint_state_publisher's GUI
|
||||
|
||||
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.
|
||||
-->
|
||||
<arg name="use_gui" default="false" />
|
||||
|
||||
<!-- Gazebo specific options -->
|
||||
<arg name="gazebo_gui" default="true"/>
|
||||
<arg name="paused" default="false"/>
|
||||
<!-- By default, use the urdf location provided from the package -->
|
||||
<arg name="urdf_path" default="$(find mycobot_description)/urdf/mycobot_pro_630/mycobot_pro_630.urdf"/>
|
||||
|
||||
<!-- launch the gazebo simulator and spawn the robot -->
|
||||
<include file="$(find mycobot_630_moveit)/launch/gazebo.launch" >
|
||||
<arg name="paused" value="$(arg paused)"/>
|
||||
<arg name="gazebo_gui" value="$(arg gazebo_gui)"/>
|
||||
<arg name="urdf_path" value="$(arg urdf_path)"/>
|
||||
</include>
|
||||
|
||||
<!-- Load the URDF, SRDF and other .yaml configuration files on the param server -->
|
||||
<include file="$(find mycobot_630_moveit)/launch/planning_context.launch">
|
||||
<!-- Launch MoveIt -->
|
||||
<include file="$(dirname)/demo.launch" pass_all_args="true">
|
||||
<!-- robot_description is loaded by gazebo.launch, to enable Gazebo features -->
|
||||
<arg name="load_robot_description" value="false" />
|
||||
<arg name="moveit_controller_manager" value="ros_control" />
|
||||
</include>
|
||||
|
||||
<!-- If needed, broadcast static tf for robot root -->
|
||||
|
||||
|
||||
<!-- We do not have a robot connected, so publish fake joint states -->
|
||||
<node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher">
|
||||
<param name="use_gui" value="$(arg use_gui)"/>
|
||||
<rosparam param="source_list">[/joint_states]</rosparam>
|
||||
</node>
|
||||
|
||||
<!-- Given the published joint states, publish tf for the robot links -->
|
||||
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" respawn="true" output="screen" />
|
||||
|
||||
<!-- Run the main MoveIt! executable without trajectory execution (we do not have controllers configured by default) -->
|
||||
<include file="$(find mycobot_630_moveit)/launch/move_group.launch">
|
||||
<arg name="allow_trajectory_execution" value="true"/>
|
||||
<arg name="fake_execution" value="false"/>
|
||||
<arg name="info" value="true"/>
|
||||
<arg name="debug" value="$(arg debug)"/>
|
||||
</include>
|
||||
|
||||
<!-- Run Rviz and load the default config to see the state of the move_group node -->
|
||||
<include file="$(find mycobot_630_moveit)/launch/moveit_rviz.launch">
|
||||
<arg name="config" value="true"/>
|
||||
<arg name="debug" value="$(arg debug)"/>
|
||||
</include>
|
||||
|
||||
<!-- If database loading was enabled, start mongodb as well -->
|
||||
<include file="$(find mycobot_630_moveit)/launch/default_warehouse_db.launch" if="$(arg db)">
|
||||
<arg name="moveit_warehouse_database_path" value="$(arg db_path)"/>
|
||||
</include>
|
||||
|
||||
</launch>
|
||||
|
|
|
|||
|
|
@ -1,9 +1,12 @@
|
|||
<launch>
|
||||
|
||||
<!-- execute the trajectory in 'interpolate' mode or jump to goal position in 'last point' mode -->
|
||||
<arg name="fake_execution_type" default="interpolate" />
|
||||
|
||||
<!-- Set the param that trajectory_execution_manager needs to find the controller plugin -->
|
||||
<param name="moveit_controller_manager" value="moveit_fake_controller_manager/MoveItFakeControllerManager"/>
|
||||
|
||||
<!-- The rest of the params are specific to this plugin -->
|
||||
<rosparam file="$(find mycobot_630_moveit)/config/fake_controllers.yaml"/>
|
||||
<rosparam subst_value="true" file="$(find mycobot_630_moveit)/config/fake_controllers.yaml"/>
|
||||
|
||||
</launch>
|
||||
|
|
|
|||
|
|
@ -1,23 +1,34 @@
|
|||
<?xml version="1.0"?>
|
||||
<launch>
|
||||
<arg name="paused" default="false"/>
|
||||
<arg name="gazebo_gui" default="true"/>
|
||||
<arg name="urdf_path" default="$(find mycobot_description)/urdf/mycobot_pro_630/mycobot_pro_630.urdf"/>
|
||||
<!-- Gazebo options -->
|
||||
<arg name="gazebo_gui" default="true" doc="Start Gazebo GUI"/>
|
||||
<arg name="paused" default="false" doc="Start Gazebo paused"/>
|
||||
<arg name="world_name" default="worlds/empty.world" doc="Gazebo world file"/>
|
||||
<arg name="world_pose" default="-x 0 -y 0 -z 0 -R 0 -P 0 -Y 0" doc="Pose to spawn the robot at"/>
|
||||
<arg name="initial_joint_positions" default=" -J joint1_to_base 0 -J joint2_to_joint1 0 -J joint3_to_joint2 0 -J joint4_to_joint3 0 -J joint5_to_joint4 0 -J joint6_to_joint5 0" doc="Initial joint configuration of the robot"/>
|
||||
|
||||
<!-- startup simulated world -->
|
||||
<include file="$(find gazebo_ros)/launch/empty_world.launch">
|
||||
<arg name="world_name" default="worlds/empty.world"/>
|
||||
<arg name="paused" value="$(arg paused)"/>
|
||||
<arg name="gui" value="$(arg gazebo_gui)"/>
|
||||
<!-- Start Gazebo paused to allow the controllers to pickup the initial pose -->
|
||||
<include file="$(find gazebo_ros)/launch/empty_world.launch" pass_all_args="true">
|
||||
<arg name="paused" value="true"/>
|
||||
</include>
|
||||
|
||||
<!-- send robot urdf to param server -->
|
||||
<param name="robot_description" textfile="$(arg urdf_path)" />
|
||||
<!-- Set the robot urdf on the parameter server -->
|
||||
<param name="robot_description" textfile="$(find mycobot_630_moveit)/config/gazebo_firefighter.urdf" />
|
||||
|
||||
<!-- push robot_description to factory and spawn robot in gazebo at the origin, change x,y,z arguments to spawn in a different position -->
|
||||
<node name="spawn_gazebo_model" pkg="gazebo_ros" type="spawn_model" args="-urdf -param robot_description -model robot -x 0 -y 0 -z 0"
|
||||
<!-- Unpause the simulation after loading the robot model -->
|
||||
<arg name="unpause" value="$(eval '' if arg('paused') else '-unpause')" />
|
||||
|
||||
<!-- Spawn the robot in Gazebo -->
|
||||
<node name="spawn_gazebo_model" pkg="gazebo_ros" type="spawn_model" args="-urdf -param robot_description -model robot $(arg unpause) $(arg world_pose) $(arg initial_joint_positions)"
|
||||
respawn="false" output="screen" />
|
||||
|
||||
<include file="$(find mycobot_630_moveit)/launch/ros_controllers.launch"/>
|
||||
<!-- Load the controller parameters onto the parameter server -->
|
||||
<rosparam file="$(find mycobot_630_moveit)/config/gazebo_controllers.yaml" />
|
||||
<include file="$(dirname)/ros_controllers.launch"/>
|
||||
|
||||
<!-- Spawn the Gazebo ROS controllers -->
|
||||
<node name="gazebo_controller_spawner" pkg="controller_manager" type="spawner" respawn="false" output="screen" args="joint_state_controller" />
|
||||
|
||||
<!-- Given the published joint states, publish tf for the robot links -->
|
||||
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" respawn="true" output="screen" />
|
||||
</launch>
|
||||
|
|
|
|||
|
|
@ -1,12 +1,10 @@
|
|||
<launch>
|
||||
|
||||
<include file="$(find mycobot_630_moveit)/launch/planning_context.launch" />
|
||||
|
||||
<!-- GDB Debug Option -->
|
||||
<arg name="debug" default="false" />
|
||||
<arg unless="$(arg debug)" name="launch_prefix" value="" />
|
||||
<arg if="$(arg debug)" name="launch_prefix"
|
||||
value="gdb -x $(find mycobot_630_moveit)/launch/gdb_settings.gdb --ex run --args" />
|
||||
value="gdb -x $(dirname)/gdb_settings.gdb --ex run --args" />
|
||||
|
||||
<!-- Verbose Mode Option -->
|
||||
<arg name="info" default="$(arg debug)" />
|
||||
|
|
@ -14,10 +12,11 @@
|
|||
<arg if="$(arg info)" name="command_args" value="--debug" />
|
||||
|
||||
<!-- move_group settings -->
|
||||
<arg name="pipeline" default="ompl" />
|
||||
<arg name="allow_trajectory_execution" default="true"/>
|
||||
<arg name="fake_execution" default="false"/>
|
||||
<arg name="moveit_controller_manager" default="simple" />
|
||||
<arg name="fake_execution_type" default="interpolate"/>
|
||||
<arg name="max_safe_path_cost" default="1"/>
|
||||
<arg name="jiggle_fraction" default="0.05" />
|
||||
<arg name="publish_monitored_planning_scene" default="true"/>
|
||||
|
||||
<arg name="capabilities" default=""/>
|
||||
|
|
@ -38,20 +37,46 @@
|
|||
" />
|
||||
-->
|
||||
|
||||
<!-- Planning Functionality -->
|
||||
<include ns="move_group" file="$(find mycobot_630_moveit)/launch/planning_pipeline.launch.xml">
|
||||
<arg name="load_robot_description" default="false" />
|
||||
<!-- load URDF, SRDF and joint_limits configuration -->
|
||||
<include file="$(dirname)/planning_context.launch">
|
||||
<arg name="load_robot_description" value="$(arg load_robot_description)" />
|
||||
</include>
|
||||
|
||||
<!-- Planning Pipelines -->
|
||||
<group ns="move_group/planning_pipelines">
|
||||
|
||||
<!-- OMPL -->
|
||||
<include file="$(dirname)/planning_pipeline.launch.xml">
|
||||
<arg name="pipeline" value="ompl" />
|
||||
</include>
|
||||
|
||||
<!-- CHOMP -->
|
||||
<include file="$(dirname)/planning_pipeline.launch.xml">
|
||||
<arg name="pipeline" value="chomp" />
|
||||
</include>
|
||||
|
||||
<!-- Pilz Industrial Motion -->
|
||||
<include file="$(dirname)/planning_pipeline.launch.xml">
|
||||
<arg name="pipeline" value="pilz_industrial_motion_planner" />
|
||||
</include>
|
||||
|
||||
<!-- Support custom planning pipeline -->
|
||||
<include if="$(eval arg('pipeline') not in ['ompl', 'chomp', 'pilz_industrial_motion_planner'])"
|
||||
file="$(dirname)/planning_pipeline.launch.xml">
|
||||
<arg name="pipeline" value="$(arg pipeline)" />
|
||||
</include>
|
||||
</group>
|
||||
|
||||
<!-- Trajectory Execution Functionality -->
|
||||
<include ns="move_group" file="$(find mycobot_630_moveit)/launch/trajectory_execution.launch.xml" if="$(arg allow_trajectory_execution)">
|
||||
<include ns="move_group" file="$(dirname)/trajectory_execution.launch.xml" if="$(arg allow_trajectory_execution)">
|
||||
<arg name="moveit_manage_controllers" value="true" />
|
||||
<arg name="moveit_controller_manager" value="firefighter" unless="$(arg fake_execution)"/>
|
||||
<arg name="moveit_controller_manager" value="fake" if="$(arg fake_execution)"/>
|
||||
<arg name="moveit_controller_manager" value="$(arg moveit_controller_manager)" />
|
||||
<arg name="fake_execution_type" value="$(arg fake_execution_type)" />
|
||||
</include>
|
||||
|
||||
<!-- Sensors Functionality -->
|
||||
<include ns="move_group" file="$(find mycobot_630_moveit)/launch/sensor_manager.launch.xml" if="$(arg allow_trajectory_execution)">
|
||||
<include ns="move_group" file="$(dirname)/sensor_manager.launch.xml" if="$(arg allow_trajectory_execution)">
|
||||
<arg name="moveit_sensor_manager" value="firefighter" />
|
||||
</include>
|
||||
|
||||
|
|
@ -61,11 +86,14 @@
|
|||
<env name="DISPLAY" value="$(optenv DISPLAY :0)" />
|
||||
|
||||
<param name="allow_trajectory_execution" value="$(arg allow_trajectory_execution)"/>
|
||||
<param name="max_safe_path_cost" value="$(arg max_safe_path_cost)"/>
|
||||
<param name="jiggle_fraction" value="$(arg jiggle_fraction)" />
|
||||
<param name="sense_for_plan/max_safe_path_cost" value="$(arg max_safe_path_cost)"/>
|
||||
<param name="default_planning_pipeline" value="$(arg pipeline)" />
|
||||
<param name="capabilities" value="$(arg capabilities)" />
|
||||
<param name="disable_capabilities" value="$(arg disable_capabilities)" />
|
||||
|
||||
<!-- do not copy dynamics information from /joint_states to internal robot monitoring
|
||||
default to false, because almost nothing in move_group relies on this information -->
|
||||
<param name="monitor_dynamics" value="false" />
|
||||
|
||||
<!-- Publish the planning scene of the physical robot so that rviz plugin can know actual robot -->
|
||||
<param name="planning_scene_monitor/publish_planning_scene" value="$(arg publish_monitored_planning_scene)" />
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -4,13 +4,12 @@
|
|||
<arg unless="$(arg debug)" name="launch_prefix" value="" />
|
||||
<arg if="$(arg debug)" name="launch_prefix" value="gdb --ex run --args" />
|
||||
|
||||
<arg name="config" default="false" />
|
||||
<arg unless="$(arg config)" name="command_args" value="" />
|
||||
<arg if="$(arg config)" name="command_args" value="-d $(find mycobot_630_moveit)/launch/moveit.rviz" />
|
||||
<arg name="rviz_config" default="" />
|
||||
<arg if="$(eval rviz_config=='')" name="command_args" value="" />
|
||||
<arg unless="$(eval rviz_config=='')" name="command_args" value="-d $(arg rviz_config)" />
|
||||
|
||||
<node name="$(anon rviz)" launch-prefix="$(arg launch_prefix)" pkg="rviz" type="rviz" respawn="false"
|
||||
args="$(arg command_args)" output="screen">
|
||||
<rosparam command="load" file="$(find mycobot_630_moveit)/config/kinematics.yaml"/>
|
||||
</node>
|
||||
|
||||
</launch>
|
||||
|
|
|
|||
|
|
@ -1,64 +1,66 @@
|
|||
<launch>
|
||||
|
||||
<!-- specify the planning pipeline -->
|
||||
<arg name="pipeline" default="ompl" />
|
||||
|
||||
<!-- By default, we do not start a database (it can be large) -->
|
||||
<!-- 默认情况下,我们不启动数据库(它可能很大) -->
|
||||
<arg name="db" default="false" />
|
||||
<!-- Allow user to specify database location -->
|
||||
<!-- 允许用户指定数据库位置 -->
|
||||
<arg name="db_path" default="$(find mycobot_630_moveit)/default_warehouse_mongo_db" />
|
||||
|
||||
<!-- By default, we are not in debug mode --> <!-- 默认情况下,我们不处于调试模式 -->
|
||||
<!-- By default, we are not in debug mode -->
|
||||
<arg name="debug" default="false" />
|
||||
|
||||
<!--
|
||||
By default, hide joint_state_publisher's GUI
|
||||
<!-- By default, we will load or override the robot_description -->
|
||||
<arg name="load_robot_description" default="true"/>
|
||||
|
||||
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.
|
||||
-->
|
||||
<!-- Choose controller manager: fake, simple, or ros_control -->
|
||||
<arg name="moveit_controller_manager" default="fake" />
|
||||
<!-- Set execution mode for fake execution controllers -->
|
||||
<arg name="fake_execution_type" default="interpolate" />
|
||||
|
||||
<!-- By default, hide joint_state_publisher's GUI in 'fake' controller_manager mode -->
|
||||
<arg name="use_gui" default="false" />
|
||||
|
||||
<!-- Load the URDF, SRDF and other .yaml configuration files on the param server -->
|
||||
<!-- 加载参数服务器上的URDF、SRDF等.yaml配置文件-->
|
||||
<include file="$(find mycobot_630_moveit)/launch/planning_context.launch">
|
||||
<arg name="load_robot_description" value="true"/>
|
||||
</include>
|
||||
<arg name="use_rviz" default="true" />
|
||||
|
||||
<!-- If needed, broadcast static tf for robot root -->
|
||||
<node pkg="tf2_ros" type="static_transform_publisher" name="virtual_joint_broadcaster_0" args="0 0 0 0 0 0 basic base" />
|
||||
|
||||
|
||||
<!-- We do not have a robot connected, so publish fake joint states -->
|
||||
<!-- 我们没有连接机器人,所以发布假关节状态 -->
|
||||
<node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher">
|
||||
<param name="use_gui" value="$(arg use_gui)"/>
|
||||
<group if="$(eval arg('moveit_controller_manager') == 'fake')">
|
||||
<!-- We do not have a real robot connected, so publish fake joint states via a joint_state_publisher
|
||||
MoveIt's fake controller's joint states are considered via the 'source_list' parameter -->
|
||||
<node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" unless="$(arg use_gui)">
|
||||
<rosparam param="source_list">[move_group/fake_controller_joint_states]</rosparam>
|
||||
</node>
|
||||
<!-- If desired, a GUI version is available allowing to move the simulated robot around manually
|
||||
This corresponds to moving around the real robot without the use of MoveIt. -->
|
||||
<node name="joint_state_publisher" pkg="joint_state_publisher_gui" type="joint_state_publisher_gui" if="$(arg use_gui)">
|
||||
<rosparam param="source_list">[move_group/fake_controller_joint_states]</rosparam>
|
||||
</node>
|
||||
|
||||
<!-- Given the published joint states, publish tf for the robot links -->
|
||||
<!-- 给定已发布的关节状态,为机器人链接发布 tf -->
|
||||
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" respawn="true" output="screen" />
|
||||
</group>
|
||||
|
||||
<!-- Run the main MoveIt! executable without trajectory execution (we do not have controllers configured by default) -->
|
||||
<!-- 运行主MoveIt! 没有轨迹执行的可执行文件(我们默认没有配置控制器)-->
|
||||
<include file="$(find mycobot_630_moveit)/launch/move_group.launch">
|
||||
<!-- Run the main MoveIt executable without trajectory execution (we do not have controllers configured by default) -->
|
||||
<include file="$(dirname)/move_group.launch">
|
||||
<arg name="allow_trajectory_execution" value="true"/>
|
||||
<arg name="fake_execution" value="true"/>
|
||||
<arg name="moveit_controller_manager" value="$(arg moveit_controller_manager)" />
|
||||
<arg name="fake_execution_type" value="$(arg fake_execution_type)"/>
|
||||
<arg name="info" value="true"/>
|
||||
<arg name="debug" value="$(arg debug)"/>
|
||||
<arg name="pipeline" value="$(arg pipeline)"/>
|
||||
<arg name="load_robot_description" value="$(arg load_robot_description)"/>
|
||||
</include>
|
||||
|
||||
<!-- Run Rviz and load the default config to see the state of the move_group node -->
|
||||
<!-- 运行 Rviz 并加载默认配置以查看 move_group 节点的状态 -->
|
||||
<include file="$(find mycobot_630_moveit)/launch/moveit_rviz.launch">
|
||||
<arg name="config" value="true"/>
|
||||
<include file="$(dirname)/moveit_rviz.launch" if="$(arg use_rviz)">
|
||||
<arg name="rviz_config" value="$(dirname)/moveit.rviz"/>
|
||||
<arg name="debug" value="$(arg debug)"/>
|
||||
</include>
|
||||
|
||||
<!-- If database loading was enabled, start mongodb as well -->
|
||||
<!-- 如果启用了数据库加载,也启动 mongodb -->
|
||||
<include file="$(find mycobot_630_moveit)/launch/default_warehouse_db.launch" if="$(arg db)">
|
||||
<include file="$(dirname)/default_warehouse_db.launch" if="$(arg db)">
|
||||
<arg name="moveit_warehouse_database_path" value="$(arg db_path)"/>
|
||||
</include>
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,20 @@
|
|||
<launch>
|
||||
<!-- load OMPL planning pipeline, but add the CHOMP planning adapter. -->
|
||||
<include file="$(find mycobot_630_moveit)/launch/ompl_planning_pipeline.launch.xml">
|
||||
<arg name="planning_adapters"
|
||||
default="default_planner_request_adapters/LimitMaxCartesianLinkSpeed
|
||||
default_planner_request_adapters/AddTimeParameterization
|
||||
default_planner_request_adapters/FixWorkspaceBounds
|
||||
default_planner_request_adapters/FixStartStateBounds
|
||||
default_planner_request_adapters/FixStartStateCollision
|
||||
default_planner_request_adapters/FixStartStatePathConstraints
|
||||
chomp/OptimizerAdapter"
|
||||
/>
|
||||
</include>
|
||||
|
||||
<!-- load chomp config -->
|
||||
<rosparam command="load" file="$(find mycobot_630_moveit)/config/chomp_planning.yaml" />
|
||||
|
||||
<!-- override trajectory_initialization_method: Use OMPL-generated trajectory -->
|
||||
<param name="trajectory_initialization_method" value="fillTrajectory"/>
|
||||
</launch>
|
||||
|
|
@ -1,21 +1,23 @@
|
|||
<launch>
|
||||
|
||||
<!-- OMPL Plugin for MoveIt! -->
|
||||
<arg name="planning_plugin" value="ompl_interface/OMPLPlanner" />
|
||||
|
||||
<!-- The request adapters (plugins) used when planning with OMPL.
|
||||
ORDER MATTERS -->
|
||||
<arg name="planning_adapters" value="default_planner_request_adapters/AddTimeParameterization
|
||||
<!-- The request adapters (plugins) used when planning with OMPL. ORDER MATTERS! -->
|
||||
<arg name="planning_adapters"
|
||||
default="default_planner_request_adapters/LimitMaxCartesianLinkSpeed
|
||||
default_planner_request_adapters/AddTimeParameterization
|
||||
default_planner_request_adapters/ResolveConstraintFrames
|
||||
default_planner_request_adapters/FixWorkspaceBounds
|
||||
default_planner_request_adapters/FixStartStateBounds
|
||||
default_planner_request_adapters/FixStartStateCollision
|
||||
default_planner_request_adapters/FixStartStatePathConstraints" />
|
||||
default_planner_request_adapters/FixStartStatePathConstraints"
|
||||
/>
|
||||
|
||||
<arg name="start_state_max_bounds_error" value="0.1" />
|
||||
<arg name="start_state_max_bounds_error" default="0.1" />
|
||||
<arg name="jiggle_fraction" default="0.05" />
|
||||
|
||||
<param name="planning_plugin" value="$(arg planning_plugin)" />
|
||||
<param name="planning_plugin" value="ompl_interface/OMPLPlanner" />
|
||||
<param name="request_adapters" value="$(arg planning_adapters)" />
|
||||
<param name="start_state_max_bounds_error" value="$(arg start_state_max_bounds_error)" />
|
||||
<param name="jiggle_fraction" value="$(arg jiggle_fraction)" />
|
||||
|
||||
<rosparam command="load" file="$(find mycobot_630_moveit)/config/ompl_planning.yaml"/>
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,15 @@
|
|||
<launch>
|
||||
|
||||
<!-- The request adapters (plugins) used when planning. ORDER MATTERS! -->
|
||||
<arg name="planning_adapters" default="" />
|
||||
|
||||
<param name="planning_plugin" value="pilz_industrial_motion_planner::CommandPlanner" />
|
||||
<param name="request_adapters" value="$(arg planning_adapters)" />
|
||||
|
||||
<!-- Define default planner (for all groups) -->
|
||||
<param name="default_planner_config" value="PTP" />
|
||||
|
||||
<!-- MoveGroup capabilities to load for this pipeline, append sequence capability -->
|
||||
<param name="capabilities" value="pilz_industrial_motion_planner/MoveGroupSequenceAction
|
||||
pilz_industrial_motion_planner/MoveGroupSequenceService" />
|
||||
</launch>
|
||||
|
|
@ -6,7 +6,7 @@
|
|||
<arg name="robot_description" default="robot_description"/>
|
||||
|
||||
<!-- Load universal robot description format (URDF) -->
|
||||
<param if="$(arg load_robot_description)" name="$(arg robot_description)" textfile="$(find mycobot_description)/urdf/mycobot_pro_630/mycobot_pro_630.urdf"/>
|
||||
<param if="$(arg load_robot_description)" name="$(arg robot_description)" textfile="$(find mycobot_description)/urdf/mycobot_pro_630/mycobot_pro_630_moveit.urdf"/>
|
||||
|
||||
<!-- The semantic description that corresponds to the URDF -->
|
||||
<param name="$(arg robot_description)_semantic" textfile="$(find mycobot_630_moveit)/config/firefighter.srdf" />
|
||||
|
|
@ -14,11 +14,13 @@
|
|||
<!-- Load updated joint limits (override information from URDF) -->
|
||||
<group ns="$(arg robot_description)_planning">
|
||||
<rosparam command="load" file="$(find mycobot_630_moveit)/config/joint_limits.yaml"/>
|
||||
<rosparam command="load" file="$(find mycobot_630_moveit)/config/cartesian_limits.yaml"/>
|
||||
</group>
|
||||
|
||||
<!-- Load default settings for kinematics; these settings are overridden by settings in a node's namespace -->
|
||||
<group ns="$(arg robot_description)_kinematics">
|
||||
<rosparam command="load" file="$(find mycobot_630_moveit)/config/kinematics.yaml"/>
|
||||
|
||||
</group>
|
||||
|
||||
</launch>
|
||||
|
|
|
|||
|
|
@ -5,6 +5,6 @@
|
|||
|
||||
<arg name="pipeline" default="ompl" />
|
||||
|
||||
<include file="$(find mycobot_630_moveit)/launch/$(arg pipeline)_planning_pipeline.launch.xml" />
|
||||
<include ns="$(arg pipeline)" file="$(dirname)/$(arg pipeline)_planning_pipeline.launch.xml" />
|
||||
|
||||
</launch>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,4 @@
|
|||
<launch>
|
||||
<!-- Define MoveIt controller manager plugin -->
|
||||
<param name="moveit_controller_manager" value="moveit_ros_control_interface::MoveItControllerManager" />
|
||||
</launch>
|
||||
|
|
@ -6,6 +6,6 @@
|
|||
|
||||
<!-- Load the controllers -->
|
||||
<node name="controller_spawner" pkg="controller_manager" type="spawner" respawn="false"
|
||||
output="screen" args=""/>
|
||||
output="screen" args="arm_group_controller "/>
|
||||
|
||||
</launch>
|
||||
|
|
|
|||
|
|
@ -4,18 +4,17 @@
|
|||
<arg name="cfg" />
|
||||
|
||||
<!-- Load URDF -->
|
||||
<include file="$(find mycobot_630_moveit)/launch/planning_context.launch">
|
||||
<include file="$(dirname)/planning_context.launch">
|
||||
<arg name="load_robot_description" value="true"/>
|
||||
</include>
|
||||
|
||||
<!-- Start the database -->
|
||||
<include file="$(find mycobot_630_moveit)/launch/warehouse.launch">
|
||||
<include file="$(dirname)/warehouse.launch">
|
||||
<arg name="moveit_warehouse_database_path" value="moveit_ompl_benchmark_warehouse"/>
|
||||
</include>
|
||||
|
||||
<!-- Start Benchmark Executable -->
|
||||
<node name="$(anon moveit_benchmark)" pkg="moveit_ros_benchmarks" type="moveit_run_benchmark" args="$(arg cfg) --benchmark-planners" respawn="false" output="screen">
|
||||
<rosparam command="load" file="$(find mycobot_630_moveit)/config/kinematics.yaml"/>
|
||||
<rosparam command="load" file="$(find mycobot_630_moveit)/config/ompl_planning.yaml"/>
|
||||
</node>
|
||||
|
||||
|
|
|
|||
|
|
@ -12,6 +12,6 @@
|
|||
|
||||
<!-- Load the robot specific sensor manager; this sets the moveit_sensor_manager ROS parameter -->
|
||||
<arg name="moveit_sensor_manager" default="firefighter" />
|
||||
<include file="$(find mycobot_630_moveit)/launch/$(arg moveit_sensor_manager)_moveit_sensor_manager.launch.xml" />
|
||||
<include file="$(dirname)/$(arg moveit_sensor_manager)_moveit_sensor_manager.launch.xml" />
|
||||
|
||||
</launch>
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
<!-- Re-launch the MoveIt! Setup Assistant with this configuration package already loaded -->
|
||||
<!-- Re-launch the MoveIt Setup Assistant with this configuration package already loaded -->
|
||||
<launch>
|
||||
|
||||
<!-- Debug Info -->
|
||||
|
|
@ -10,6 +10,7 @@
|
|||
<node pkg="moveit_setup_assistant" type="moveit_setup_assistant" name="moveit_setup_assistant"
|
||||
args="--config_pkg=mycobot_630_moveit"
|
||||
launch-prefix="$(arg launch_prefix)"
|
||||
required="true"
|
||||
output="screen" />
|
||||
|
||||
</launch>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,8 @@
|
|||
<launch>
|
||||
<!-- Define the MoveIt controller manager plugin to use for trajectory execution -->
|
||||
<param name="moveit_controller_manager" value="moveit_simple_controller_manager/MoveItSimpleControllerManager" />
|
||||
|
||||
<!-- Load controller list to the parameter server -->
|
||||
<rosparam file="$(find mycobot_630_moveit)/config/simple_moveit_controllers.yaml" />
|
||||
<rosparam file="$(find mycobot_630_moveit)/config/ros_controllers.yaml" />
|
||||
</launch>
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
<launch>
|
||||
<!-- Stomp Plugin for MoveIt -->
|
||||
<arg name="planning_plugin" value="stomp_moveit/StompPlannerManager" />
|
||||
|
||||
<arg name="start_state_max_bounds_error" value="0.1" />
|
||||
<arg name="jiggle_fraction" value="0.05" />
|
||||
<!-- The request adapters (plugins) used when planning. ORDER MATTERS! -->
|
||||
<arg name="planning_adapters"
|
||||
default="default_planner_request_adapters/LimitMaxCartesianLinkSpeed
|
||||
default_planner_request_adapters/AddTimeParameterization
|
||||
default_planner_request_adapters/FixWorkspaceBounds
|
||||
default_planner_request_adapters/FixStartStateBounds
|
||||
default_planner_request_adapters/FixStartStateCollision
|
||||
default_planner_request_adapters/FixStartStatePathConstraints" />
|
||||
|
||||
|
||||
<param name="planning_plugin" value="$(arg planning_plugin)" />
|
||||
<param name="request_adapters" value="$(arg planning_adapters)" />
|
||||
<param name="start_state_max_bounds_error" value="$(arg start_state_max_bounds_error)" />
|
||||
<param name="jiggle_fraction" value="$(arg jiggle_fraction)" />
|
||||
|
||||
<rosparam command="load" file="$(find mycobot_630_moveit)/config/stomp_planning.yaml"/>
|
||||
</launch>
|
||||
|
|
@ -1,8 +1,11 @@
|
|||
<launch>
|
||||
<!-- This file summarizes all settings required for trajectory execution -->
|
||||
|
||||
<!-- This file makes it easy to include the settings for trajectory execution -->
|
||||
<!-- Define moveit controller manager plugin: fake, simple, or ros_control -->
|
||||
<arg name="moveit_controller_manager" />
|
||||
<arg name="fake_execution_type" default="interpolate" />
|
||||
|
||||
<!-- Flag indicating whether MoveIt! is allowed to load/unload or switch controllers -->
|
||||
<!-- Flag indicating whether MoveIt is allowed to load/unload or switch controllers -->
|
||||
<arg name="moveit_manage_controllers" default="true"/>
|
||||
<param name="moveit_manage_controllers" value="$(arg moveit_manage_controllers)"/>
|
||||
|
||||
|
|
@ -13,8 +16,8 @@
|
|||
<!-- Allowed joint-value tolerance for validation that trajectory's first point matches current robot state -->
|
||||
<param name="trajectory_execution/allowed_start_tolerance" value="0.01"/> <!-- default 0.01 -->
|
||||
|
||||
<!-- Load the robot specific controller manager; this sets the moveit_controller_manager ROS parameter -->
|
||||
<arg name="moveit_controller_manager" default="firefighter" />
|
||||
<include file="$(find mycobot_630_moveit)/launch/$(arg moveit_controller_manager)_moveit_controller_manager.launch.xml" />
|
||||
<!-- We use pass_all_args=true here to pass fake_execution_type, which is required by fake controllers, but not by real-robot controllers.
|
||||
As real-robot controller_manager.launch files shouldn't be required to define this argument, we use the trick of passing all args. -->
|
||||
<include file="$(dirname)/$(arg moveit_controller_manager)_moveit_controller_manager.launch.xml" pass_all_args="true" />
|
||||
|
||||
</launch>
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
<arg name="moveit_warehouse_database_path" />
|
||||
|
||||
<!-- Load warehouse parameters -->
|
||||
<include file="$(find mycobot_630_moveit)/launch/warehouse_settings.launch.xml" />
|
||||
<include file="$(dirname)/warehouse_settings.launch.xml" />
|
||||
|
||||
<!-- Run the DB server -->
|
||||
<node name="$(anon mongo_wrapper_ros)" cwd="ROS_HOME" type="mongo_wrapper_ros.py" pkg="warehouse_ros_mongo">
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
<name>mycobot_630_moveit</name>
|
||||
<version>0.3.0</version>
|
||||
<description>
|
||||
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
|
||||
</description>
|
||||
<author email="weijian.wang@elephantrobotics.com">wangweijian</author>
|
||||
<maintainer email="weijian.wang@elephantrobotics.com">wangweijian</maintainer>
|
||||
|
|
@ -19,20 +19,22 @@
|
|||
<run_depend>moveit_ros_move_group</run_depend>
|
||||
<run_depend>moveit_fake_controller_manager</run_depend>
|
||||
<run_depend>moveit_kinematics</run_depend>
|
||||
<run_depend>moveit_planners_ompl</run_depend>
|
||||
<run_depend>moveit_planners</run_depend>
|
||||
<run_depend>moveit_ros_visualization</run_depend>
|
||||
<run_depend>moveit_setup_assistant</run_depend>
|
||||
<run_depend>moveit_simple_controller_manager</run_depend>
|
||||
<run_depend>joint_state_publisher</run_depend>
|
||||
<run_depend>joint_state_publisher_gui</run_depend>
|
||||
<run_depend>robot_state_publisher</run_depend>
|
||||
<run_depend>rviz</run_depend>
|
||||
<run_depend>tf2_ros</run_depend>
|
||||
<run_depend>xacro</run_depend>
|
||||
<!-- The next 2 packages are required for the gazebo simulation.
|
||||
We don't include them by default to prevent installing gazebo and all its dependencies. -->
|
||||
<!-- <run_depend>joint_trajectory_controller</run_depend> -->
|
||||
<!-- <run_depend>gazebo_ros_control</run_depend> -->
|
||||
<!-- This package is referenced in the warehouse launch files, but does not build out of the box at the moment. Commented the dependency until this works. -->
|
||||
<!-- <run_depend>warehouse_ros_mongo</run_depend> -->
|
||||
<build_depend>roscpp</build_depend>
|
||||
<build_depend>rospy</build_depend>
|
||||
<build_depend>std_msgs</build_depend>
|
||||
<build_depend>actionlib</build_depend>
|
||||
<build_depend>moveit_msgs</build_depend>
|
||||
<build_depend>mycobot_description</build_depend>
|
||||
<run_depend>mycobot_description</run_depend>
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
||||
|
|
|
|||
35
mycobot_pro/mycobot_630_moveit/scripts/test_add_ground.py
Executable file
35
mycobot_pro/mycobot_630_moveit/scripts/test_add_ground.py
Executable file
|
|
@ -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
|
||||
Loading…
Add table
Reference in a new issue