UF ROBOT Moveit Config
此包用于通过moveit控制UFACTORY的各种机械臂
支持 xArm5/xArm6/xArm7/Lite6/UFACTORY850 系列机械臂
此包可以替代以下这些包的使用,启动脚本以及部分参数有区别
xarm5_moveit_config/xarm5_gripper_moveit_config/xarm5_vacuum_moveit_config
xarm6_moveit_config/xarm6_gripper_moveit_config/xarm6_vacuum_moveit_config
xarm7_moveit_config/xarm7_gripper_moveit_config/xarm7_vacuum_moveit_config
lite6_moveit_config
此包并非通过moveit_setup_assistant生成,暂不支持使用moveit_setup_assistant修改
xArm 5
Moveit!图形控制界面 + Rviz可视化仿真
双臂控制
Moveit!图形控制界面 + 真实机械臂
双臂控制
Moveit!图形控制界面 + Gazebo 仿真
双臂控制
xArm 6
Moveit!图形控制界面 + Rviz可视化仿真
双臂控制
Moveit!图形控制界面 + 真实机械臂
双臂控制
Moveit!图形控制界面 + Gazebo 仿真
双臂控制
xArm 7
Moveit!图形控制界面 + Rviz可视化仿真
双臂控制
Moveit!图形控制界面 + 真实机械臂
双臂控制
Moveit!图形控制界面 + Gazebo 仿真
双臂控制
Lite 6
Moveit!图形控制界面 + Rviz可视化仿真
双臂控制
Moveit!图形控制界面 + 真实机械臂
双臂控制
Moveit!图形控制界面 + Gazebo 仿真
双臂控制
UFACTORY 850
Moveit!图形控制界面 + Rviz可视化仿真
双臂控制
Moveit!图形控制界面 + 真实机械臂
双臂控制
Moveit!图形控制界面 + Gazebo 仿真
双臂控制
Moveit! Planner
- 调用Service进行规划 (这里以xarm7为例)
关节空间点到点目标规划:
这种情况下列表中的元素代表每个关节的目标角度(单位是radian), 给定元素个数为关节数目。
笛卡尔空间点到点目标规划:
目标列表中的域分别指代工具坐标系原点位置(x, y, z),单位:米;以及 四元数 方位(x, y, z, w)。注意此规划命令依然是简单的点到点运动,末端的执行轨迹并不是一条直线。
笛卡尔空间直线轨迹规划:
指令数据的单位和之前的笛卡尔指令一致。如果规划成功,末端执行轨迹会是一条直线。但是在这种规划中,笛卡尔速度的变化可能不是很常规,请参考官方的Move Group Interface文档并在需要的时候修改代码。
- 执行规划好的轨迹:
请注意: 使用笛卡尔规划时, Moveit (OMPL) 每次生成的路径可能非常不同且比较随机,并不一定是移动距离最小的解, 所以在执行前一定在仿真环境中确认轨迹!
如果存在满意的解, 用户可以通过service(推荐)或topic下达执行命令。
通过service call执行 (阻塞式)
调用'xarm_exec_plan' service 并将request的data设为'true', 则上一次成功解算的轨迹会被执行, service call会在执行完毕后返回,命令行运行:
通过topic执行 (非阻塞式)
只需要通过话题"/xarm_planner_exec"发布一条消息 (类型: std_msgs/Bool), 内容设为'true'即可命令机械臂执行轨迹, 但是这种方法会直接返回而不是等待执行完成:
可选参数
- 通用参数
robot_sn: 机械臂的SN,用于加载惯性参数,一般不需要指定,除非需要很精准的惯性参数
model1300: 是否是1300模型,仅对xarm系列有效,主要是末端模型有所变化,如果指定了
robot_sn
,会自动根据SN覆盖该参数limited: 是否限定关节范围在(-180, 180),默认为true
attach_to: 机械臂attach的连杆名,默认为world(此名默认会创建连杆)
attach_xyz: 机械臂相对
attach_to
的连杆的xyz偏移,默认为'0 0 0'attach_rpy: 机械臂相对
attach_to
的连杆的rpy偏移, 默认为'0 0 0'add_realsense_d435i: 是否加载RealSense D435i摄像头模型
add_d435i_links: 是否加载D435i的详细连杆,只在
add_realsense_d435i
为true有用
add_gripper: 是否加载机械爪, 默认为false,优先级高于
add_vacuum_gripper
和add_other_geometry
add_vacuum_gripper: 是否加载吸泵,默认为false,优先级低于
add_gripper
,但高于add_other_geometry
add_other_geometry: 是否添加其它几何模型到末端,默认为false,优先级低于
add_gripper
和add_vacuum_gripper
geometry_type: 要加载的几何模型的类型,支持box/cylinder/sphere/mesh这几种,不同种类支持的参数不一样
geometry_mass: 几何模型质量,单位(kg),默认0.1
geometry_height: 几何模型高度,单位(米),默认0.1,仅在geometry_type为box/cylinder/sphere时有效
geometry_radius: 几何模型半径,单位(米),默认0.1,仅在geometry_type为cylinder/sphere时有效
geometry_length: 几何模型长度,单位(米),默认0.1,仅在geometry_type为box时有效
geometry_width: 几何模型宽度,单位(米),默认0.1,仅在geometry_type为box时有效
geometry_mesh_filename: 几何模型的文件名,geometry_type为mesh有效, 该文件需要存放于 xarm_description/meshes/other/ 目录下面,这样就不需要在文件名里指定文件目录了
geometry_mesh_origin_xyz: 几何模型的基准参考系相对于末端法兰的参考系,geometry_type为mesh有效,使用时注意引号: geometry_mesh_origin_xyz:='"0.0 0.0 0.0"'
geometry_mesh_origin_rpy: 几何模型的基准参考系相对于末端法兰的参考系,geometry_type为mesh有效。使用时注意引号: geometry_mesh_origin_rpy:='"0.0 0.0 0.0"'
geometry_mesh_tcp_xyz: 几何模型末端(TCP)相对于几何模型基准参考系的偏移,geometry_type为mesh有效。使用时注意引号: geometry_mesh_tcp_xyz:='"0.0 0.0 0.0"'
geometry_mesh_tcp_rpy: 几何模型末端(TCP)相对于几何模型基准参考系的偏移,geometry_type为mesh有效。使用时注意引号: geometry_mesh_tcp_rpy:='"0.0 0.0 0.0"'
jnt_stat_pub_rate: joint_state_publisher的发布频率,默认为10
- 专用参数
hw_ns: 命名空间,xarm系列默认为 xarm, 其它默认为 ufactory, 仅在gazebo/realmove启动脚本有效, 对应的服务名就是 <
hw_ns
>/<service_name>velocity_control: 是否使用速度控制,仅在gazebo/realmove启动脚本有效, 默认为false
report_type: 上报类型,支持normal/dev/rich,默认为normal,仅在realmove启动脚本有效。 它决定了状态上报的内容和频率。具体请参考开发者手册中的2.1.6. 自动上报数据格式章节查看三种上报类型(
normal/rich/dev
)的内容区别, 默认使用的类型为 "normal"。对于需要高频率状态反馈的用户, 在启动时可以指定
report_type:=dev
, 这样/<hw_ns>/xarm_states
和/<hw_ns>/joint_states
话题会以100Hz频率更新。对于需要使用
/<hw_ns>/controller_gpio_states
话题实时查看控制器GPIO状态的用户, 请指定report_type:=rich
, 可以在开发者手册中看到这个类型反馈的信息是最全的。不同上报类型的更新频率:
注: GPIO topic =>
<hw_ns>/controller_gpio_states
. F/T sensor topic =><hw_ns>/uf_ftsensor_ext_states
and<hw_ns>/uf_ftsensor_raw_states
。
Last updated