項目簡介
本項目致力于探索和實現一種高度集成的機器人系統,旨在通過結合現代機器人操作系統(ROS)和先進的硬件組件,解決特定的自動化任務和挑戰。一部分是基于Jetson Orin主板的LIMO PPRO SLAM雷達小車,它具備自主導航、地圖構建和路徑規劃的能力;另一部分是Mycobot 280 M5機械臂,這是一個具有六自由度、工作半徑280mm的緊湊型機械臂,能夠進行精確的物品搬運和操作。
通過將這兩部分緊密集成,我們創建了一個能夠執行復雜任務的復合機器人系統,如自動化物品傳送、環境監測、以及其他需要高度自主性和操作靈活性的應用場景。
項目的開發過程中,我們深入探討了ROS的強大功能,包括但不限于使用move_base實現的自主導航,以及gmappping_ros進行的實時SLAM(同時定位與地圖構建).還涉及到機械臂的控制和計算機視覺技術的應用,用于物體識別和環境感知,從而提高機器人的操作智能和適應性。
項目希望能夠為技術愛好者、教育工作者和研究人員提供一個實用的參考,激發更多的創新思路和應用探索。
技術和硬件概述
myCobot 280 M5Stack。
myCobot 280 是由Elephant Robotics 開發的6自由度的協作形機械臂,設計靈活且功能強大,特別適合用于教育,研究等場景。

myCobot 280 M5支持多種編程和控制方式,適用于各種操作系統和編程語言,包括:
主控和輔控芯片:ESP32
性能:工作半徑280mm,
支持藍牙(2.4G/5G)和無線(2.4G 3D Antenna)
多種輸入和輸出端口
支持自由移動、關節運動、笛卡爾運動、軌跡錄制和無線控制
兼容操作系統:Windows、Linux、MAC
支持編程語言:Python、C++、C#、JavaScript
支持編程平臺和工具:RoboFlow、myblockly、Mind+、UiFlow、Arduino、mystudio
支持通信協議:串口控制協議、TCP/IP、MODBUS
這些特性使myCobot 280 M5成為一個多功能、易于使用且適用于多種應用場景的機器人解決方案。
LIMO Pro
松靈機器人LIMO代表了移動機器人領域的一項創新,將靈活性和強大的功能集成于一個緊湊的平臺之中。它是專為機器人教育、功能研發及產品開發而設計的全球首款ROS開發平臺,能夠適應更廣泛的場景并滿足行業應用的需求。以下是對Limo Pro硬件和技術特性的詳細概述:

運動模態
四輪差速- 阿克曼轉向- 履帶型移動- 麥克納姆輪移動
場景適用性
適用于多種實擬教學和測試環境- 從室內平整地面到復雜地形均能靈活應對
處理器
NVIDIA Jetson Orin Nano
傳感器配置
EAI Tmini Pro激光雷達 - 深度相機
主要功能
精確的自主定位 - SLAM建圖 - 路線規劃 - 自主避障 - 自主倒車入庫 - 紅綠燈識別
LIMO利用激光雷達和深度相機進行環境感知,結合NVIDIA Jetson Orin Nano的強大計算能力,實現高精度的SLAM建圖和自主導航。LIMO不僅作為移動平臺執行復雜的導航和搬運任務,其多模態移動能力也大大增強了機器人系統的適用范圍和靈活性。結合Mycobot 280 M5機械臂,LIMO為自動化應用提供了一個高效、可靠的解決方案,無論是在機器人教育、研發還是產品開發領域,都展現出了巨大的潛力和價值。
軟件架構
軟件架構主要分為:導航和建圖,目標檢測,機械臂控制,以及系統集成和通信。這些部分通過ROS(robot operating system)框架進行整合,利用ROS的通信機制(話題,服務,動作)實現模塊間的交互。

ros的通信方式
下圖是整個項目的軟件架構圖,我們來一起來介紹一下具體的功能。

整體主要分為三個模塊,一個是LIMO PRO的功能,二是機器視覺功能處理,三是機械臂的功能。
LIMO PRO Function
Gmapping:
Gmapping是基于濾波SLAM框架的常用開源SLAM算法。Gmapping有效利用了車輪里程計信息,對激光雷達的頻率要求不高,在構建小場景地圖時,所需的計算量較小且精度較高.


建了地圖之后就可以在地圖上進行定位導航了,這一部分的功能主要運用到機器人定位和路徑規劃,ROS提供了一下兩個功能包:
(1)move_base:實現機器人導航中的最優路徑規劃。
(2)amcl:實現二維地圖中的機器人定位。
在上述的兩個功能包的基礎上,ROS提供了一套完整的導航框架。

機器人只需要發布必要的傳感器信息和導航的目標位置,ROS即可完成導航功能。在該框架中,move_base功能包提供導航的主要運行、交互接口。為了保障導航路徑的準確性,機器人還要對自己所處的位置進行精確定位,這部分功能由amcl功能包實現。

