ros的技术案例
introduction
今天这篇文章将记录我使用mycobot 280 m5stack 在ros当中是如何使用的。为什么使用ros呢,因为提及到机器人都离不开ros这个操作系统,今天是我们第一次使用ros这个系统。
今天我将从ros的介绍,环境的配置以及mycobot280 在ros当中的使用。
ros
ros(robot operating system,机器人操作系统)是一个用于编写机器人软件的灵活的框架。它是一个半开源的项目,为研究人员和开发者提供了一套工具和库,以帮助他们创建各种机器人应用。ros主要用于研究和开发各种机器人系统,如自动驾驶车辆、服务机器人、工业机器人、无人机等。它使得机器人的开发更加高效,也使得机器人的功能更加强大和灵活。ros操作系统目前最受关注的两个模块是导航(navigation)和机械臂控制(moveit)其中moveit可以让用户快速建立机械臂模型并实现机械臂的控制,例如建模,运动学求解,运动规划,避障等功能。介于有这么一个强大的系统,我想用它来仿真实现一些机械臂的避障,路径规划等功能。
环境配置
ros主要支持ubuntu(linux),mac os(缺少部分的支持)这些操作系统,最常见的还是在ubuntu系统上使用。我电脑安装的是ubuntu18.04版本,ubuntu18对应的ros版本是melodic,不同版本的ubuntu对应不同ros版本。
ubuntu16.04-kinetic
ubuntu18.04-melodic
ubuntu20.04-noetic
由于我电脑已经安装好了系统以及ros环境,这边就不一一记录了,主要还是记录ros当中的操作。 关于ubuntu系统的安装和ros环境的搭建大家可以在google当中搜索,ros官网也有详细的安装教程。
ros: getting started
我今天使用的场景是moveit控制机械臂,所以对于电脑硬件的需求不高,这边注意如果是使用slam雷达导航等功能,可能就需要高配一些的电脑来处理运算能力。
检测自己是否安装完成ros的标准,打开终端输入“roscore”,出现跟下图一样的内容代表安装成功了。
让我们开始使用ros吧。
ros的使用
在ros当中创建一个机械臂,并且使用一些路径规划的功能需要执行以下步骤。
创建urdf的文件,也就是机械臂的模型
将urdf文件加载到ros服务器当中
使用rviz进行可视化
创建moveit配置包
使用moveit进行运动规划
创建urdf文件
首先咱得创建机械臂的urdf(unified robot description format)文件,这个文件至关重要,因为机械臂的3d模型,这个文件描述了机械臂的属性,如关节,链接和传感器。由于该产品是大象机器人的一款机械臂mycobot 280 m5stack,大象机器人在github有提供mycobot 280的urdf文件描述了机械臂的一些物理属性。
https://github.com/elephantrobotics/mycobot_ros/tree/noetic/mycobot_description/urdf
如何生成urdf文件:
需要使用cad软件制作模型,确保制作的3d模型跟实际的机械臂尺寸一致。因为导出的模型要是一个可以被ros接受的格式,通常是dae(collada)文件。
将urdf加载到ros服务器
创建ros包
创建一个存放urdf文件的包,在终端执行下面的代码
catkin_create_pkg mycobot_description rospy std_msgs sensor_msgs
其中‘rospy’,‘std_msgs'和’sensor_msgs'是ros的依赖包
将生成的urdf文件添加到mycobot_description/urdf的目录下
创建启动文件
在mycobot_description/launch目录下创建一个load_urdf.launch文件,在其中添加以下内容
启动ros文件qi
我们在打开终端输入下面的命令。
roslaunch my_robot_description load_urdf.launch
运行完之后,就可以在rviz当中看到我们创建的模型了。
配置moveit
启动moveit setup assistant:
在终端中,运行以下命令来启动moveit setup assistant:
roslaunch moveit_setup_assistant setup_assistant.launch
在moveit当中加载urdf
在moveit setup assistant的主界面,点击“create new moveit configuration package”按钮。然后,在弹出的对话框中,选择我的urdf文件(在ros参数robot_description中)。点击“load files”按钮来加载你的urdf文件。显示下图就加载成功了。
配置我的机器人
根据自己的需求来配置自己的机器人。这里简要介绍几个配置:
self-collisions:moveit会自动计算你的机器人的自碰撞矩阵。可以点击“regenerate default collision matrix”按钮来生成默认的自碰撞矩阵。
virtual joints:可以为你的机器人定义虚拟关节。虚拟关节通常用于连接你的机器人和世界。
planning groups:可以定义你的机器人的规划组。规划组是一组需要一起移动的关节和链。例如,你可以创建一个包含所有手臂关节的规划组。
robot poses:可以定义你的机器人的预设姿态。预设姿态可以在规划中被重复使用。
运行moveit
配置完成之后会生成.launch的文件,我们运行它就可以在moveit中使用机械臂了。
我们来看看moveit的功能如何进行路径规划,拖动机械臂末端的坐标,可以对机械臂进行运动的变化,也可以随机生成路径。
物体避障
我们在moveit中添加一个障碍物让机械臂进行避障,添加一个方块,让机械臂在做轨迹的时候绕过它。
除此之外moveit还有许多功能例如,运动规划,可以为多关节的机器人进行路径规划,避免碰撞,并且还可以是用多种运动规划算法rrt,est,lbkpiece等;碰撞检测,可以进行复杂的3d碰撞检测,包括子碰撞和环境碰撞(障碍物);仿真,可以于gazebo机器人仿真器继承,进行真实的物理仿真等等功能。
总结
moveit提供了一套完整的工具集,可以用于机械臂的运动规划和控制的研究,无需从头开始构建复杂的运动规划系统。这可以使得开发人员将更多的经理集中在实现具体的应用功能上,而不是解决底层的运动规划和控制问题上。总的来说,ros和moveit为机器人技术的发展提供了强大的支持。它们不仅降低了开发难度,提高了开发效率,而且还推动了机器人技术的创新和应用。无论你是机器人技术的研究者,还是实际应用的开发者,ros和moveit都将是你不可或缺的工具。
我在未来也会继续探索更多的机械臂项目,并不定期分享我的发现和成果。如果你发现本文中有一些错误欢迎跟我进行沟通,如果你喜欢这篇文章留下你的点赞和评论是对我最大的支持!
一次消谐使用注意事项
深圳重磅发文!为传感器装上鸿蒙系统,剑指这个万亿市场!
WiMi-net微网高通如何选择CPU处理器
什么是寿命试验_高加速寿命试验是什么意思
Ecovacs推出无线窗口清理机器人--WinbotX,做到了真正摆脱线缆的束缚
使用ROS与Movelt实现myCobot 280运动轨迹规划和控制
如何通过光学角度考量灯具的好坏
轧钢棒材测径仪实用价值高
迈进5G时代:机会来了
紫光展锐计划明年推出5G芯片产品
我国风电及光伏产业的未来发展趋势分析
张家港将围绕新基建积极布局,为经济发展打造“新引擎”
NSAT-1200射频组件自动测试系统的应用和使用步骤
为什么电容器会带电荷?
安森美半导体越来越重视和拥抱互联网带来的数字经济创新
平安普惠正式推出全球信贷领域首个AI视频面审机器人
硕盟TYPE C转HDMI+VGA+USB3.0+PD3.0
地表水湖水在线多参数水质监测系统介绍
奔驰“数字灯光” 自动投射交通标识提高行车安全系数
基于ARM和Linux通用工控平台设计与实现