MoveIt的使用(二)机械臂URDF在ROS中MoveIt的配置和使用
一、机械臂在ros里面的可视化在SOLIDWORKS转换成urdf文件之后,生成的文件放在新建的功能包中后,编译(catkin_make),再执行下面代码即可运行可视化文件roslaunch description dispaly.launchroslaunch description gazebo.launch这两个文件是转换成urdf文件里面自动生成的,description是自己命名的sol
一、机械臂在ros里面的可视化
在SOLIDWORKS转换成urdf文件之后,生成的文件放在新建的功能包中后,编译(catkin_make),再执行下面代码即可运行可视化文件
roslaunch description dispaly.launch
roslaunch description gazebo.launch
这两个文件是转换成urdf文件里面自动生成的,description是自己命名的solidworks生成的文件,第一个是rviz可视化机械臂,第二个是gazebo仿真环境可视化机械臂。
运行之后需要把坐标系更改为base_link,在Add里面添加RobotModel,这样就可以显示机械臂了。
二、配置MoveIt!Setup Assistant
安装MoveIt
sudo apt-get install ros-noetic-moveit
source /opt/ros/noetic/setup.bash
这里可以用下面的代码查看是否安装成功,并查看moveit!的版本
moveit_version
然后启动MoveIt!Setup Assistant,这一步需要在新建的工作空间中执行,并且打开rocore ,再source一下,因为下面会需要选择功能包中的urdf文件,不在功能包中会失败。
roscore
source devel/setup.bash
rosrun moveit_setup_assistant moveit_setup_assistant
1.开始配置
在运行上一行代码后,会启动带有两个选择的开始屏幕:创建新的MoveIt配置包(Create New MoveIt Configuration Package)或编辑现有的MoveIt配置包(Edit Existing MoveIt Configuration Package)。
-
点击“创建新的moveit配置包”按钮。
-
后面的界面,选择功能包中的urdf文件,然后点击Load Files
如果遇到
'xarm_description'. Verify this package is inside your ROS workspace and is a proper ROS package.
1.首先需要确认,roscore是否已经运行。
2.在Workspace的devel文件夹下,打开命令行,并且输入source setup.bash,将文件目录加载到命令行中。
3.再次输入 rosrun moveit_setup_assistant moveit_setup_assistant 打开moveit!Setup assistant工具
2.产生自碰撞矩阵 Self-Collision Matrix
默认自碰撞矩阵生成器在机器人上搜索可以安全禁用碰撞检查的链接对,从而减少了运动计划的处理时间。当这些链接对始终处于碰撞状态,从不碰撞,处于机器人默认位置的碰撞状态或在运动链上彼此相邻时,这些链接对将被禁用。采样密度指定要检查自我碰撞的随机机器人位置的数量。较高的密度需要更多的计算时间,而较低的密度则有可能禁用不应禁用的对。默认值为10,000个冲突检查。并行执行冲突检查以减少处理时间。
- 单击左侧的“ 自碰撞”窗格选择器,然后单击“ 生成碰撞矩阵”按钮。在将您的计算结果显示在主表中之前,设置助手将工作几秒钟。
3.添加虚拟关节 virtual joint
这一步骤主要是将机械臂连接到其他部件上,这次咱们只用了机械臂,就不进行设置。
4.添加规划组 planning group
moveit通过定义规划组(planning group)来语义上定义机械臂的各个部分(如手臂和末端执行器),这一部分很重要。
-
点击左侧Planning Groups
-
点击Add Group
添加手臂规划组arm -
输入名称 arm
-
运动学求解器选择kdl_kinematics_plugin/KDLKinematicsPlugin
-
Kin.parameters file选择solidworks插件生成的config文件夹里面的文件
-
点击Add Joint ,会出现所有关节,选择属于机械臂的关节,再点击>添加到右侧。
这个地方要注意是属于机械臂的关节,还是末端执行器的关节。 -
点击保存
添加末端执行器规划组,步骤跟第一步一样,在选择关节的时候注意选择末端执行器的关节。
5.添加机器人姿态 Robot Poses
moveit允许添加预设的机器人姿态,方便之后使用,例如在后面进行运动规划的时候,一条语句就可以让机械臂运动到,预设的姿态。
- 选择左侧 Robot Poses
- 点击规划组arm,右侧会出现各个关节的滑条,拖动设置想要的姿态
- 点击Save保存
6.配置末端执行器End Effectors
MoveIt中会给末端执行器一个专门的标签-End Effectors。之前我们已经为末端执行器添加了规划组,这里我们要将其标记为End Effector
- 选择左侧End Effectors
- 点击Add End Effector
- End Effector Name设置为hand
- End Effector Group选择之前添加的末端执行器规划组
- 父关节选择为机械臂与末端执行器连接的关节
- 父规划组选择留空白
7.添加被动关节Passive Joints
如果机器人中有被动的关节(不是主动控制的关节),需要将其添加为被动关节,这样可以告诉MoveIt在规划运动的时候这些关节是无法主动控制的。
我们机械臂中没有被动关节,跳过这一步。
8.设置3D感知 3D Perception
这里可以为机械臂添加传感器,如kinetic。
参数配置参考tutorial
如没有传感器,设置为None
9.Gazebo仿真
如果需要在Gazebo中仿真,可以在这里生成需要的URDF文件。(不需要可以跳过)
生成URDF后,通过如下步骤在Gazebo中生成仿真
- 建立一个空的world
roslaunch gazebo_ros empty_world.launch paused:=true use_sim_time:=false gui:=true throttled:=false recording:=false debug:=true
- 加载模型
rosrun gazebo_ros spawn_model -file </path_to_new_urdf/file_name.urdf> -urdf -x 0 -y 0 -z 1 -model panda
10.添加作者信息
可以把自己的信息填入,之后发布的时候需要
- 选择Author Information
- 输入名字和邮箱
11.生成配置文件
- 选择左侧Configuration Files,点击Browse选择一个合适的位置,
三、启动rivz可视化
roslaunch marm_moveit_config demo.launch
关于这个时候的rviz以及moveit编程控制,下一个文章会详细讲解一下。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)