参考资料:https://www.youtube.com/watch?v=j6bBxfD_bYs

1. 下载ROS-Industrial universal robot meta-package

cd ~/catkin_ws/src
git clone https://github.com/ros-industrial/universal_robot.git
cd ~/catkin_ws
catkin_make

2. 启动Gazebo

cd ~/catkin_ws/src/universal_robot/ur_gazebo/launch
roslaunch ur10.launch

此时Gazebo将启动,并且能够看到ur10机械臂

3. 配置MoveIt!

roslaunch moveit_setup_assistant setup_assistant.launch

第一个标签下面需要选择机械臂的urdf文件,注意/catkin_ws/src/universal_robot/ur_description/urdf/文件夹中只有xacro文件,因此先使用xacro命令将ur10.urdf.xacro转换为静态urdf文件。

cd ~/catkin_ws/src/universal_robot/ur_description/urdf/
rosrun xacro xacro.py ur10.urdf.xacro > ur10.urdf

然后逐步完成配置,具体可参考上面的Youtube视频或者ROS by Example的11.10节,最后一步选择存放生成的package的位置,这里将其命名为demo_moveit_config。

4. 连接到Gazebo

在demo_moveit_config/config/文件夹中创建两个文件,controllers.yaml和joint_names.yaml。
controllers.yaml的内容如下:

controller_list:- name: arm_controlleraction_ns: "follow_joint_trajectory"type: FollowJointTrajectoryjoints: [shoulder_pan_joint, shoulder_lift_joint, elbow_joint, wrist_1_joint, wrist_2_joint, wrist_3_joint]

其中,arm_controller是action server,可以通过rostopic list看到,joints的名字是在urdf文件里定义的,可以在ur10.urdf里找到。
joint_names.yaml内容如下:

controller_joint_names: [shoulder_pan_joint, shoulder_lift_joint, elbow_joint, wrist_1_joint, wrist_2_joint, wrist_3_joint]

然后在launch文件夹中找到ur10_moveit_controller_manager.launch.xml,是个空文件,将其改为:

<launch><rosparam file="$(find demo_moveit_config)/config/controllers.yaml"/><param name="use_controller_manager" value="false"/><param name="trajectory_execution/execution_duration_monitoring" value="false"/><param name="moveit_controller_manager" value="moveit_simple_controller_manager/MoveItSimpleControllerManager"/>
</launch>

在launch文件夹下新建文件,demo_planning_execution.launch,其内容如下:

<launch><rosparam command="load" file="$(find demo_moveit_config)/config/joint_names.yaml"/><include file="$(find demo_moveit_config)/launch/planning_context.launch" ><arg name="load_robot_description" value="true" /></include><node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher"><param name="/use_gui" value="false"/><rosparam param="/source_list">[/joint_states]</rosparam></node><include file="$(find demo_moveit_config)/launch/move_group.launch" ><arg name="publish_monitored_planning_scene" value="true" /></include><include file="$(find demo_moveit_config)/launch/moveit_rviz.launch" ><arg name="config" value="true" /></include></launch>

5. 使用MoveIt!控制仿真的机械臂

roslaunch demo_moveit_config demo_planning_execution.launch

会看到rviz界面出现,现在就可以在planning标签测试一下了。

