999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于ROS的機械臂視覺控制仿真

2022-04-29 03:51:16杜比強喬傲
電腦知識與技術 2022年4期
關鍵詞:機械臂

杜比強 喬傲

摘要:現代工業中機械臂的使用越來越廣泛,但傳統的機械臂缺乏同工作環境的交互能力,靈活性較差。為此考慮利用視覺來引導機械臂作業,為機械臂配置視覺傳感器,實時獲取工況信息,以提高機械臂在線實時作業的能力。ROS(Robot Operating System)在機器人開發領域的應用愈加廣泛,借助ROS構建相應的視覺引導機械臂作業的仿真模型。在Gazebo完成機械臂和Kinect相機的建模仿真,利用ROS節點通訊機制實現視覺識別結果對機械臂路徑規劃的指導。仿真運行結果驗證了該模型的可行性。

關鍵詞:ROS;機械臂;物體識別;MoveIt!;Gazebo

中圖分類號:TP273? ? ?文獻標識碼:A

文章編號:1009-3044(2022)04-0120-03

1 引言

ROS(Robot Operating System)作為一個開源的分布式系統,各個節點間相互獨立運行,數據可以在各個節點間傳輸。模塊化的操作大大提高了代碼的復用率[1-2]。ROS的社區擁有大量的功能包,如camera_calibration(相機標定),navigation(導航功能包,包括大多數經典的SALM算法)。此外ROS還集成了許多現有的開源軟件平臺,如OpenCV、Player、MoveIt!等。仿真平臺Gazebo、Rviz和ROS也能完美兼容,為機器人研究提供巨大的便利。

機器視覺利用從傳感器中收集到的信息,并從其中提取相關信息加以處理,模擬人眼來進行判斷和觀測[3]。在工業生產中,機器視覺往往用于代替人工在一些危險工況、高精度檢測或自動化生產這些場合[4]。在ROS平臺的基礎上 ,利用Gazebo模擬仿真出機械臂及Kinect相機,觀察視覺和機械臂間的配合作業。

2 ROS仿真工具平臺

2.1物理仿真環境Gazebo

機器人仿真系統是每個機器人領域的工程師必不可少的工具。Gazebo提供高保真度的物理模擬和一整套完整的傳感器模型,能夠在復雜的室內和室外環境中準確有效地模擬真實的環境,如重力、摩擦、慣性和碰撞體積等。并且Gazebo是與ROS無縫兼容的!Gazebo的應用大大降低了機器人研究的時間與成本[5]。

2.2 數據可視化工具Rviz

機器人系統中存在大量數據,包括機器人自身的參數狀態還有從傳感器獲取到的外部信息。這些數據在計算和傳遞的過程中往往都處于數據形態,例如圖像數據中0~255的RGB值,機器人坐標姿態。但是這種數據形態的值往往不利于開發者去感受數據所描述的內容,所以常常需要將數據可視化顯示,例如機器人模型的可視化、圖像數據的可視化、地圖數據的可視化等。Rviz是一款三維可視化工具,很好地兼容了各種基于ROS軟件框架的機器人平臺。在Rviz中,可以使用XML對機器人、周圍物體等任何實物進行尺寸、質量、位置、材質、關節等屬性的描述,并且在界面中呈現出來。同時,Rviz還可以通過圖形化的方式,實時顯示機器人傳感器的信息、機器人的運動狀態、周圍環境的變化等。

3 物體識別

3.1 find_object

視覺抓取過程中非常關鍵的一個環節就是對被抓取物體的識別,無論是二維圖像還是三維點云,在ROS中都可以找到對應的功能包。find_object是一種基于模板匹配算法(包括彩色圖像或點云匹配)的物體識別和檢測的功能包。find_object安裝命令:

$ sudo apt-get install ros-kinect-find-object-2d (對應ROS的kinetic版本)

該功能包有兩個重要節點:find_object_2d和find_object_3d。其中find_object_2d負責二維圖像的特征提取和識別,普通的單目相機就可以使用。而find_object_3d則是專為kinect或者zed雙目之類的深度相機準備的,可以通過在匹配目標后識別目標中心的深度信息輸出目標的三維坐標。

3.2 配置啟動文件

為了確定物體所處的位置,需要給機械臂配置它的“眼睛”。在Gazebo中仿真kinect相機,除了添加它的外觀模型文件外,還需要配置Kinect的相機描述插件“libgazebo_ros_

openni_kinect.so”。這樣才能給這個模型文件添加“靈魂”,賦予模型作為相機的功能?!發ibgazebo_ros_openni_kinect.so”會將獲取到的圖像信息以topic(ROS的一種通訊機制)的形式發布出去。關鍵代碼如下:

<imageTopicName>rgb/image_raw</imageTopicName>

