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會自動計算你的機器人的自碰撞矩陣??梢渣c擊“Regenerate Default Collision Matrix”按鈕來生成默認的自碰撞矩陣。
Virtual Joints:可以為你的機器人定義虛擬關節。虛擬關節通常用于連接你的機器人和世界。
Planning Groups:可以定義你的機器人的規劃組。規劃組是一組需要一起移動的關節和鏈。例如,你可以創建一個包含所有手臂關節的規劃組。
Robot Poses:可以定義你的機器人的預設姿態。預設姿態可以在規劃中被重復使用。
運行moveit
配置完成之后會生成.launch的文件,我們運行它就可以在moveit中使用機械臂了。
我們來看看moveit的功能如何進行路徑規劃,拖動機械臂末端的坐標,可以對機械臂進行運動的變化,也可以隨機生成路徑。
物體避障
我們在moveit中添加一個障礙物讓機械臂進行避障,添加一個方塊,讓機械臂在做軌跡的時候繞過它。
除此之外moveit還有許多功能例如,運動規劃,可以為多關節的機器人進行路徑規劃,避免碰撞,并且還可以是用多種運動規劃算法RRT,EST,LBKPIECE等;碰撞檢測,可以進行復雜的3D碰撞檢測,包括子碰撞和環境碰撞(障礙物);仿真,可以于gazebo機器人仿真器繼承,進行真實的物理仿真等等功能。
總結
MoveIt提供了一套完整的工具集,可以用于機械臂的運動規劃和控制的研究,無需從頭開始構建復雜的運動規劃系統。這可以使得開發人員將更多的經理集中在實現具體的應用功能上,而不是解決底層的運動規劃和控制問題上??偟膩碚f,ROS和MoveIt為機器人技術的發展提供了強大的支持。它們不僅降低了開發難度,提高了開發效率,而且還推動了機器人技術的創新和應用。無論你是機器人技術的研究者,還是實際應用的開發者,ROS和MoveIt都將是你不可或缺的工具。
我在未來也會繼續探索更多的機械臂項目,并不定期分享我的發現和成果。如果你發現本文中有一些錯誤歡迎跟我進行溝通,如果你喜歡這篇文章留下你的點贊和評論是對我最大的支持!
審核編輯 黃宇
-
機器人
+關注
關注
211文章
28390瀏覽量
206956 -
機械臂
+關注
關注
12文章
513瀏覽量
24558 -
ROS
+關注
關注
1文章
278瀏覽量
17004
發布評論請先 登錄
相關推薦
評論