ROS Gazebo 6D机械臂抓取仿真实验
一、基础知识
1.1 URDF
URDF是ROS中机器人模型的描述格式,包括机器人的外观、物理属性、关节类型等方面。
<robot>
:最顶层标签<link>
:描述刚提的外观形状、碰撞几何、颜色、惯性矩阵等<joint>
:描述两个link之间的关系,有6种类型,最常用的是revolute
类型,有关节位置限制的旋转关节
xacro模型可以将部分URDF打包成一个"类",在其他模型中调用。
功能包中一般包括以下四个部分
cfg
:配置文件launch
:加载urdf模型,并在rviz中展示meshes
:urdf用到的外观模型urdf
:urdf模型定义
1.2 Gazebo
1.3 Moveit控制
(1)Moveit!大致功能
- 运动学计算
- 运动规划
- 碰撞检测
最重要的节点是move_group
,输入可以是RVIZ中的数据或点云和深度图。路径规划一般使用的OMPL库,碰撞检测使用FCL库。最后发送个机械臂让机械臂执行轨迹。
1.4 机械臂运动规划
1.5 基于深度学习的视觉避障
二、实验环境搭建
1.1 安装ROS
![[01-Ubuntu20.04安装ROS Noetic#二、安装ROS]]
1.2 安装Moveit!
1 | sudo apt install ros-noetic-moveit |
1.3 安装UR机器人及驱动
复制代码后,修改下面的内容,使其能在noetic版本的ros上运行。
1 | gedit ~/catkin_ws/src/universal_robot/ur_msgs/srv/SetPayload.srv |
1 | float32 payload |
1 | gedit ~/catkin_ws/src/universal_robot/ur_msgs/CMakeLists.txt |
1 | cmake_minimum_required(VERSION 2.8.3) |
1 | gedit ~/catkin_ws/src/universal_robot/ur_msgs/package.xml |
1 | <?xml version="1.0"?> |
完成之后,就可以编译了。source
之后使用roslaunch ur5_moveit_config demo.launch
1.4 简单测试
(1)Rviz打开UR5模型
机械臂夹爪模型路径为universal_robot/urdf/ur5_gripper_joint_limited_robot.urdf.xacro
。
可以通过universal_robot/ur_description/launch/view_ur5_with_gripper.launch
启动,从Rviz中查看模型情况,并使用joint_state_publisher_gui
对机械臂模型拖动控制。
1 | 无夹爪 |
(2)Rviz中Moveit测试
使用下面的程序可以在 Rviz 中进行 Moveit 轨迹规划测试。
1 | 无夹爪 |
(3)Gazebo中Moveit测试
1 | 无夹爪 |
ur5.launch
:用于启动 gazebo 仿真环境。具体包括以下几个部分,启动空环境、定义 robot_description 参数服务器、发送到gazebo中生成机器人、启动并加载控制器。
ur5_moveit_planning_execution.launch
:用于启动 MoveIt 相关组件。具体包括以下几个部分:设置 sim参数, 根据 sim 参数重映射 follow_joint_trajectory 话题,启动MoveIt。
moveit_rviz.launch
:用于启动 Rviz 相关组件。具体包括以下几个部分:加载配置参数,启动Rviz。
1 | 有夹爪 |
1.5 导入自定义物体
(1)网络方法
使用 MeshLab 加载自己的物体模型。
点击【Filters -> Normals … -> Compute normals for points sets】,按照默认设置确定即可。
点击【Filters -> Remeshing -> Surface Reconstruction: Screened Poisson】,按照默认设置确定即可。
点击【Filters -> Texture -> Parametrization: Trivial Per-Triangle】,按照如下设置,重要的是Method。
点击【Filters -> Texture -> Transfer Vertex Attributes to Textur(1 or 2 meshes)】,按照如下设置,重要的是Source Mesh和Target Mesh。
(2)摸索方法
点击【Filters -> Texture -> Parametrization: Flat Plane】
点击【Filters -> Texture -> Transfer Vertex Attributes to Textur(1 or 2 meshes)】