<depthImageTopicName>depth/image_raw</depthImageTopicName>

......

<cameraInfoTopicName>rgb/camera_info</cameraInfoTopicName>

其中rgb/image_raw為對齊后的彩色圖像信息,depth/image_raw是圖像的深度信息,rgb/camera_info是相機標定信息。

在ROS的節點間可以通“發布/訂閱”的方式進行數據的傳遞,為了可以訂閱Kinect發布的圖像信息,需要對find_object_2d功能包中的一些參數修改。按照路徑/find_object

_2d/launch/find_object_3d.launch 找到啟動文件,修改其中的參數和Kinect相機發布的話題對應。

<arg name="rgb_topic"? ? ? ? ?default="camera/rgb/image_raw"/>

<arg name="rgb_topic"? ? ? ? ?default="camera/rgb/image_raw"/>

<arg name="camera_info_topic" default="camera/rgb/camera_info"/>

3.3 物體識別

啟動文件后得到一個仿真物體識別的操作頁面,通過菜單View-Parame-eters調出參數欄選項卡進行調整。find_object_2d提供了多種物體識別算法,如:SURF、SIFT、ORB、FAST等。觀察目標物體上的特征點數量及效果,以及處理的流暢程度,衡量選擇合適的算法匹配。該功能包是基于模板匹配算法實現物體識別的,首先需要在圖像中手動圈出待識別物體,提取物體的特征點。

可以看到目標物體按照需要被識別出并用邊線圈出,識別結果會以/objects 話題的形式發布出去。發布的消息包含物體的寬、高信息和單應性矩陣信息,這些信息用來計算物體的位置、方向和剪切值。調用以下命令,查看物體四個頂點的坐標和物體id:

$ rosrun find_object_2d print_objects_detected image:=/camera/color/image_raw

打開Rviz添加坐標變換樹,可以直觀地觀察物體和相機的坐標變換關系。

4 機械臂仿真抓取

4.1 轉換坐標系

在Rviz中可以通過訂閱/tf_example消息來獲得目標物體在相機坐標系中的位姿信息,并通過機械臂坐標系到相機坐標系的映射關系,最終獲得目標物體在機械臂坐標系的位姿。

ROS教程提供了一種tf轉換方法,可以直接查詢機械臂基座標到物體的tf關系,實現不同物體坐標系之間的轉換。機械臂確定了物體坐標系和基座坐標系之間的坐標映射關系,就可以通過路徑規劃完成機械臂末端的移動實現抓取作業。

創建一個監聽坐標系發布法的節點,代碼關鍵段:

tf::StampedTransform transform;// 創建一個tf::TransformBroadcaster類的實例,用來廣播坐標的變換關系

try{

listener.lookupTransform("/camrea_link", "/object_1",? //第一個參數為相機坐標系,第二個參數為物體的坐標系

ros::Time(0), transform);

}

catch (tf::TransformException ex){

ROS_ERROR("%s",ex.what());

ros::Duration(1.0).sleep();

}

4.2 MoveIt!

MoveIt!是一個易于使用的集成化開發平臺,包含了大量機械臂運動操作的功能包,如:機械臂運動學、路徑規劃、碰撞檢測等[6],是ROS社區中排名前三的功能包[7]。MoveIt!留有豐富C++和pythom接口,因此除了借助ROS原生的接口函數外,我們還可以自己編寫一個節點,完成機械臂對物體的抓取[8]。

move_group節點作為 MoveIt!的核心,集成了運動分析、規劃和執行、取放操作等功能。在move_group中給出機械臂需要移動的目標狀態,MoveIt!便會按照特定路徑規劃算法(如RRT,PRM等)移動機械臂。

在Gazebo中僅僅是仿真出機械臂模型,物體和周圍環境,機械臂末端的移動過程不能直觀地表現出來。在Rviz中添加機器人模型末端的軌跡線,就可以清楚地看到機械臂就緒-抓取-移動-回歸就緒狀態的工作過程。

5 結語

本文基于ROS平臺,并利用ROS強大的開源社區找到相應的物體識別功能包,實現了對二維、三維情況下的物體識別,將識別結果實時發送給機械臂,引導機械臂靈活作業。

通過借助于Gazebo、Rviz仿真平臺,模擬出kinec相機對特定物體的識別效果,并通過Rviz將坐標變化結果可視化,方便觀察。憑借ROS節點間的通訊機制,將得到的坐標信息發布出去,然后MoveIt!訂閱消息,獲得物體位置并轉化為相對于機械臂基座的坐標,實現對目標物體的抓取。此次仿真結果實現了視覺對機械臂的引導,驗證了視覺實時引導機械臂作業的可行性。

參考文獻:

