gazebo moveit ros_control设置初探

  1配置文件调用顺序

**_moveit_planning_execution.launch

->move_group.launch→ **_moveit_controller_manager.launch.xml (填写控制器)->controllers.yaml

 

2.新建controllers.yaml

3.编写一个启动文件

     https://blog.csdn.net/lingchen2348/article/details/81709404

ur5的启动过程中,执行了一条launch命令

roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch sim:=true

那我们就依葫芦画瓢也编写一份相同的文件。保存为**_moveit_planning_execution.launch

比如aubo_i5_moveit_planning_execution.launch,文件位置在moveit配置文件夹中的launch目录下。


 

[/机器人名字/joint_states]#添加的


 

type="robot_state_publisher" respawn="true" output="screen" />


 

4.改写move_group.launch

修改moveit_controller_manager参数。

https://blog.csdn.net/lingchen2348/article/details/80300069

 
 
   
    #注意
   
 

例如:

gazebo moveit ros_control设置初探_第1张图片 我们注意到在moveit_planning_execution.launch文件中并没有对fake_execution进行赋值,又因为fake_execution的默认值为false所以采用实物反馈的方法

5改写**_moveit_controller_manager.launch.xml

 

其中××为机器人的名字

例如:

gazebo moveit ros_control设置初探_第2张图片 注意,上文中 find my_robot_name_moveit_config其实不准确,应该为moveit_config文件夹的名字才对如下所示:

改写如下:

gazebo moveit ros_control设置初探_第3张图片 中robot_moveit_config/config/controllers.yaml为路径

6.修改planning_context.launch

修改为 #默认为false,需要改为true

 

7.后面可能会遇到的情况,暂时还没遇到

gazebo moveit ros_control设置初探_第4张图片

8xacro的gazebo文件设置

由   


   
       
            /机器人名字
       

   

改为如下内容,加载DefaultRobotHWSim配置实现与gazebo的通信

false

/机器人名字

gazebo_ros_control/DefaultRobotHWSim

true

9.gazebo下面的config的trajectory_control.yaml的相关配置文件中设置pid参数

pid设置格式如下所示:

  /gazebo_ros_control/pid_gains:
     j1: {p: 1000.0,i: 0.0, d: 0.1, i_clamp: 1.0}
     j2: {p: 1000.0,i: 0.0, d: 0.1, i_clamp: 1.0}
     j3: {p: 1000.0,i: 0.0, d: 0.1, i_clamp: 1.0}
     j4: {p: 1000.0,i: 0.0, d: 0.1, i_clamp: 1.0}
     j5: {p: 1000.0,i: 0.0, d: 0.1, i_clamp: 1.0}
     j6: {p: 1000.0,i: 0.0, d: 0.1, i_clamp: 1.0}

否则终端会显示找不到pid的设置

10.roslaunch gazebo文件下的.bringup.lauch

文件则加载rivz和gazebo

但是发现机器人在重力作用下瘫了,底座翻了,推测是底座没有固定的原因,经过查看aubo的xacro文件发下如下内容:

11.接下来的一些思考

在moveit调试助手中重新设置设置world和world_link来固定基座

 

gazebo moveit ros_control设置初探_第5张图片

发现base_link的父连杆是world,

而在其moveit生成的srdf文件中

发现设置了虚拟关节为固定关节,parent_frame为"world"

所以照猫画虎,我们需要重新配置moveit来设定world连杆和world_joint fixed关节

你可能感兴趣的:(ROS)