当前位置:   article > 正文

ros控制arduino的方法_【ROS-Moveit!】机械臂控制探索(2)——Moveit!与Gazebo联合仿真方法...

arduino moveit

34153cd5319ebaaf473c453bb982af1d.png

前言

如果是第一次使用Moveit!,建议先按照 Moveit与rviz官方教程 做一次,主要熟悉Moveit!能干什么。

上一篇文章说明了Moveit的配置方法。实际上,网上关于Moveit!的配置与使用有着大把的教程。然而,它们大都是基于官方说明文档的思路,即在Moveit!中进行配置,编写控制算法后在rviz中进行可视化,很少有探讨如何在Gazebo中进行仿真的。

Gazebo是一款与ROS深度融合的仿真器,相比于rviz,其对环境的模拟更加真实。因此,我在网络上搜集大量资料,并结合自己的实验后,验证了一种Moveit!与Gazebo结合的联合仿真方法,在此总结。

  • 系统:ubuntu 18.04
  • ROS:melodic
  • 其余软件要求:Moveit!配置已完成(已有Moveit!创建的功能包);Gazebo可用;ros_control插件可用

概述

Moveit!与Gazebo的联合仿真,其主要思路为搭建ros_control和Moveit!的桥梁。先在Moveit!端配置关节和传感器接口yaml文件,将其加载到rviz端;再在机器人端配置ros_control和接口yaml文件,将机器人加载到Gazebo。最后同时启动加载有ros_control的Gazebo和加载有Moveit的rviz,达到联合仿真的目的。

Moveit!端的配置

在进行Moveit!端的配置之前,首先要保证你已经用配置助手成功生成了Moveit!配置功能包。

例如你的Moveit!配置功能包名为ROBOT_moveit_config,可以在终端中运行如下命令:

roslaunch ROBOT_moveit_config demo.launch

如果成功启动了rviz,界面中包含有你的机器人模型以及rviz控制界面,则说明满足要求。

建立控制器配置文件 controllers.yaml

首先,在 ROBOT_moveit_config/config/ 目录下创建名为 controllers.yaml 的配置文件:

  1. controller_manager_ns: ''
  2. controller_list:
  3. - name: ROBOT/group1_controller
  4. action_ns: follow_joint_trajectory
  5. type: FollowJointTrajectory
  6. default: true
  7. joints:
  8. - joint_1
  9. - joint_2
  10. - joint_3
  11. - joint_4
  12. - joint_5
  13. ...
  14. - name: ROBOT/group2_controller
  15. action_ns: follow_joint_trajectory
  16. type: FollowJointTrajectory
  17. default: true
  18. joints:
  19. - joint_6
  20. - joint_7
  21. - joint_8
  22. ...

其中,“name”的内容为机器人的规划组,前面要加入命名空间;“joints”的内容为关节名称。其余内容不变。

修改启动文件 ROBOT_moveit_controller_manager.launch.xml

只要是正常生成的配置功能包,其 launch 文件夹中就已经含有ROBOT_moveit_controller_manager.launch.xml 文件了,在此我们只需要将其内容修改如下:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/818775
推荐阅读
相关标签
  

闽ICP备14008679号