0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用ROS與Movelt實(shí)現(xiàn)myCobot 280運(yùn)動(dòng)軌跡規(guī)劃和控制

大象機(jī)器人科技 ? 來(lái)源:大象機(jī)器人科技 ? 作者:大象機(jī)器人科技 ? 2023-09-18 16:07 ? 次閱讀

ROS的技術(shù)案例
Introduction
今天這篇文章將記錄我使用myCobot 280 M5stack 在ROS當(dāng)中是如何使用的。為什么使用ROS呢,因?yàn)樘峒暗?a href="http://www.wenjunhu.com/soft/data/42-101/" target="_blank">機(jī)器人都離不開(kāi)ROS這個(gè)操作系統(tǒng),今天是我們第一次使用ROS這個(gè)系統(tǒng)。

今天我將從ROS的介紹,環(huán)境的配置以及mycobot280 在ROS當(dāng)中的使用。

ROS
ROS(Robot Operating System,機(jī)器人操作系統(tǒng))是一個(gè)用于編寫(xiě)機(jī)器人軟件的靈活的框架。它是一個(gè)半開(kāi)源的項(xiàng)目,為研究人員和開(kāi)發(fā)者提供了一套工具和庫(kù),以幫助他們創(chuàng)建各種機(jī)器人應(yīng)用。ROS主要用于研究和開(kāi)發(fā)各種機(jī)器人系統(tǒng),如自動(dòng)駕駛車(chē)輛、服務(wù)機(jī)器人、工業(yè)機(jī)器人、無(wú)人機(jī)等。它使得機(jī)器人的開(kāi)發(fā)更加高效,也使得機(jī)器人的功能更加強(qiáng)大和靈活。ROS操作系統(tǒng)目前最受關(guān)注的兩個(gè)模塊是導(dǎo)航(navigation)和機(jī)械臂控制(moveit)其中moveit可以讓用戶快速建立機(jī)械臂模型并實(shí)現(xiàn)機(jī)械臂的控制,例如建模,運(yùn)動(dòng)學(xué)求解,運(yùn)動(dòng)規(guī)劃,避障等功能。介于有這么一個(gè)強(qiáng)大的系統(tǒng),我想用它來(lái)仿真實(shí)現(xiàn)一些機(jī)械臂的避障,路徑規(guī)劃等功能。

wKgZomUIA_eASLadAAA1q3d5_x8828.png

環(huán)境配置
ROS主要支持Ubuntu(Linux),Mac OS(缺少部分的支持)這些操作系統(tǒng),最常見(jiàn)的還是在ubuntu系統(tǒng)上使用。我電腦安裝的是ubuntu18.04版本,Ubuntu18對(duì)應(yīng)的ROS版本是melodic,不同版本的ubuntu對(duì)應(yīng)不同ROS版本。

ubuntu16.04-kinetic
ubuntu18.04-melodic
ubuntu20.04-noetic
由于我電腦已經(jīng)安裝好了系統(tǒng)以及ROS環(huán)境,這邊就不一一記錄了,主要還是記錄ROS當(dāng)中的操作。 關(guān)于ubuntu系統(tǒng)的安裝和ROS環(huán)境的搭建大家可以在Google當(dāng)中搜索,ROS官網(wǎng)也有詳細(xì)的安裝教程。

ROS: Getting Started

我今天使用的場(chǎng)景是moveit控制機(jī)械臂,所以對(duì)于電腦硬件的需求不高,這邊注意如果是使用SLAM雷達(dá)導(dǎo)航等功能,可能就需要高配一些的電腦來(lái)處理運(yùn)算能力。

檢測(cè)自己是否安裝完成ROS的標(biāo)準(zhǔn),打開(kāi)終端輸入“roscore”,出現(xiàn)跟下圖一樣的內(nèi)容代表安裝成功了。

wKgaomUIBCCANP5jAAGc38cIscY887.png

讓我們開(kāi)始使用ROS吧。

ROS的使用
在ROS當(dāng)中創(chuàng)建一個(gè)機(jī)械臂,并且使用一些路徑規(guī)劃的功能需要執(zhí)行以下步驟。

