0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用ROS与Movelt实现myCobot 280运动轨迹规划和控制

大象机器人科技 来源:大象机器人科技 作者:大象机器人科技 2023-09-18 16:07 次阅读

ROS的技术案例
Introduction
今天这篇文章将记录我使用myCobot 280 M5stack 在ROS当中是如何使用的。为什么使用ROS呢,因为提及到机器人都离不开ROS这个操作系统,今天是我们第一次使用ROS这个系统。

今天我将从ROS的介绍,环境的配置以及mycobot280 在ROS当中的使用。

ROS
ROS(Robot Operating System,机器人操作系统)是一个用于编写机器人软件的灵活的框架。它是一个半开源的项目,为研究人员和开发者提供了一套工具和库,以帮助他们创建各种机器人应用。ROS主要用于研究和开发各种机器人系统,如自动驾驶车辆、服务机器人、工业机器人无人机等。它使得机器人的开发更加高效,也使得机器人的功能更加强大和灵活。ROS操作系统目前最受关注的两个模块是导航(navigation)和机械臂控制(moveit)其中moveit可以让用户快速建立机械臂模型并实现机械臂的控制,例如建模,运动学求解,运动规划,避障等功能。介于有这么一个强大的系统,我想用它来仿真实现一些机械臂的避障,路径规划等功能。

wKgZomUIA_eASLadAAA1q3d5_x8828.png

环境配置
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”,出现跟下图一样的内容代表安装成功了。

wKgaomUIBCCANP5jAAGc38cIscY887.png

让我们开始使用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)文件。

wKgaomUIBDCATGYcAAFzj1SauAA440.png

wKgaomUIBEKAaHpAAACSIimIX00453.png

将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当中看到我们创建的模型了。

wKgZomUIBI6AZOvSAAMmJgykyz4158.png

配置MoveIt
启动MoveIt Setup Assistant:

在终端中,运行以下命令来启动MoveIt Setup Assistant:

roslaunch moveit_setup_assistant setup_assistant.launch

wKgZomUIBJ2AL7jYAAMwNgZzm6k897.png

在MoveIT当中加载URDF

在MoveIt Setup Assistant的主界面,点击“Create New MoveIt Configuration Package”按钮。然后,在弹出的对话框中,选择我的URDF文件(在ROS参数robot_description中)。点击“Load Files”按钮来加载你的URDF文件。显示下图就加载成功了。

wKgZomUIBHaAczDeAAHZxIAAado580.png

配置我的机器人

根据自己的需求来配置自己的机器人。这里简要介绍几个配置:

Self-Collisions:MoveIt会自动计算你的机器人的自碰撞矩阵。可以点击“Regenerate Default Collision Matrix”按钮来生成默认的自碰撞矩阵。
Virtual Joints:可以为你的机器人定义虚拟关节。虚拟关节通常用于连接你的机器人和世界。
Planning Groups:可以定义你的机器人的规划组。规划组是一组需要一起移动的关节和链。例如,你可以创建一个包含所有手臂关节的规划组。
Robot Poses:可以定义你的机器人的预设姿态。预设姿态可以在规划中被重复使用。
运行moveit

配置完成之后会生成.launch的文件,我们运行它就可以在moveit中使用机械臂了。

wKgaomUIBHyAEC0SAAKoMX9eVVY098.png

我们来看看moveit的功能如何进行路径规划,拖动机械臂末端的坐标,可以对机械臂进行运动的变化,也可以随机生成路径。

wKgZomUIBMaAYrxgABhSJ1qClu8396.png

物体避障

我们在moveit中添加一个障碍物让机械臂进行避障,添加一个方块,让机械臂在做轨迹的时候绕过它。

wKgaomUIBNeAepITABLGL5Df-sA962.png

除此之外moveit还有许多功能例如,运动规划,可以为多关节的机器人进行路径规划,避免碰撞,并且还可以是用多种运动规划算法RRT,EST,LBKPIECE等;碰撞检测,可以进行复杂的3D碰撞检测,包括子碰撞和环境碰撞(障碍物);仿真,可以于gazebo机器人仿真器继承,进行真实的物理仿真等等功能。

总结
MoveIt提供了一套完整的工具集,可以用于机械臂的运动规划和控制的研究,无需从头开始构建复杂的运动规划系统。这可以使得开发人员将更多的经理集中在实现具体的应用功能上,而不是解决底层的运动规划和控制问题上。总的来说,ROS和MoveIt为机器人技术的发展提供了强大的支持。它们不仅降低了开发难度,提高了开发效率,而且还推动了机器人技术的创新和应用。无论你是机器人技术的研究者,还是实际应用的开发者,ROS和MoveIt都将是你不可或缺的工具。

我在未来也会继续探索更多的机械臂项目,并不定期分享我的发现和成果。如果你发现本文中有一些错误欢迎跟我进行沟通,如果你喜欢这篇文章留下你的点赞和评论是对我最大的支持!

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器人
    +关注

    关注

    206

    文章

    27043

    浏览量

    201423
  • 机械臂
    +关注

    关注

    9

    文章

    474

    浏览量

    23827
  • ROS
    ROS
    +关注

    关注

    1

    文章

    271

    浏览量

    16682
