国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

結合大象機器人六軸協作機械臂myCobot 280 ,解決特定的自動化任務和挑戰!(下)

大象機器人科技 ? 來源:大象機器人科技 ? 作者:大象機器人科技 ? 2024-03-05 15:08 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

LimoPro小車建圖導航

引言

前景提要:我們在上文介紹了使用LIMOcobot實現一個能夠執行復雜任務的復合機器人系統的應用場景的項目,從以下三個方面:概念設計、系統架構以及關鍵組件。

本文主要深入項目內核的主要部分,同樣也主要分為三個部分:機械臂的視覺抓取,LIMOPro在ROS中的功能,建圖導航避障等,以及兩個系統的集成。

設備準備

myCobot280M5stack

myCobotAdaptiveGripper

myCobotCameraFlange2.0

LIMOPRO

機械臂視覺抓取

這是機械臂安裝AdaptiveGripper,和cameraflange2.0之后的樣子。

wKgZomXmtSiAHzpTAApIvYD-Frc334.png

我們是用的cameraflange2.0是一款2D的相機,他并不能夠依靠他相機本身來獲取到一個物體的三維(長寬高),但我們可以使用標記物來獲得到目標物體的都長寬高。常見的有ArUco,STag,AR碼,AprilTags。今天我們用STag算法來做視覺識別。

STag標記系統

STag是一個為了高穩定性和精確的三位定位而設計的標記系統。它特別適用于環境中有遮擋和光照變化的情況。

下面有一個視頻展示了STag標記碼,ARToolKit+,ArUco,RUNE-Tag碼在同一個環境下的識別效果。

https://www.youtube.com/watch?v=vnHI3GzLVrY

可以從視頻中看出來STag對環境變化的強大適應性和在復雜場景下的高可靠性,使其成為在要求高精度跟蹤和定位的應用中的首選。還有一篇論文專門講解STag穩定的基準標記系統,感興趣的可以自己點擊鏈接去了解一下。

https://arxiv.org/abs/1707.06292

wKgaomXmtUKAH2EiABAwYsBdoT0414.png

STag系統可以是適配與ROS,有ROS軟件包,用的是c++編寫的,也能夠支持python進行使用。

C++/ROS:GitHub - bbenligiray/stag: STag: A Stable Fiducial Marker System

Python:GitHub - ManfredStoiber/stag-python: Python Package for STag - A Stable, Occlusion-Resistant Fiducial Marker System

用python簡單寫一個例子

importcv2
importstag
importnumpyasnp

#加載相機參數
camera_params=np.load("camera_params.npz")
mtx,dist=camera_params["mtx"],camera_params["dist"]

#初始化STag檢測器
stag_detector=stag.detectMarkers(mtx,dist)

#初始化視頻捕獲
cap=cv2.VideoCapture(0)
whilecap.isOpened():
ret,frame=cap.read()
    if notret:
        break
    
    #應用相機校正(可選)
frame_undistorted=cv2.undistort(frame,mtx,dist, None,mtx)
    #檢測STag標記
    (corners,ids,rejected_corners) =stag.detectMarkers(frame_undistorted, 21)
    #繪制檢測到的標記及其ID
stag.drawDetectedMarkers(frame_undistorted,corners,ids)
    #繪制被拒絕的候選區域,顏色設為紅色
stag.drawDetectedMarkers(frame_undistorted,rejected_corners,border_color=(255, 0, 0))

    #顯示結果
cv2.imshow("STagDetection",frame_undistorted)

    ifcv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()
wKgZomXmuS6AMXEzAAn4aQf7OrY808.png

標記了STag碼之后可以獲得標記碼四個角的參數,

(array([[[257., 368.],
        [185., 226.],
        [345., 162.],
        [420., 302.]]],dtype=float32),)

給定坐標過后,可以用opencv的‘cv2.solvePnP'函數來計算標記相對于相機的旋轉和偏移量。這個函數需要標記的3D坐標(在物理世界中的位置)和相應的2D圖像坐標(即檢測到的角點),以及相機的內參和畸變系數。solvePnP會返回旋轉向量(rvec)和平移向量(tvec),它們描述了從標記坐標系到相機坐標系的轉換。這樣,就可以根據這些參數計算出標記的位置和朝向。