創(chuàng)建URDF的文件,也就是機(jī)械臂的模型
將URDF文件加載到ROS服務(wù)器當(dāng)中
使用RViz進(jìn)行可視化
創(chuàng)建MoveIt配置包
使用MoveIt進(jìn)行運(yùn)動(dòng)規(guī)劃
創(chuàng)建URDF文件
首先咱得創(chuàng)建機(jī)械臂的URDF(Unified Robot Description Format)文件,這個(gè)文件至關(guān)重要,因?yàn)闄C(jī)械臂的3D模型,這個(gè)文件描述了機(jī)械臂的屬性,如關(guān)節(jié),鏈接和傳感器。由于該產(chǎn)品是大象機(jī)器人的一款機(jī)械臂myCobot 280 M5Stack,大象機(jī)器人在Github有提供myCobot 280的URDF文件描述了機(jī)械臂的一些物理屬性。

https://github.com/elephantrobotics/mycobot_ros/tree/noetic/mycobot_description/urdf

如何生成urdf文件:

需要使用CAD軟件制作模型,確保制作的3D模型跟實(shí)際的機(jī)械臂尺寸一致。因?yàn)閷?dǎo)出的模型要是一個(gè)可以被ROS接受的格式,通常是DAE(collada)文件。

wKgaomUIBDCATGYcAAFzj1SauAA440.png

wKgaomUIBEKAaHpAAACSIimIX00453.png

將URDF加載到ROS服務(wù)器
創(chuàng)建ROS包
創(chuàng)建一個(gè)存放URDF文件的包,在終端執(zhí)行下面的代碼

catkin_create_pkg mycobot_description rospy std_msgs sensor_msgs

其中‘rospy’,‘std_msgs'和’sensor_msgs'是ROS的依賴(lài)包

將生成的urdf文件添加到mycobot_description/urdf的目錄下

創(chuàng)建啟動(dòng)文件
在mycobot_description/launch目錄下創(chuàng)建一個(gè)load_urdf.launch文件,在其中添加以下內(nèi)容

啟動(dòng)ROS文件qi
我們?cè)诖蜷_(kāi)終端輸入下面的命令。

roslaunch my_robot_description load_urdf.launch

運(yùn)行完之后,就可以在RViz當(dāng)中看到我們創(chuàng)建的模型了。

wKgZomUIBI6AZOvSAAMmJgykyz4158.png

配置MoveIt
啟動(dòng)MoveIt Setup Assistant:

在終端中,運(yùn)行以下命令來(lái)啟動(dòng)MoveIt Setup Assistant:

roslaunch moveit_setup_assistant setup_assistant.launch

wKgZomUIBJ2AL7jYAAMwNgZzm6k897.png

在MoveIT當(dāng)中加載URDF

在MoveIt Setup Assistant的主界面,點(diǎn)擊“Create New MoveIt Configuration Package”按鈕。然后,在彈出的對(duì)話框中,選擇我的URDF文件(在ROS參數(shù)robot_description中)。點(diǎn)擊“Load Files”按鈕來(lái)加載你的URDF文件。顯示下圖就加載成功了。

wKgZomUIBHaAczDeAAHZxIAAado580.png

配置我的機(jī)器人

根據(jù)自己的需求來(lái)配置自己的機(jī)器人。這里簡(jiǎn)要介紹幾個(gè)配置:

Self-Collisions:MoveIt會(huì)自動(dòng)計(jì)算你的機(jī)器人的自碰撞矩陣。可以點(diǎn)擊“Regenerate Default Collision Matrix”按鈕來(lái)生成默認(rèn)的自碰撞矩陣。
Virtual Joints:可以為你的機(jī)器人定義虛擬關(guān)節(jié)。虛擬關(guān)節(jié)通常用于連接你的機(jī)器人和世界。
Planning Groups:可以定義你的機(jī)器人的規(guī)劃組。規(guī)劃組是一組需要一起移動(dòng)的關(guān)節(jié)和鏈。例如,你可以創(chuàng)建一個(gè)包含所有手臂關(guān)節(jié)的規(guī)劃組。
Robot Poses:可以定義你的機(jī)器人的預(yù)設(shè)姿態(tài)。預(yù)設(shè)姿態(tài)可以在規(guī)劃中被重復(fù)使用。
運(yùn)行moveit