[1] 翟文正.將ROS引入嵌入式技術與應用專業的實踐教學淺析[J].工業和信息化教育,2020(7):79-84.

[2] 李鳳.基于ROS的機械臂控制系統設計[J].自動化技術與應用,2018,37(11):72-76.

[3] 朱正德,楊虹,方琳,等.機器視覺:質量監控的第三只眼[J].現代零部件,2010(10):56-63.

[4] 章煒.機器視覺技術發展及其工業應用[J].紅外,2006,27(2):11-17.

[5] 滕步煒.基于ROS和Gazebo的Hector四旋翼仿真[J].電腦知識與技術,2020,16(8):259-260.

[6] 劉月祺,辛大欣,劉文強.基于MoveIt的六自由度機器臂軌跡規劃[C]//2018中國自動化大會(CAC2018)論文集.西安,2018:670-675.

[7] 曹正萬,平雪良,陳盛龍,等.基于ROS的機器人模型構建方法研究[J].組合機床與自動化加工技術,2015(8):51-54.

[8] 左軒塵,韓亮亮,莊杰,等.基于ROS的空間機器人人機交互系統設計[J].計算機工程與設計,2015,36(12):3370-3374.

收稿日期:2021-09-21

作者簡介:杜比強(1974—),男,江西吉安人,副教授,博士,主要研究方向為工業機器人及應用;喬傲(1997—),男,河北衡水武邑縣人,學生,主要研究方向為ros機器人操作系統仿真。

猜你喜歡
機械臂
一種六自由度機械臂的控制系統設計
碼頭集裝箱機械臂的研究與設計
書畫手臂的模型設計
六自由度機械臂控制系統設計
求知導刊(2017年1期)2017-03-24 22:25:58
基于無人機平臺的垃圾搜索及拾取系統設計
物聯網技術(2017年2期)2017-03-15 17:04:47
基于智能車技術的圖書館書籍整理機器人
機械臂平面運動控制與分析
機械臂工作空間全局相對可操作度圖的構建方法
人機交互課程創新實驗
計算機教育(2016年7期)2016-11-10 09:01:27
定點巡視與帶電清理平臺的研究與設計
主站蜘蛛池模板: 欧美午夜小视频| 26uuu国产精品视频| 国产91丝袜在线播放动漫| 国产成人资源| 国产v精品成人免费视频71pao| 欧美国产日韩在线| 国产精品视频第一专区| 国产一区二区三区精品久久呦| 国产制服丝袜无码视频| 亚洲精品制服丝袜二区| 中文字幕啪啪| www.精品国产| 国产精品永久久久久| 国产综合另类小说色区色噜噜| 欧美亚洲一二三区| 亚洲国产精品日韩欧美一区| 久久伊人操| 三上悠亚一区二区| 激情综合图区| WWW丫丫国产成人精品| 伊人91在线| 亚洲女同欧美在线| 亚洲视频免| 亚洲高清无码久久久| 亚洲欧洲日韩久久狠狠爱| 午夜国产精品视频黄| 久久精品这里只有国产中文精品 | 114级毛片免费观看| 欧美日韩国产一级| 久久这里只有精品8| 99久久成人国产精品免费| 国产色图在线观看| 3344在线观看无码| 国产一国产一有一级毛片视频| 国产成人精品一区二区三区| 中文字幕在线视频免费| 88国产经典欧美一区二区三区| 国产精品一老牛影视频| 国产中文在线亚洲精品官网| 怡红院美国分院一区二区| 成人免费视频一区二区三区| jizz在线观看| 亚洲av无码专区久久蜜芽| 成人午夜福利视频| 97se亚洲综合在线天天| 91网站国产| 国产视频a| 被公侵犯人妻少妇一区二区三区| 激情国产精品一区| 91免费国产在线观看尤物| 中文字幕资源站| 久操线在视频在线观看| 四虎影视库国产精品一区| 国产欧美网站| 国产美女久久久久不卡| av在线人妻熟妇| 国产精品区视频中文字幕| 国产精品免费久久久久影院无码| 小蝌蚪亚洲精品国产| 亚洲黄色视频在线观看一区| 婷婷午夜影院| 色视频久久| 欧美一级在线看| 国产无套粉嫩白浆| 另类专区亚洲| 日韩欧美国产综合| 欧美午夜一区| 国产午夜无码专区喷水| 无码专区国产精品第一页| 91网在线| 亚洲精品欧美重口| 国产主播在线一区| 欧美色视频在线| 91区国产福利在线观看午夜| 91久久夜色精品国产网站| 国内熟女少妇一线天| 精品午夜国产福利观看| 人与鲁专区| 欧美在线视频a| 亚洲综合二区| 美女高潮全身流白浆福利区| 国产精品永久久久久|