以下是偽代碼方便理解。

defestimate_pose(corners):
#DosomecalculationswithPnP,camerarotationandoffset
returnrvec,tvec
    
defconvert_pose_to_arm_coordinates(rvec,tvec):
#將旋轉向量和平移向量轉換為機械臂坐標系統中的x,y,z,rx,ry,rz
returnx,y,z,rx,ry,rz
    
defconvert_grab(object_coord_list):
#Dosomecalculationstoconvertthecoordinatesintograspingcoordinatesfortheroboticarm
returngrab_position
    
    
cap=cv2.VideoCapture(0)
whilecap.isOpened():
ret,frame=cap.read()
ifnotret:
break
        
    
maker=(corners,ids,rejected_corners)=stag.detectMarkers(image,21)
    
rvec,tvec=stag.estimate_pose(marker)
    
object_coord_list=convert_pose_to_arm_coordinates(rvec,tvec)
grab_position=convert_grab(object_coord_list)
mycobot.move_to_position(grab_position)
機械臂控制

以上的代碼就是大概的抓取的流程,比較復雜的部分解決了,接下來我們處理機械臂的運動控制,用到的是pymycobot庫

frompymycobotimportMyCobot

#Createaninstanceandlinktheroboticarm
mc=MyCobot('com3',115200)

#Controltheroboticarmwithangle
mc.send_angles(angles_list,speed)

#Controltheroboticarmusingcoordinates
mc.send_coords(coords_list,speed,mode)

#Controlgripper,value-0~100
mc.set_gripper_value(value,speed)
 

因為機械臂的開放接口比較多,我們只需要使用坐標控制,夾爪控制就好了。

wKgZomXmuW6AOwqZABUjJLHliZg392.png

LimoPro建圖導航

完成了機械臂抓取部分的功能,接下來我們要實現小車的建圖導航模塊了。

首先我們要見圖,有了地圖之后才能夠在地圖上進行導航,定點巡航等一些的功能,目前有多種建圖的算法,因為我們搭建的場景并不是很大,環境相對于靜態我們選擇使用gmapping算法來實現。

建圖

Gmapping是基于濾波SLAM框架的常用開源SLAM算法。Gmapping有效利用了車輪里程計信息,對激光雷達的頻率要求不高,在構建小場景地圖時,所需的計算量較小且精度較高。這里通過使用ROS封裝了的GMapping功能包來實現limo的建圖。

注:以下的功能都是封裝好的可以直接使用

首先需要啟動雷達,打開一個新終端,在終端中輸入命令:

roslaunchlimo_bringuplimo_start.launchpub_odom_tf:=false

然后啟動gmapping建圖算法,打開另一個新終端,在終端中輸入命令:

roslaunchlimo_bringuplimo_gmapping.launch

成功啟動之后會打開rviz可視化工具,這時候看到的界面如圖

wKgZomXmuYKAEZ2RAAJri3skRzM470.png

這時候就可以把手柄調為遙控模式,控制limo建圖了。

構建完地圖之后,需要運行以下命令,把地圖保存到指定目錄:

1、切換到需要保存地圖的目錄下,這里把地圖保存到~/agilex_ws/src/limo_ros/limo_bringup/maps/,在終端中輸入命令:

cd~/agilex_ws/src/limo_ros/limo_bringup/maps/

2、切換到/agilex_ws/limo_bringup/maps之后,繼續在終端中輸入命令:

rosrunmap_servermap_saver-fmap1

map1為保存地圖的名稱,保存地圖時應避免地圖的名稱重復

導航

前面我們用了gmapping來進行建圖,我們現在來進行導航。導航的關鍵是機器人定位和路徑規劃兩大部分。針對這兩個核心,ROS提供了以下兩個功能包。

(1)move_base:實現機器人導航中的最優路徑規劃。

(2)amcl:實現二維地圖中的機器人定位。

在上述的兩個功能包的基礎上,ROS提供了一套完整的導航框架,

wKgaomXmue-Ad4aDAALkwWCCEhs303.png

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

wKgaomXmuhCAa3rRABGjzMDxfUQ376.png