配置完成之后會(huì)生成.launch的文件,我們運(yùn)行它就可以在moveit中使用機(jī)械臂了。

wKgaomUIBHyAEC0SAAKoMX9eVVY098.png

我們來(lái)看看moveit的功能如何進(jìn)行路徑規(guī)劃,拖動(dòng)機(jī)械臂末端的坐標(biāo),可以對(duì)機(jī)械臂進(jìn)行運(yùn)動(dòng)的變化,也可以隨機(jī)生成路徑。

wKgZomUIBMaAYrxgABhSJ1qClu8396.png

物體避障

我們?cè)趍oveit中添加一個(gè)障礙物讓機(jī)械臂進(jìn)行避障,添加一個(gè)方塊,讓機(jī)械臂在做軌跡的時(shí)候繞過(guò)它。

wKgaomUIBNeAepITABLGL5Df-sA962.png

除此之外moveit還有許多功能例如,運(yùn)動(dòng)規(guī)劃,可以為多關(guān)節(jié)的機(jī)器人進(jìn)行路徑規(guī)劃,避免碰撞,并且還可以是用多種運(yùn)動(dòng)規(guī)劃算法RRT,EST,LBKPIECE等;碰撞檢測(cè),可以進(jìn)行復(fù)雜的3D碰撞檢測(cè),包括子碰撞和環(huán)境碰撞(障礙物);仿真,可以于gazebo機(jī)器人仿真器繼承,進(jìn)行真實(shí)的物理仿真等等功能。

總結(jié)
MoveIt提供了一套完整的工具集,可以用于機(jī)械臂的運(yùn)動(dòng)規(guī)劃和控制的研究,無(wú)需從頭開(kāi)始構(gòu)建復(fù)雜的運(yùn)動(dòng)規(guī)劃系統(tǒng)。這可以使得開(kāi)發(fā)人員將更多的經(jīng)理集中在實(shí)現(xiàn)具體的應(yīng)用功能上,而不是解決底層的運(yùn)動(dòng)規(guī)劃和控制問(wèn)題上。總的來(lái)說(shuō),ROS和MoveIt為機(jī)器人技術(shù)的發(fā)展提供了強(qiáng)大的支持。它們不僅降低了開(kāi)發(fā)難度,提高了開(kāi)發(fā)效率,而且還推動(dòng)了機(jī)器人技術(shù)的創(chuàng)新和應(yīng)用。無(wú)論你是機(jī)器人技術(shù)的研究者,還是實(shí)際應(yīng)用的開(kāi)發(fā)者,ROS和MoveIt都將是你不可或缺的工具。