使用MoveIt!控制Gazebo仿真环境中的UR 10机械臂相关推荐

  1. gazebo仿真环境中添加robotiq 2f 140的gripper_controller控制器

    gazebo仿真环境中添加robotiq 2f 140的gripper_controller控制器 搭建环境: ubuntu: 20.04 ros: Nonetic sensor: robotiq_f ...

  2. 如何在gazebo仿真环境中给sumit_xl模型添加多线激光雷达

    一 :下载以sumit_xl模型 $ cd ~/catkin_ws/src $ git clone https://TheConstruct@bitbucket.org/theconstructcor ...

  3. ROS仿真环境中实现自主导航

    在看完自主导航小车实践的教程(自主导航小车实践)后,很多小伙伴留言说,在学习自主导航小车的时候手上没有合适的ROS机器人底盘做实验,缺少动手操作的机会,学习不深刻.对于底盘问题,我们也分享过一个制作麦 ...

  4. ROS开发笔记(5)——基于 python 开发 Turtlebot3 Gazebo仿真环境下键盘操控移动机器人(Teleop-bot )

    前文中记录了随机移动机器人的开发过程,本文内容为Turtlebot3 Gazebo仿真环境下Teleop-bot 键盘操控移动机器人,主要包含以下几个部分: 1.键盘驱动(按键驱动发布keys话题) ...

  5. 如何生成gazebo仿真环境的二维地图真值

    在移动机器人仿真中,二维地图真值可以用来评价slam建图结果,也可以直接给路径规划算法提供输入. 利用gazebo进行仿真时,有很多方法都可以获取静态仿真环境的二维地图真值,本文将对以下链接: hyf ...

  6. 【Autoware入门教程】如何在Gazebo仿真环境配置自动驾驶汽车

    假设你已经安装好了Autoware,Autoware源码中其实已经配置有Gazebo仿真环境,当然你也可以根据自己的需要另外下载自动驾驶汽车的仿真模型.该汽车模型已经默认配置好了Velodyne HD ...

  7. UR5机械臂与realsense相机在Gazebo仿真环境下的手眼标定(眼在手上)

    简介 这是一个Gazebo仿真环境下利用UR5机械臂和realsense相机进行手眼标定的教程(眼在手上). 准备相关文件 # UR5 git clone https://github.com/Uni ...

  8. Qt中动态显示六轴机械臂的STL三维模型

    Qt中动态显示六轴机械臂的STL三维模型 运动仿真 STL模型 openGL显示STL ASCII格式的STL文件 读取STL文件 openGL中显示STL模型 运动学变换 两个坑 最终效果 运动仿真 ...

  9. 《机器人动力学与控制》第五章——速度运动学之机械臂的雅各比矩阵 5.0 导言

    文章目录 <机器人动力学与控制>第五章--速度运动学之机械臂的雅各比矩阵 5.0 导言 参考文献 <机器人动力学与控制>第五章--速度运动学之机械臂的雅各比矩阵 5.0 导言 ...

最新文章

  1. 医院六级电子病历建设思路及要点
  2. react引入多个图片_重新引入React:v16之后的每个React更新都已揭开神秘面纱。
  3. Mars说光场(4)— 光场显示
  4. 关于RMAN几个容易混淆的参数
  5. ibatis基础(三):查询指定id的单个对象
  6. 012_日期内建函数
  7. 新茶饮“降价内卷”的尽头,是供应链?
  8. 20080823-jsp中include指令与动作的不同
  9. Adroid学习之 从源码角度分析-禁止使用回退按钮方案
  10. Linux内存管理:内存描述之内存节点node
  11. sqlite的交叉编译及移植 -转
  12. XP系统如何把文本转换成html,xp系统下将HTML文件设置为屏保的方法
  13. 多商户商城小程序系统(附微信抖音小程序商城分销系统源码)
  14. 力软java版_力软未来产品发展方向
  15. 两个三进制数相加,输出一个结果为三进制形式的和
  16. 超级表格终于上线「文件转让」功能!文件调动容易解决!
  17. KEIL MDK中的RO、RW和ZI
  18. @Value注解获取不到配置值
  19. ANSYS|workbench输出梁的剪力图和弯矩图
  20. Java在Quant应用_GitHub - tigerfintech/tiger_quant: Java 实盘量化框架

热门文章

  1. Golang GUI编程-图形化界面库简介
  2. CSS学习笔记10:超链接样式
  3. 下一站,回家过年 (含泪都要看完)
  4. python tkinter画布设置按钮对图片放大缩小_使用Tkinter画布小部件添加放大和缩小?...
  5. 阿里云AI训练营 Class4课程笔记
  6. python跳转下一页_在selenium python中访问下一页上的元素
  7. 遇到‘nvcc‘ 不是内部或外部命令,也不是可运行的程序或批处理文件怎么办?亲测有效
  8. Numpy:np.tile()函数
  9. 网络教育与自考,成教有什么区别?
  10. 2021-05-19 人工智能图片识别