在導航的過程中,運用了兩種算法DWA和TEB算法,這兩種算法分別處理全局路徑和局部路徑規劃,來保證小車能夠安全的前進到目的地,避免與障礙物發生碰撞。
myCobot 280 Function
ROS主要支持python和C++兩種編程語言。機械臂的控制主要是基于python當中的pymycobot API 庫。 這個功能很全面的提供了mycobot 280 的控制方法,下面主要介紹幾個常用的方法:
pymycobot API:
下面的兩個方法能夠控制機械臂關節的角度來控制機械臂運動,能單獨控制某個關節的角度,也能夠控制全部關節的角度來運動。
send_angle(id,angle,speed) send_angles(angle_list,speed,mode)
對于要執行一些抓去運動來說,角度的控制是遠遠不夠大的,所以pymycobot還提供了坐標控制,能夠控制機械臂末端在空間上的運動。
send_coord(id,coord,speed) send_coords(coords, speed, mode)
同樣是兩個控制方法第一個可以單個控制機械臂末端X,Y,Z,RX,RY,RZ方向的姿態,這樣可以控制末端機械臂的坐標可以更方便我們做一些抓取的動作。
pymycobot是其中的一種控制方式,比較方便使用。還有一種控制方式是基于ROS框架里邊的MoveIt,它是一個功能強大大的機器人運動規劃框架,包括路徑規劃,運動控制,碰撞檢測,運動學計算等等。下面是一個在MoveIt當中的演示。

Target Detection
vision_opencv - ROS Wiki
此外我們還要對視覺進行處理,在ROS中,opencv_ros和image_transport是處理圖像數據的重要工具和庫,它們在機器人視覺系統和圖像處理中扮演著關鍵角色。

實際上,是使用‘cv_bridge’提供了ROS 和OpenCV之間的接口,cv_bridge允許在ROS消息和OpenCV圖像格式之間進行轉換,從而可以在ROS框架中使用OpenCV進行圖像處理。
在ROS中使用OpenCV時,圖像數據通常是作為ROS消息通過話題發布和訂閱的,因此需要使用cv_bridge來轉換數據格式。下面是一個簡單的示例,展示了如何在ROS節點中訂閱圖像話題,并使用OpenCV對圖像進行處理:
import rospy from sensor_msgs.msg import Image from cv_bridge import CvBridge, CvBridgeError import cv2 def image_callback(msg): try: # Convert ROS image messages to OpenCV image format cv_image = bridge.imgmsg_to_cv2(msg, "bgr8") except CvBridgeError as e: print(e) # Process the image, such as converting it to grayscale gray = cv2.cvtColor(cv_image, cv2.COLOR_BGR2GRAY) # display image cv2.imshow("Image window", gray) cv2.waitKey(3) # Initialize ROS node rospy.init_node('image_listener') # create CvBridge bridge = CvBridge() # Subscribe to image topics image_sub = rospy.Subscriber("/camera/rgb/image_raw", Image, image_callback) # Entering the ROS event loop rospy.spin()
雖然在ROS環境中使用OpenCV進行圖像處理引入了數據格式轉換和節點通信的額外步驟,但這種方式也帶來了更高的模塊化和系統集成的靈活性,使得圖像處理能夠更加方便地與機器人的其他系統和功能集成。
場景介紹
該項目旨在實現一個繼承的自動動畫系統,其中包括一個LIMO pro 和 一個mycobot 280 M5。系統設計使得Limo Pro能夠自主導航至指定位置,到達后,Mycobot 280 M5機械臂執行抓取任務,完成后再返回到起始點或另一個特定位置。

項目流程
1.啟動與初始化:
系統啟動時,先進行自檢,包括Limo Pro的導航系統和Mycobot 280 M5機械臂的功能檢查。
2.導航至目標點:
利用Limo Pro上的SLAM技術和導航算法,根據預設或動態輸入的坐標,規劃一條到達目標點的最優路徑。
Limo Pro自主避開障礙物,沿著規劃的路徑移動至目標點。
3.執行抓取任務:
到達目標點后,使用Limo Pro上的傳感器定位目標物體。
Mycobot 280 M5機械臂根據目標物體的位置,執行抓取動作。這一步驟可能涉及精確的運動規劃,確保抓取成功。
4.返回特定位置:
完成抓取任務后,Limo Pro再次規劃路徑,返回到起始點或移動至另一個指定的位置,以進行物品交付或完成任務。
總結
本系列文章被劃分為兩個部分:首篇文章主要介紹了項目的概念設計、系統架構以及關鍵組件的選擇,為讀者提供了一個全面的項目概覽和技術背景。接下來的文章將深入探討項目的技術細節,包括軟件架構的構建、關鍵技術的應用、系統調試過程以及在開發過程中遇到的挑戰和解決方案。
在下一篇文章中,我們將正式進入項目的技術內核,分享實際的編碼實踐、調試技巧以及面對項目挑戰時的思考和解決策略。敬請期待下篇文章,我們將一起深入這個集成自主導航和機械操作的機器人項目,探索技術的深度與廣度。
-
機器人
+關注
關注
213文章
29482瀏覽量
211544 -
操作系統
+關注
關注
37文章
7082瀏覽量
124943 -
機械臂
+關注
關注
13文章
544瀏覽量
25220 -
ROS
+關注
關注
1文章
284瀏覽量
17560 -
大象機器人
+關注
關注
0文章
85瀏覽量
70
發布評論請先 登錄
專為機器人教育而設計的創客友好型機械臂

使用myCobot 280機械臂結合ROS2系統搭建機械分揀站

【「具身智能機器人系統」閱讀體驗】2.具身智能機器人大模型
大象機器人11月大事件回顧
大象機器人10月大事件回顧
工業機器人和機械臂的設計、功能和應用有哪些區別?
開源六軸協作機器人myCobot 320結合人臉表情識別情緒!

評論