动手学Moveit2|使用配置助手创建自己机械臂的功能包

大家好,我是小鱼,moveit2出来有一阵子了,之前一直在忙导航,没有时间测试moveit2,今天我们拿一个机械臂来配置下moveit2的功能包,并简单跑跑运动规划试试,顺便写一下小教程给大家。

小鱼所用的平台:

  • 系统:Ubuntu22.04 ROS2 HUMBLE
  • Moveit2版本:2.5.3-1jammy.20220909.052507
  • 机械臂:https://github.com/fishros/elite_robot_ros2

1.安装Moveit2和配置助手

直接二进制安装即可,如果想源码安装,可以参考小鱼之前的教程

sudo apt install  ros-humble-moveit ros-humble-moveit-setup-assistant -y

下载机械臂功能包

git clone https://github.com/fishros/elite_robot_ros2

2.运行配置助手

运行配置助手前,记得先编译并source功能包,source过功能包,urdf里对机械臂描述中使用的package://elite_description才能被找到。

colcon build
source install/setup.bash

之后再运行配置助手

 ros2 run moveit_setup_assistant moveit_setup_assistant


3.配置过程

3.1 加载机械臂

配置助手上有两个按钮,一个是创建新的配置包,另外一个是编辑一个已经配置好的包,这里我们选择创建新的。

这里需要提供URDF文件,如果你的机械臂是xacro格式,可以安装xacro之后将其转为urdf使用。
接着我们点击Browse,选择ec66_description.urdf文件。

点击Open

接着点击LoadFile,加载文件,不出错你将看到下面的界面,如果崩溃了一般是urdf有问题,先确定urdf能正常显示。

3.2 设置自我碰撞

从左边选择Self Collisions,接着点击右边的Generate Collision Matrix,这一步是用于生成关节之间的自我碰撞姿态,可以再规划时快速检测自我碰撞。

3.3 虚拟关节

这里可以直接跳过,如果你想把机械臂接在某个link(比如世界坐标系或者某个小车link上)上可以加一个。

3.4 规划组(重点)

点击右边的Planing Groups,规划组的概念是Moveit中非常重要的概念,后续的控制都是基于规划组进行的,这里只是一个六轴的机械臂,只添加一个规划组就可以,这个规划组一般包含一个规划链即可,规划链指的是机械臂的base_linkend_link
点击右下角Add Group
定义规划组界面

输入规划组的名称,运动学求解器可以选择KDL,规划器选择RRTConnect

接着点击Add Kin.Chain添加规划,接着展开规划链,在下输入base_link和tip_link对应的link名称。

接着点击保存。

3.5 机器人位姿

点击右边Robot Poses切换

点击Add Pose

输入名称,这里我们定义一个home,并把关节的坐标做一下修改。

点击保存

3.6 配置ros_control URDF Modiificatoins

接着在右边选择ros_control URDF 修改,末端执行器和被动关节可以跳过。
接着我们来说说ros2_control的配置,Moveit2里机械臂要动起来是全部通过ros2_control来进行的。
机械臂是一个硬件,其每一个关节可以通过位置、速度和力来控制,同时关节的反馈也是这三者,基于这些接口我们可以定义相应的控制器,在moveit2中我们主要用到了两个控制器。

  • 第一个是关节状态反馈控制器,很明显这是一个输出的控制器,没错,这个控制器会根据机
    械臂的状态发布/joint_states话题。
  • 第二个是关节轨迹控制器,用于控制关节的位置。

我们继续配置,在这个界面我们只需要点一个Add interface即可,左边选位置控制器,右边的反馈位置和速度就够了。

3.7 ROS 2 COntrollers

点击Auto Add关节轨迹控制器即可,这里就是小鱼上面的关节轨迹控制器,用于接受moveit2规划的结果并执行的。

3.8 Moveit 控制器

上面的Ros2 Controller是用于控制机械臂的控制器的服务器端,这里Moveit控制器相当于是客户端,点击Auto Add 即可。

3.9 配置作者信息

后面两个Perception和Launch File采用默认的即可,这里要给个好评(生成的launch文件可以根据需求增删了,不像moveit1里一大堆),直接选择作者信息,填写一下。

3.10 生成功能包

接着我们选择生成配置文件页面,点击Brows选择一个空的文件夹,等下生成的文件都会放在这个文件夹里。
之后点击Generate Package(中间会跳一个窗口,直接确认即可)

4.总结

今天没时间了,先生成功能包,下一步还需要装一些依赖才能运行,明天再补充下面的内容。

### ROS MoveIt2 教程与资源概述 #### 移动规划的重要性 在机器人领域,运动规划对于实现自主控制至关重要。无论是工业机械的精确操作还是服务机器人的灵活移动,均依赖于高效的运动规划算法的支持[^1]。 #### MoveIt2简介及其重要性 MoveIt作为一款广泛应用于机器人运动规划和控制的开源框架,在ROS社区中占据核心地位。随着ROS 2的发展,MoveIt也升级到了版本2,进一步增强了其功能性和兼容性。MoveIt2不仅继承了前代产品的优势,还针对ROS 2的特点进行了优化改进,提供了更加强大稳定的性能表现。 #### 获取官方文档和支持材料 为了帮助开发者更好地理解和应用MoveIt2,官方团队准备了大量的学习资料和技术支持渠道: - **官方网站**: 提供详细的安装指南、配置说明以及API参考手册。 - **GitHub仓库**: 含完整的源码文件及贡献者提交的各种插件扩展。 - **Discourse论坛**: 用户可以在这里交流经验心得,寻求解决问题的方法。 - **YouTube频道**: 定期更新教学视频系列,直观演示如何利用MoveIt2完成特定任务场景下的编程工作流。 #### 实际案例分析——基于Ubuntu系统的ABB IRB120集成方案 当考虑将MoveIt2应用于实际硬件设备时,一个典型的例子是在Ubuntu环境下通过ROS Melodic连接并操控一台真实的ABB IRB120六轴关节型工业机械。此过程涉及多台计算机之间的协同作业:其中一台运行Linux发行版负责发送指令给另一台安装有RobotStudio软件的工作站来驱动虚拟模型动作;而最终目标则是让物理装置按照预期轨迹执行抓取放置物品的动作序列[^3]。 ```bash roslaunch marm_planning arm_planning.launch rosrun marm_planning moveit_pick_and_place_demo.py ``` 上述脚本展示了启动模拟环境中的一次典型pick-and-place实验流程,它同样适用于真实世界的ABB机械手控制系统当中[^4]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值