收藏 人收藏

    评论

    相关推荐

    EtherCAT运动控制器在ROS上的应用开发案例(下)

    本篇文章我们主要介绍正运动技术动态链接库环境配置以及EtherCAT运动控制器在ROS下的单轴运动
    的头像 发表于 03-17 11:11 459次阅读
    EtherCAT<b class='flag-5'>运动</b><b class='flag-5'>控制</b>器在<b class='flag-5'>ROS</b>上的应用开发案例(下)

    EtherCAT运动控制器在ROS上的应用开发案例(上)

    本文以正运动技术EtherCAT运动控制器ZMC432和ZMC408CE为例,介绍正运动技术运动控制
    的头像 发表于 03-17 11:06 557次阅读
    EtherCAT<b class='flag-5'>运动</b><b class='flag-5'>控制</b>器在<b class='flag-5'>ROS</b>上的应用开发案例(上)

    EtherCAT运动控制器在ROS上的应用(上)

    本文以正运动技术EtherCAT运动控制器ZMC432和ZMC408CE为例,介绍正运动技术运动控制
    的头像 发表于 03-06 11:47 709次阅读
    EtherCAT<b class='flag-5'>运动</b><b class='flag-5'>控制</b>器在<b class='flag-5'>ROS</b>上的应用(上)

    LabVIEW的六轴工业机器人运动控制系统

    LabVIEW开发六轴工业机器人运动控制系统 本项目开发了一个高效的工业机器人控制系统,重点关注于运动学算法和轨迹
    发表于 12-21 20:03

    ROS Motion Planning运动规划库如何安装相关依赖

    下载/克隆ROS Motion Planning运动规划库 可以执行以下两条指令来从Github上克隆ROS Motion Planning运动
    的头像 发表于 11-26 17:29 739次阅读

    如何创建新的ROS工作空间

    创建新的ROS工作空间 由于ROS Motion Planning运动规划库与Navigation导航包存在一些同名但源码和功能不同的功能包,比如global_planne。 因此,个
    的头像 发表于 11-26 17:09 889次阅读
    如何创建新的<b class='flag-5'>ROS</b>工作空间

    OriginBot轨迹跟踪运行案例

    2 launchoriginbot_autonomous originbot_mpc.launch.py 同时,打开rviz后可以在界面中看到,有如下轨迹显示 原理浅析 PurePuesuit 和 MPC 算法是自动驾驶中常用的控制算法,目的是为了让
    的头像 发表于 11-15 14:29 210次阅读
    OriginBot<b class='flag-5'>轨迹</b>跟踪运行案例

    全国产EtherCAT运动控制边缘控制器ZMC432H如何使用Python+QT实现连续轨迹加工

    今天,正运动小助手给大家分享一下全国产EtherCAT运动控制边缘控制器ZMC432H如何使用Python+QT实现连续
    的头像 发表于 11-06 16:03 359次阅读
    全国产EtherCAT<b class='flag-5'>运动</b><b class='flag-5'>控制</b>边缘<b class='flag-5'>控制</b>器ZMC432H如何使用Python+QT<b class='flag-5'>实现</b>连续<b class='flag-5'>轨迹</b>加工

    全国产EtherCAT运动控制边缘控制器(六):RtBasic文件下载与连续轨迹加工的Python+Qt开发

    今天,正运动小助手给大家分享一下全国产EtherCAT运动控制边缘控制器ZMC432H如何使用Python+QT实现连续
    的头像 发表于 11-02 16:45 311次阅读
    全国产EtherCAT<b class='flag-5'>运动</b><b class='flag-5'>控制</b>边缘<b class='flag-5'>控制</b>器(六):RtBasic文件下载与连续<b class='flag-5'>轨迹</b>加工的Python+Qt开发

    PLC的运动控制到底是什么?plc插补与同步插补区别

    PLC的运动控制是指PLC系统通过控制运动设备的运动轴,实现精确、稳定和可编程的
    的头像 发表于 10-23 08:08 739次阅读
    PLC的<b class='flag-5'>运动</b><b class='flag-5'>控制</b>到底是什么?plc插补与同步插补区别

    开源六轴机械臂myCobot 280末端执行器实用案例解析

    使用。 本文中主要介绍4款常用的机械臂的末端执行器。 Product myCobot 280 M5Stack myCobot 280 系列是世界最小最轻的六轴协作机器人,体积小巧但功能
    的头像 发表于 10-16 16:28 562次阅读
    开源六轴机械臂<b class='flag-5'>myCobot</b> <b class='flag-5'>280</b>末端执行器实用案例解析

    自动驾驶轨迹规划功能模块图

    轨迹规划(路径规划轨迹规划功能模块图 轨迹规划
    的头像 发表于 10-04 18:10 420次阅读
    自动驾驶<b class='flag-5'>轨迹</b><b class='flag-5'>规划</b>功能模块图

    PLC与运动控制器的区别 运动控制器的工作原理

    运动控制器的工作原理是将预定的控制方案、规划指令转变成期望的机械运动实现机械
    发表于 06-25 10:44 2614次阅读
    PLC与<b class='flag-5'>运动</b><b class='flag-5'>控制</b>器的区别 <b class='flag-5'>运动</b><b class='flag-5'>控制</b>器的工作原理

    如何从电机控制转换为运动控制

    运动控制是工业自动化系统的子系统。它同步化控制多个电机来完成一系列运动。例如,多轴机械臂需要多个电机无缝地协同运行才能做出特定的动作。运动
    的头像 发表于 05-25 10:28 442次阅读
    如何从电机<b class='flag-5'>控制</b>转换为<b class='flag-5'>运动</b><b class='flag-5'>控制</b>

    使用myCobot 280 Jeston Nano进行物体精确识别追踪

    ,以便在实际应用中发挥作用,这个项目涉及到许多技术和算法,包括视觉识别、手眼协同和机械臂控制等方面。 机械臂的介绍 mycobot280-JetsonNano 操作使用的机械臂是myCobot280-Jetson Nano 这是
    的头像 发表于 05-24 18:20 1101次阅读
    使用<b class='flag-5'>myCobot</b> <b class='flag-5'>280</b> Jeston Nano进行物体精确识别追踪