遠(yuǎn)程辦公”">國(guó)務(wù)院聯(lián)防聯(lián)控機(jī)制新聞發(fā)布會(huì),多次肯定“云辦公”、“遠(yuǎn)程辦公”
1220
2025-04-05
ROS發(fā)展神速,必須天天學(xué)習(xí),否則落后太多。
具體參考鏈接:https://discourse.ros.org/t/new-robust-pre-trained-semantic-segmentation-models-cvpr-20/15607
具體參考鏈接:https://discourse.ros.org/t/quadruped-robot-controller/15625
具體參考鏈接:https://ubuntu.com/blog/simulate-the-turtlebot3
具體參考鏈接:https://github.com/aws-samples/aws-robomaker-sample-application-pr2-hospital
~如下為機(jī)器翻譯~
2020年使用ROS2需要做的五件事
在過(guò)去的幾個(gè)月中,我一直在使用ROS2。正如我之前提到的,似乎沒(méi)有太多運(yùn)行ROS2的真正機(jī)器人。我們有一個(gè)雞到蛋的問(wèn)題,其中工具尚未完全為真正的機(jī)器人所用,但是直到人們開(kāi)始在真正的機(jī)器人上使用ROS2為止,沒(méi)人知道真正的痛點(diǎn)。
在ROS2中可以完成很多事情。但是實(shí)現(xiàn)所有這些的時(shí)間有限-因此,我們需要關(guān)注那些使機(jī)器人及其開(kāi)發(fā)人員能夠“生存”的過(guò)程。
我經(jīng)常被問(wèn)到ROS2是否已準(zhǔn)備就緒。我很長(zhǎng)一段時(shí)間的回答是“不”。此時(shí),我將其升級(jí)為“也許取決于您在做什么”。這篇文章描述了我認(rèn)為對(duì)大多數(shù)機(jī)器人專家來(lái)說(shuō)答案是“好”的五件事。我實(shí)際上希望這個(gè)職位的年齡很差,并且所有這些事情都會(huì)在ROS2中發(fā)生。
RVIZ,rcl2cli的自動(dòng)QoS
服務(wù)質(zhì)量(QoS)可能是ROS1和ROS2之間最大的變化-也是我所知最多的問(wèn)題。ROS2 Foxy版本向命令添加了一個(gè)?--verbose選項(xiàng),ros2 topic info這是朝正確方向邁出的重要一步。這使您可以快速診斷發(fā)布者和訂閱者何時(shí)使用不兼容的QoS。
rosbag2在ROS2 Foxy中有了巨大的升級(jí):它會(huì)自動(dòng)確定服務(wù)質(zhì)量(QoS)的正確設(shè)置,以便它始終連接到您要記錄的發(fā)布者(請(qǐng)注意:如果多個(gè)發(fā)布者正在使用不同的QoS發(fā)布到同一個(gè)主題它可能不起作用-但實(shí)際上,是誰(shuí)干的?)。
現(xiàn)在,我們需要RVIZ2和命令行實(shí)用程序(CLI)中的該功能。這些是調(diào)試工具,因此它們需要能夠在大多數(shù)情況下“正常工作”。
由于大多數(shù)時(shí)候您都使用RVIZ2連接到傳感器數(shù)據(jù),該數(shù)據(jù)通常以非默認(rèn)QoS(傳感器數(shù)據(jù)配置文件)發(fā)布,因此,RVIZ在所有內(nèi)容上都使用默認(rèn)QoS(與傳感器不兼容)絕對(duì)是傻瓜個(gè)人資料)。?默認(rèn)情況下,即使是像鎖定主題這樣簡(jiǎn)單的事情也將不起作用。
這不是一個(gè)容易的問(wèn)題。這將涉及對(duì)RVIZ的重大更改以及對(duì)較低級(jí)別的軟件包(如)的更改message_filters,但是我敢肯定,這是一個(gè)最大的,物盡其用的改進(jìn),它將使ROS2更適合于機(jī)器人開(kāi)發(fā)人員。
文獻(xiàn)資料
好的,我聽(tīng)起來(lái)像是一個(gè)破記錄(或者您8歲的移動(dòng)操縱器上吱吱作響的腳輪),但這確實(shí)很重要。
我不僅在這里談?wù)撊鄙俳坛獭T?011-2014年代(當(dāng)社區(qū)經(jīng)歷了巨大的增長(zhǎng)時(shí)),ROS使之成為新開(kāi)發(fā)者的福音所在,其中之一就是非常精美且最新的Wiki。如果您想查找有關(guān)軟件包的信息,可以轉(zhuǎn)到wiki.ros.org/package_name-文檔就在那里(或者如果不是,您有個(gè)很好的主意,認(rèn)為該軟件包尚未準(zhǔn)備就緒)時(shí)間)。使用ROS2,我們還沒(méi)有一個(gè)集中的文檔記錄場(chǎng)所-我認(rèn)為這阻礙了社區(qū)的發(fā)展。
還有“用戶文檔”的問(wèn)題。假設(shè)專業(yè)的編程背景(幾乎比ROS1文檔還要多)編寫(xiě)ROS2的幾乎所有內(nèi)容。閱讀源代碼并不是您應(yīng)該學(xué)習(xí)如何為激光掃描儀運(yùn)行ROS驅(qū)動(dòng)程序的方式。
建立社區(qū)非常重要。修復(fù)錯(cuò)誤的最佳方法是找到需要修復(fù)的開(kāi)發(fā)人員。我只使用了ROS2幾個(gè)月的時(shí)間-那時(shí)我已經(jīng)修復(fù)了多個(gè)ROS2軟件包中的六個(gè)錯(cuò)誤,甚至還維護(hù)了urg_node和相關(guān)軟件包的ROS2端口?。
訂戶連接回調(diào)
現(xiàn)在,我們將進(jìn)入一個(gè)超級(jí)技術(shù)問(wèn)題-但影響是巨大的-特別是對(duì)于那些進(jìn)行感知的人(通常來(lái)說(shuō),這是機(jī)器人技術(shù)的很大一部分)。在ROS1中創(chuàng)建發(fā)布者時(shí),您可以注冊(cè)一個(gè)回調(diào),只要訂閱者連接或斷開(kāi)連接,該回調(diào)便會(huì)被調(diào)用。ROS2中尚不存在此功能,但我認(rèn)為它對(duì)于真正的機(jī)器人系統(tǒng)至關(guān)重要。原因如下:
機(jī)器人可以生成大量傳感器數(shù)據(jù)-特別是在將處理管道添加到混合中時(shí)。有時(shí),您可能需要具有顏色和深度信息的高分辨率點(diǎn)云。有時(shí)您需要低分辨率的無(wú)色點(diǎn)云。當(dāng)機(jī)器人系統(tǒng)執(zhí)行多個(gè)任務(wù)時(shí),尤其如此。例如,假設(shè)有一個(gè)既可移動(dòng)又可操縱的機(jī)器人-用于導(dǎo)航環(huán)境,它需要高幀速,低分辨率的點(diǎn)云來(lái)避免碰撞。當(dāng)移動(dòng)操縱器到達(dá)目的地時(shí),它希望切換到高分辨率點(diǎn)云來(lái)決定要抓取什么。
有時(shí),您實(shí)際上無(wú)法發(fā)布所有可能的數(shù)據(jù)流,因?yàn)樗鼤?huì)使硬件不堪重負(fù)(例如,如果要同時(shí)從大多數(shù)RGBD傳感器提取深度,顏色和IR,則會(huì)使USB總線飽和)。
在ROS1中,您可以創(chuàng)建“惰性發(fā)布者”,以便這些密集型數(shù)據(jù)類型的創(chuàng)建者僅在有人監(jiān)聽(tīng)時(shí)才創(chuàng)建和發(fā)布數(shù)據(jù)。連接回調(diào)將通知他們有人在聽(tīng)。在各種驅(qū)動(dòng)程序以及image_proc和?depth_image_proc>程序包中缺少懶惰的發(fā)布者是構(gòu)建高性能感知系統(tǒng)的真正挑戰(zhàn)。當(dāng)人們問(wèn)我“ ROS2準(zhǔn)備好了嗎?”時(shí),我最近的第一個(gè)問(wèn)題是“您在做些什么?
需要明確的是,在某些情況下有一些解決方法。如果您要自己創(chuàng)建發(fā)布者,則可以:
創(chuàng)建一個(gè)循環(huán),以“輪詢”是否有訂閱者(使用get_subscription_count),就像我現(xiàn)在在openni2_camera軟件包中所做的那樣。
使用參數(shù)動(dòng)態(tài)重新配置正在運(yùn)行的內(nèi)容。盡管這在某些情況下可能行得通(甚至可能是某些用例的首選解決方案),但它可能導(dǎo)致系統(tǒng)更脆弱。
通過(guò)對(duì)給定機(jī)械手的確切需求進(jìn)行硬編碼,重新構(gòu)造系統(tǒng),永遠(yuǎn)不需要懶惰的發(fā)布者。盡管其中一些可能會(huì)在更高的生產(chǎn)環(huán)境中發(fā)生,但它并不適合于代碼重用和共享,而這正是ROS1的主要賣(mài)點(diǎn)之一。
請(qǐng)注意,我說(shuō),“如果您要自己創(chuàng)建發(fā)布器”。由于缺少訂戶連接回調(diào),ROS1中大量依賴于其ROS2端口被破壞或損壞的軟件包:
message_filters
image_transport
image_proc
depth_image_proc
相關(guān)答案.ros.org:
訂閱匹配中的ROS2發(fā)布者回調(diào)
開(kāi)發(fā)人員參與
注意:在撰寫(xiě)這篇文章的那個(gè)月,已經(jīng)回答了許多問(wèn)題,所以我們已經(jīng)到了!
我記得人們?cè)陂_(kāi)玩笑說(shuō)ROS Answers的名字是錯(cuò)誤的,因?yàn)槟抢餂](méi)有答案,只有問(wèn)題。實(shí)際上,這不是真的-除非您搜索?ROS2標(biāo)簽。
那里有很多非常好的問(wèn)題。例如,文檔中沒(méi)有的東西,可能與大量用戶有關(guān)。以下是一些示例:
rmw_serialize和反序列化線程安全嗎?
如何退訂主題?
為什么要在Python中使用destory_node
set(node_plugins)實(shí)際做什么?
ROS2開(kāi)發(fā)人員,請(qǐng)注意:我們?cè)谠撓到y(tǒng)中擁有許多出色的功能,請(qǐng)幫助您的用戶學(xué)習(xí)如何實(shí)際使用它們-也許他們甚至可以幫助您做出貢獻(xiàn)!
您在ROS2上的機(jī)器人
可能還藏有許多其他錯(cuò)誤/問(wèn)題/等。您的機(jī)器人可能與我的機(jī)器人不完全相同-用例將有所不同。我們需要更多運(yùn)行ROS2的機(jī)器人來(lái)挖掘事物。好消息是:您可以在同一系統(tǒng)上安裝ROS1和ROS2,并輕松地來(lái)回切換。
機(jī)器人 硬件開(kāi)發(fā)
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。