使用默认UR package与Moveit setup assistant时的一些问题记录(1)

前言

使用Moveit setup assistant可以生成moveit的配置文件。如果这些文件有被手动修改过,那么再次使用配置助手时就会被覆盖还原。因此,在使用别人的机器人package时需要小心这回事。

这里主要是记录我在使用默认UR包时的一些配置心得。

1. 机器人坐标系与世界坐标系之间的关系

默认UR包中,urN_robot.urdf.xacro中使用了一个名为worldlink,以其为世界坐标系。通过world_joint建立该世界坐标系与机器人base_link间的关系。

  <link name="world" />

  <joint name="world_joint" type="fixed">
    <parent link="world" />
    
    <origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
  joint>

但是在实际使用时,会有一个警告。

ros.rosconsole_bridge.console_bridge: Skipping virtual joint ‘fixed_base’ because its child frame ‘base_link’ does not match the URDF frame ‘world’

这里是解决方法

2. ROS-I training里提到的bug及相关配置文件

这里主要参考ROS-I training里提到的bug及在控制实际机器人时需要用到的一些配置文件。

2.1 需要添加扩展后缀的bug

关于这个需要添加扩展后缀的bug,在最新版本Moveit Setup assistant里面已经被修复了。因此,不用再管它。
** 参考连接1**
** 参考连接2**

2.2 相关配置文件

training里面一共提到4个需要添加或修改的文件。我用默认UR包中的文件与在空白工作空间中,用Moveit setup assistant直接生成的文件进行比较,以便对比。

2.2.1 controllers.yaml

默认UR包中,已存在该文件,且与training 中提到的内容相同。
Moveit setup assistant直接生成的配置文件中,没有该文件,但是有一个ros_controllers.yaml
使用默认UR package与Moveit setup assistant时的一些问题记录(1)_第1张图片这里需要指出一点,使用Moveit setup assistant只会对其直接生成的文件进行覆写。UR默认包中的controllers.yaml不会被覆写,也不会被删除。

另外,由Moveit setup assistant直接生产的demo_gazebo.launch对gazebo相关控制器的调用,也是ros_controllers.yaml文件。。
使用默认UR package与Moveit setup assistant时的一些问题记录(1)_第2张图片

2.2.2 joint_names.yaml

不论是默认UR包还是配置助手生成的文件中,都没有这个文件。因此就不管了。
不过,记得两年前使用时,好像是手动增加了这个文件的?。

当配置助手生成的关节名与实际机器人控制器中的关节名不同时,就需要这个文件了。
具体使用就是在2.2.4的文件中调用。

2.2.3 XXX_moveit_controller_manager.launch.xml

这个控制器的配置文件这里就都有了。
需要注意到,默认UR包调用的是2.2.1中手动添加的controllers.yaml
而由配置助手生产的文件中,调用的是配置助手直接生成的ros_controllers.yaml

因此,需要小心这个文件被覆写
使用默认UR package与Moveit setup assistant时的一些问题记录(1)_第3张图片

2.2.4 XXX_planning_execution.launch

这个文件是用来运行实际机器人的。

默认UR包中,通过下面三句话实现

roslaunch ur_bringup ur5_bringup.launch limited:=true robot_ip:=IP_OF_THE_ROBOT [reverse_port:=REVERSE_PORT]

roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch limited:=true

roslaunch ur5_moveit_config moveit_rviz.launch config:=true

而在Moveit setup assistant直接生成的一系列文件中,是没有ur_bringup这个package的。同时,也没有ur5_moveit_planning_execution.launch这个文件。

2.2.5 move_group.launch

UR默认包中的ur5_moveit_planning_execution.launch会打开一个move_group.launch文件。
而这个UR默认包中的内容,与Moveit setup assistant直接生成的内容又有一些区别

因此,需要小心这个文件被覆写
使用默认UR package与Moveit setup assistant时的一些问题记录(1)_第4张图片

小结

所以,在默认UR包中直接使用Moveit setup assistant会对现有的一些文件内容产生影响。
那么,如果按照ROS-I training的方法来是否可行?如果可行的话,就可以大胆使用配置助手。
如果不可行的话,要怎么做才能实现对现有机器人配置的修改。

例如,本文第一个问题的处理,使用了Moveit setup assistant后会更改很多文件。【虽然我猜这个直接修改SRDF文件也可以】

但是,添加环境物体呢?【好像别人都是直接在xx.urdf.xacro添加完就不用管其他的了?】

那添加手眼相机呢?

你可能感兴趣的:(ROS)