我在未來(lái)也會(huì)繼續(xù)探索更多的機(jī)械臂項(xiàng)目,并不定期分享我的發(fā)現(xiàn)和成果。如果你發(fā)現(xiàn)本文中有一些錯(cuò)誤歡迎跟我進(jìn)行溝通,如果你喜歡這篇文章留下你的點(diǎn)贊和評(píng)論是對(duì)我最大的支持!

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 機(jī)器人
    +關(guān)注

    關(guān)注

    213

    文章

    29567

    瀏覽量

    211935
  • 機(jī)械臂
    +關(guān)注

    關(guān)注

    13

    文章

    548

    瀏覽量

    25272
  • ROS
    ROS
    +關(guān)注

    關(guān)注

    1

    文章

    286

    瀏覽量

    17604
  • 大象機(jī)器人
    +關(guān)注

    關(guān)注

    0

    文章

    85

    瀏覽量

    76
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    【「# ROS 2智能機(jī)器人開(kāi)發(fā)實(shí)踐」閱讀體驗(yàn)】+內(nèi)容初識(shí)

    講解了如何在 ROS 2 中實(shí)現(xiàn)機(jī)器人的運(yùn)動(dòng)控制,包括速度控制、位置控制等。通過(guò)編寫(xiě)
    發(fā)表于 04-27 11:24

    大象機(jī)器人攜手進(jìn)迭時(shí)空推出 RISC-V 全棧開(kāi)源六軸機(jī)械臂產(chǎn)品

    、lightrack)等模型。倉(cāng)庫(kù)將持續(xù)更新支持最前沿的模型應(yīng)用,滿足各種復(fù)雜 AI任務(wù)。 AI智慧零售套件 通過(guò)CPU融合AI的創(chuàng)新設(shè)計(jì),“myCobot 280 RISC-V”首次將大模型推理與機(jī)械臂控制
    發(fā)表于 04-25 17:59

    大象機(jī)器人推出myCobot 280 RDK X5,攜手地瓜機(jī)器人共建智能教育機(jī)

    摘要大象機(jī)器人全新推出輕量級(jí)高性能教育機(jī)械臂myCobot280RDKX5,該產(chǎn)品集成地瓜機(jī)器人RDKX5開(kāi)發(fā)者套件,深度整合雙方在硬件研發(fā)與智能計(jì)算領(lǐng)域的技術(shù)優(yōu)勢(shì),實(shí)現(xiàn)芯片架構(gòu)、軟件算法、硬件結(jié)構(gòu)
    的頭像 發(fā)表于 04-15 22:05 ?419次閱讀
    大象機(jī)器人推出<b class='flag-5'>myCobot</b> <b class='flag-5'>280</b> RDK X5,攜手地瓜機(jī)器人共建智能教育機(jī)

    MCSDK位置控制S形軌跡規(guī)劃q軸電流存在沖擊怎么解決?

    工程師您好,我用MCSDK生成了FOC位置控制的代碼,在實(shí)際運(yùn)行中發(fā)現(xiàn),每隔t0時(shí)間q軸電流出現(xiàn)一次沖擊(t0為S形軌跡規(guī)劃9段時(shí)間的一段),如下圖所示: 綠色線是用STM32CUBEMONITOR觀察到q軸電流。 下圖是S形
    發(fā)表于 03-11 06:51

    如何將python文件導(dǎo)入到ROS系統(tǒng)中

    本文通過(guò)使用myCobot機(jī)械臂進(jìn)行QR碼視覺(jué)追蹤的實(shí)踐案例分析,介紹如何將 python 文件導(dǎo)入到 ROS 系統(tǒng)中。
    的頭像 發(fā)表于 02-11 11:08 ?722次閱讀
    如何將python文件導(dǎo)入到<b class='flag-5'>ROS</b>系統(tǒng)中

    如何使用PLC控制myCobot 320機(jī)械臂

    根據(jù)持續(xù)的用戶反饋,目前市場(chǎng)對(duì) PLC 與 myCobot 系統(tǒng)集成的需求很大,因此本文提供的案例介紹了如何使用 PLC(可編程邏輯控制器)來(lái)控制 myCobot 320 機(jī)械臂。本案
    的頭像 發(fā)表于 01-23 14:03 ?1018次閱讀
    如何使用PLC<b class='flag-5'>控制</b><b class='flag-5'>myCobot</b> 320機(jī)械臂

    使用myCobot 280機(jī)械臂結(jié)合ROS2系統(tǒng)搭建機(jī)械分揀站

    這篇文章是來(lái)自Automatic Addison的開(kāi)源項(xiàng)目,已獲作者授權(quán)轉(zhuǎn)載自github。本項(xiàng)目的主要內(nèi)容是使用myCobot 280機(jī)械臂結(jié)合ROS2系統(tǒng)搭建機(jī)械分揀站。
    的頭像 發(fā)表于 01-15 09:22 ?664次閱讀
    使用<b class='flag-5'>myCobot</b> <b class='flag-5'>280</b>機(jī)械臂結(jié)合<b class='flag-5'>ROS</b>2系統(tǒng)搭建機(jī)械分揀站

    在Mac上使用Docker構(gòu)建noVNC環(huán)境并運(yùn)行MyCobot

    這篇文章主要內(nèi)容是關(guān)于如何在 Ros2 環(huán)境中構(gòu)建在 Mac 上模擬 Mycobot 280 M5 的環(huán)境。
    的頭像 發(fā)表于 01-15 09:17 ?666次閱讀
    在Mac上使用Docker構(gòu)建noVNC環(huán)境并運(yùn)行<b class='flag-5'>MyCobot</b>

    運(yùn)動(dòng)控制中如何實(shí)現(xiàn)路徑軌跡預(yù)測(cè)

    運(yùn)動(dòng)控制中,軌跡執(zhí)行時(shí)間的預(yù)測(cè)對(duì)于多軸的協(xié)同、路徑預(yù)處理等方面有著重要的作用。CODESYS系列控制器提供了預(yù)測(cè)軌跡執(zhí)行時(shí)間功能塊。要
    的頭像 發(fā)表于 01-05 11:04 ?712次閱讀
    <b class='flag-5'>運(yùn)動(dòng)</b><b class='flag-5'>控制</b>中如何<b class='flag-5'>實(shí)現(xiàn)</b>路徑<b class='flag-5'>軌跡</b>預(yù)測(cè)

    人員軌跡分析算法有哪些?

    時(shí)段等。這些信息可以對(duì)城市規(guī)劃、交通管理、公共安全等方面具有重要的指導(dǎo)意義。而為了實(shí)現(xiàn)人員軌跡分析,我們需要使用一些專(zhuān)門(mén)的算法和技術(shù)。 下面是幾種常用的人員軌跡分析算法: 1. 基于密
    的頭像 發(fā)表于 09-26 10:42 ?856次閱讀

    EtherCAT運(yùn)動(dòng)控制器PT/PVT實(shí)現(xiàn)用戶自定義軌跡規(guī)劃

    EtherCAT運(yùn)動(dòng)控制器PT/PVT實(shí)現(xiàn)用戶自定義軌跡規(guī)劃
    的頭像 發(fā)表于 08-15 11:49 ?1144次閱讀
    EtherCAT<b class='flag-5'>運(yùn)動(dòng)</b><b class='flag-5'>控制</b>器PT/PVT<b class='flag-5'>實(shí)現(xiàn)</b>用戶自定義<b class='flag-5'>軌跡</b><b class='flag-5'>規(guī)劃</b>

    電磁軌跡預(yù)測(cè)分析軟件

    機(jī)器學(xué)習(xí)技術(shù),以實(shí)現(xiàn)對(duì)電磁運(yùn)動(dòng)軌跡的精確預(yù)測(cè)和深入分析。它廣泛應(yīng)用于電磁式運(yùn)動(dòng)追蹤系統(tǒng)、電磁軌道高速飛行器、智能交通系統(tǒng)等領(lǐng)域,為用戶提供關(guān)鍵的運(yùn)動(dòng)
    的頭像 發(fā)表于 07-16 16:42 ?854次閱讀

    電磁軌跡預(yù)測(cè)分析系統(tǒng)設(shè)計(jì)方案

    智慧華盛恒輝電磁軌跡預(yù)測(cè)分析系統(tǒng)的設(shè)計(jì)方案是一個(gè)綜合性的項(xiàng)目,它結(jié)合了電磁學(xué)、運(yùn)動(dòng)學(xué)、數(shù)據(jù)分析以及可能的人工智能或機(jī)器學(xué)習(xí)技術(shù),以實(shí)現(xiàn)對(duì)電磁運(yùn)動(dòng)軌跡
    的頭像 發(fā)表于 07-15 16:22 ?746次閱讀

    ROS讓機(jī)器人開(kāi)發(fā)更便捷,基于RK3568J+Debian系統(tǒng)發(fā)布!

    。 ROS系統(tǒng)主要特點(diǎn)有哪些 (1) 提供豐富的機(jī)器人算法庫(kù) 機(jī)器人的各種控制以及通信離不開(kāi)算法庫(kù)的支持,ROS系統(tǒng)提供豐富且功能強(qiáng)大的機(jī)器人算法庫(kù),如坐標(biāo)變換、運(yùn)動(dòng)
    發(fā)表于 07-09 11:38

    電磁軌跡預(yù)測(cè)分析系統(tǒng)

    智慧華盛恒輝電磁軌跡預(yù)測(cè)分析系統(tǒng)是一個(gè)專(zhuān)門(mén)用于預(yù)測(cè)和分析電磁運(yùn)動(dòng)軌跡的系統(tǒng)。該系統(tǒng)結(jié)合了電磁學(xué)、運(yùn)動(dòng)學(xué)、數(shù)據(jù)分析以及可能的人工智能或機(jī)器學(xué)習(xí)技術(shù),以
    的頭像 發(fā)表于 06-25 15:19 ?674次閱讀