在導航的過程中,運用了兩種算法DWA和TEB算法,這兩種算法分別處理全局路徑和局部路徑規劃,來保證小車能夠安全的前進到目的地,避免與障礙物發生碰撞。

(1)首先啟動雷達,在終端中輸入命令:

roslaunchlimo_bringuplimo_start.launchpub_odom_tf:=false 

(2)啟動導航功能,在終端中輸入命令:

roslaunchlimo_bringuplimo_navigation_diff.launch

啟動成功之后會打開rviz界面,如圖

wKgaomXmuhuAU0GLABI9EjtPN-U799.png

?編輯我們需要把剛才建的地圖給導進去,請打開limo_navigation_diff.launch文件修改參數,文件所在目錄為:~/agilex_ws/src/limo_ros/limo_bringup/launch。把map02修改為需要更換的地圖名稱。

wKgaomXmvEqADdDgAAPlGNHL-Zg704.png

開啟導航之后,會發現激光掃描出來的形狀和地圖沒有重合,需要我們手動校正,在rviz中顯示的地圖上矯正底盤在場景中實際的位置,通過rviz中的工具,發布一個大概的位置,給limo一個大致的位置,然后通過手柄遙控limo旋轉,讓其自動校正,當激光形狀和地圖中的場景形狀重疊的時候,校正完成。操作步驟如圖:

wKgaomXmvF6ANXcxAKxk9IkGMCw950.png

校正完成后

wKgZomXmvGOAYMsmAA1r9dN8VRE765.png

通過2DNavGoal設置導航目標點

wKgZomXmuhmAMEZVALzzX5L4epo572.png

路徑巡檢

如果要在一條路上來回運動的話,我們要啟用路徑巡檢功能,后續會使用上這個功能。

(1)首先啟動雷達,開啟一個新的終端,在終端中輸入命令:

roslaunchlimo_bringuplimo_start.launchpub_odom_tf:=false

(2)啟動導航功能,開啟一個新的終端,在終端中輸入命令:

roslaunchlimo_bringuplimo_navigation_diff.launch 

注:如果是阿克曼運動模式,請運行

roslaunchlimo_bringuplimo_navigation_ackerman.launch

(3)啟動路徑記錄功能,開啟一個新的終端,在終端中輸入命令:

roslaunchagilex_pure_pursuitrecord_path.launch

路徑記錄結束之后終止路徑記錄程序,在終端中輸入命令為:Ctrl+c

(4)啟動路徑巡檢功能,開啟一個新的終端,在終端中輸入命令:

注:把手柄調至指令模式

roslaunchagilex_pure_pursuitpure_pursuit.launch

兩個系統的集成

上面分布完成了myCobot機械臂視覺的抓取,LIMO的建圖導航,路徑巡檢功能,現在我們需要把它們集成在ROS系統上。我們預設的場景是,LIMO進行定點的巡檢,當遇到了標志物的時候停止運動,等待機械臂執行抓取物體,完成之后LIMO移動到下一個點位。

功能節點分布

在ROS(RobotOperatingSystem)中實現一個功能的流程涉及到多個步驟和組件,包括節點(nodes)、話題(topics)、服務(services)、參數服務器(parameterserver)和動作(actions)。根據ROS的功能節點架構,我們確定了節點的分布和它們交互的方式:

1.圖像識別節點(ImageRecognitionNode)

職責:持續接收來自攝像頭的圖像流,使用圖像識別算法(如OpenCV或深度學習模型)來檢測特定的標記物。

輸入:來自攝像頭的圖像流。

輸出:當檢測到標記物時,發布一個消息到一個特定的話題(如/marker_detected)。

2.控制節點(ControlNode)

職責:管理機器人的移動,包括啟動、停止和繼續巡檢。

輸入:訂閱/marker_detected話題以監聽圖像識別節點的輸出。也可能訂閱一個專門用于接收手動控制指令的話題(如/control_commands)。

輸出:向機器人底層控制系統(如驅動電機的節點)發送控制命令。

3.任務執行節點(TaskExecutionNode)

職責:執行遇到標記物后的特定任務,這些任務可以是數據采集、狀態報告等。

輸入:監聽來自控制節點的指令,這些指令指示何時開始執行任務。

