使用MoveIt!控制Gazebo仿真环境中的UR 10机械臂
参考资料: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机械臂相关推荐
- gazebo仿真环境中添加robotiq 2f 140的gripper_controller控制器
gazebo仿真环境中添加robotiq 2f 140的gripper_controller控制器 搭建环境: ubuntu: 20.04 ros: Nonetic sensor: robotiq_f ...
- 如何在gazebo仿真环境中给sumit_xl模型添加多线激光雷达
一 :下载以sumit_xl模型 $ cd ~/catkin_ws/src $ git clone https://TheConstruct@bitbucket.org/theconstructcor ...
- ROS仿真环境中实现自主导航
在看完自主导航小车实践的教程(自主导航小车实践)后,很多小伙伴留言说,在学习自主导航小车的时候手上没有合适的ROS机器人底盘做实验,缺少动手操作的机会,学习不深刻.对于底盘问题,我们也分享过一个制作麦 ...
- ROS开发笔记(5)——基于 python 开发 Turtlebot3 Gazebo仿真环境下键盘操控移动机器人(Teleop-bot )
前文中记录了随机移动机器人的开发过程,本文内容为Turtlebot3 Gazebo仿真环境下Teleop-bot 键盘操控移动机器人,主要包含以下几个部分: 1.键盘驱动(按键驱动发布keys话题) ...
- 如何生成gazebo仿真环境的二维地图真值
在移动机器人仿真中,二维地图真值可以用来评价slam建图结果,也可以直接给路径规划算法提供输入. 利用gazebo进行仿真时,有很多方法都可以获取静态仿真环境的二维地图真值,本文将对以下链接: hyf ...
- 【Autoware入门教程】如何在Gazebo仿真环境配置自动驾驶汽车
假设你已经安装好了Autoware,Autoware源码中其实已经配置有Gazebo仿真环境,当然你也可以根据自己的需要另外下载自动驾驶汽车的仿真模型.该汽车模型已经默认配置好了Velodyne HD ...
- UR5机械臂与realsense相机在Gazebo仿真环境下的手眼标定(眼在手上)
简介 这是一个Gazebo仿真环境下利用UR5机械臂和realsense相机进行手眼标定的教程(眼在手上). 准备相关文件 # UR5 git clone https://github.com/Uni ...
- Qt中动态显示六轴机械臂的STL三维模型
Qt中动态显示六轴机械臂的STL三维模型 运动仿真 STL模型 openGL显示STL ASCII格式的STL文件 读取STL文件 openGL中显示STL模型 运动学变换 两个坑 最终效果 运动仿真 ...
- 《机器人动力学与控制》第五章——速度运动学之机械臂的雅各比矩阵 5.0 导言
文章目录 <机器人动力学与控制>第五章--速度运动学之机械臂的雅各比矩阵 5.0 导言 参考文献 <机器人动力学与控制>第五章--速度运动学之机械臂的雅各比矩阵 5.0 导言 ...
最新文章
- 医院六级电子病历建设思路及要点
- react引入多个图片_重新引入React:v16之后的每个React更新都已揭开神秘面纱。
- Mars说光场(4)— 光场显示
- 关于RMAN几个容易混淆的参数
- ibatis基础(三):查询指定id的单个对象
- 012_日期内建函数
- 新茶饮“降价内卷”的尽头,是供应链?
- 20080823-jsp中include指令与动作的不同
- Adroid学习之 从源码角度分析-禁止使用回退按钮方案
- Linux内存管理:内存描述之内存节点node
- sqlite的交叉编译及移植 -转
- XP系统如何把文本转换成html,xp系统下将HTML文件设置为屏保的方法
- 多商户商城小程序系统(附微信抖音小程序商城分销系统源码)
- 力软java版_力软未来产品发展方向
- 两个三进制数相加,输出一个结果为三进制形式的和
- 超级表格终于上线「文件转让」功能!文件调动容易解决!
- KEIL MDK中的RO、RW和ZI
- @Value注解获取不到配置值
- ANSYS|workbench输出梁的剪力图和弯矩图
- Java在Quant应用_GitHub - tigerfintech/tiger_quant: Java 实盘量化框架
热门文章
- Golang GUI编程-图形化界面库简介
- CSS学习笔记10:超链接样式
- 下一站,回家过年 (含泪都要看完)
- python tkinter画布设置按钮对图片放大缩小_使用Tkinter画布小部件添加放大和缩小?...
- 阿里云AI训练营 Class4课程笔记
- python跳转下一页_在selenium python中访问下一页上的元素
- 遇到‘nvcc‘ 不是内部或外部命令,也不是可运行的程序或批处理文件怎么办?亲测有效
- Numpy:np.tile()函数
- 网络教育与自考,成教有什么区别?
- 2021-05-19 人工智能图片识别