輸出:任務完成的狀態反饋,可能會發送到控制節點或一個專門的狀態話題(如/task_status)。

4.導航和路徑規劃節點(NavigationandPathPlanningNode)

職責:處理機器人的路徑規劃和導航邏輯,確保機器人可以在環境中安全移動。

輸入:接收來自控制節點的指令,用于啟動、停止或調整導航路徑。

輸出:向機器人底層控制系統發送導航指令,如目標位置、速度和方向。

wKgZomXmxGCAEstUADEmk8qS0h8807.pngwKgZomXmxG-APsVoACYhW-jJV1E822.png

總結

這個場景算是初步完成了,其實還可以添加許多細節的,比如說在行徑的過程中增添一些移動的障礙物,又或者設定一個紅綠燈之類的物體,更加接近真實的場景。如果你們覺得有什么需要改善的地方,又或者說你想用LIMOcobot來做一些什么,盡管暢所欲言,你的回復和點贊就是我們更新最大的動力!

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 機器人
    +關注

    關注

    213

    文章

    31074

    瀏覽量

    222191
  • 機械臂
    +關注

    關注

    14

    文章

    596

    瀏覽量

    26120
  • 大象機器人
    +關注

    關注

    0

    文章

    86

    瀏覽量

    376
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    使用myCobot 280 Jeston Nano進行物體精確識別追蹤

    ,以便在實際應用中發揮作用,這個項目涉及到許多技術和算法,包括視覺識別、手眼協同和機械控制等方面。 機械的介紹 mycobot280-J
    的頭像 發表于 05-24 18:20 ?2818次閱讀
    使用<b class='flag-5'>myCobot</b> <b class='flag-5'>280</b> Jeston Nano進行物體精確識別追蹤

    大象機器人攜手進迭時空推出 RISC-V 全棧開源機械產品

    大象機器人成立于2016年,專注協作機器人研發與應用,產品線涵蓋輕量級協作機器人、人形
    發表于 04-25 17:59

    工業機器人的主要特點

    6工業機器人在執行不同的作業任務時具有較好的通用性。當然也有專用的工業機器人。4)機電一體:6
    發表于 08-08 11:30

    機器人的發展趨勢

    /VALproduct/uniVAL三種編程方法滿足集成商、最終用戶、設備商的不同需求。可實現多機器人同步,人機協作。)作為一種成本低廉、系統結構簡單的自動化機器人系統解決方案,多
    發表于 07-29 06:57

    基于Jetson Nano的協作機械myCobot

    大象機器人致力于為機器人教育及科研機構、商業場景、工業生產提供高柔性的協作機器人、簡單易學的操作系統以及智能的
    的頭像 發表于 01-24 10:30 ?6432次閱讀

    myCobot機械應用于Unity機器人編程實戰課

    ER myCobot 280 Pi ,采用樹莓派微處理器,內置ubuntu18.04系統,無需搭配PC主控,鏈接外設,即可快速構建機械 編程教育、
    的頭像 發表于 06-16 14:33 ?3490次閱讀
    <b class='flag-5'>myCobot</b><b class='flag-5'>機械</b><b class='flag-5'>臂</b>應用于Unity<b class='flag-5'>機器人</b>編程實戰課

    大象機器人myCobot 280 2023版全新功能展示

    大象機器人mycobot 280 2023版全新功能
    的頭像 發表于 03-10 18:46 ?2236次閱讀
    <b class='flag-5'>大象</b><b class='flag-5'>機器人</b><b class='flag-5'>myCobot</b> <b class='flag-5'>280</b> 2023版全新功能展示

    開源機械myCobot 280末端執行器實用案例解析

    使用。 本文中主要介紹4款常用的機械的末端執行器。 Product myCobot 280 M5Stack myCobot
    的頭像 發表于 10-16 16:28 ?2473次閱讀
    開源<b class='flag-5'>六</b><b class='flag-5'>軸</b><b class='flag-5'>機械</b><b class='flag-5'>臂</b><b class='flag-5'>myCobot</b> <b class='flag-5'>280</b>末端執行器實用案例解析

    自動化革命:大象機器人的Mercury A1機械

    引言 大象機器人的Mercury系列,是面向工業自動化和智能制造的新型機械產品線。這些機械
    的頭像 發表于 01-15 14:41 ?1471次閱讀
    <b class='flag-5'>自動化</b>革命:<b class='flag-5'>大象</b><b class='flag-5'>機器人</b>的Mercury A1<b class='flag-5'>機械</b><b class='flag-5'>臂</b>

    大象機器人協作機械myCobot 320 進行手勢識別!

    引言 我是一名專注于機器學習和機器人技術自由者。我的熱情始于大學期間的人工智能課程,這促使我探索人機交互的新方法。尤其對于機械的操作,我一直想要簡化其復雜性,使之更加直觀和易于使用。
    的頭像 發表于 01-31 16:17 ?2060次閱讀
    <b class='flag-5'>大象</b><b class='flag-5'>機器人</b><b class='flag-5'>六</b><b class='flag-5'>軸</b><b class='flag-5'>協作</b><b class='flag-5'>機械</b><b class='flag-5'>臂</b><b class='flag-5'>myCobot</b> 320 進行手勢識別!

    結合大象機器人協作機械myCobot 280 ,解決特定自動化任務挑戰!(上)

    項目簡介 本項目致力于探索和實現一種高度集成的機器人系統,旨在通過結合現代機器人操作系統(ROS)和先進的硬件組件,解決特定自動化
    的頭像 發表于 03-05 10:52 ?596次閱讀
    <b class='flag-5'>結合</b><b class='flag-5'>大象</b><b class='flag-5'>機器人</b><b class='flag-5'>六</b><b class='flag-5'>軸</b><b class='flag-5'>協作</b><b class='flag-5'>機械</b><b class='flag-5'>臂</b><b class='flag-5'>myCobot</b> <b class='flag-5'>280</b> ,解決<b class='flag-5'>特定</b>的<b class='flag-5'>自動化</b><b class='flag-5'>任務</b>和<b class='flag-5'>挑戰</b>!(上)

    大象機器人myCobot 320協作機械用戶開箱!

    本篇文章是經過作者はるなし的授權,進行轉載編輯,感謝はるなし給我們貢獻了一篇很好的開箱文章。 引言 HI,我是はるなし。我是一名醫學生,喜歡制作機器人和人工智能。這次我購買了myCobot pro
    的頭像 發表于 03-21 15:27 ?619次閱讀
    <b class='flag-5'>大象</b><b class='flag-5'>機器人</b><b class='flag-5'>myCobot</b> 320<b class='flag-5'>六</b><b class='flag-5'>軸</b><b class='flag-5'>協作</b><b class='flag-5'>機械</b><b class='flag-5'>臂</b>用戶開箱!

    大象機器人開源協作機械機械接入GPT4o大模型!

    和智能任務,提升了人機協作的效率和效果。我們個人平時接觸不太到機械這類的機器人產品,但是有
    的頭像 發表于 07-03 14:09 ?2427次閱讀
    <b class='flag-5'>大象</b><b class='flag-5'>機器人</b>開源<b class='flag-5'>協作</b><b class='flag-5'>機械</b><b class='flag-5'>臂</b><b class='flag-5'>機械</b><b class='flag-5'>臂</b>接入GPT4o大模型!

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

    摘要大象機器人全新推出輕量級高性能教育機械myCobot280RDKX5,該產品集成地瓜機器人
    的頭像 發表于 04-15 22:05 ?1362次閱讀
    <b class='flag-5'>大象</b><b class='flag-5'>機器人</b>推出<b class='flag-5'>myCobot</b> <b class='flag-5'>280</b> RDK X5,攜手地瓜<b class='flag-5'>機器人</b>共建智能教育機

    大象機器人攜手進迭時空推出 RISC-V 全棧開源機械產品

    大象機器人成立于2016年,專注協作機器人研發與應用,產品線涵蓋輕量級協作機器人、人形
    的頭像 發表于 06-06 16:55 ?1415次閱讀
    <b class='flag-5'>大象</b><b class='flag-5'>機器人</b>攜手進迭時空推出 RISC-V 全棧開源<b class='flag-5'>六</b><b class='flag-5'>軸</b><b class='flag-5'>機械</b><b class='flag-5'>臂</b>產品