chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ROS的基本概念和系統(tǒng)架構(gòu) ROS的安裝和簡(jiǎn)單測(cè)試

機(jī)器人技術(shù)與應(yīng)用 ? 來(lái)源:車路漫漫 ? 2023-11-15 12:42 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

作者:李慢慢

來(lái)源:微信公眾號(hào)【車路漫漫】

前言:一直都覺(jué)得ROS很神秘,到底是個(gè)操作系統(tǒng),僅憑稱呼就讓我望而卻步了。但ROS和自動(dòng)駕駛仿真有著千絲萬(wàn)縷的聯(lián)系,作為仿真軟件和智駕算法的數(shù)據(jù)橋梁,ROS是個(gè)繞不開(kāi)的話題,所以還是得硬著頭皮啃一啃。然后用大白話講給你聽(tīng),最好再做兩個(gè)小栗子,那可真是功德無(wú)量了。

本文將帶領(lǐng)大家了解ROS的核心概念,為后續(xù)學(xué)習(xí)“使用ROS框架為自動(dòng)駕駛仿真平臺(tái)集成被控算法”打好基礎(chǔ)。

1、ROS簡(jiǎn)介

ROS(Robot Operating System)是一個(gè)適用于機(jī)器人的開(kāi)源框架,這個(gè)框架把原本松散的零部件耦合在了一起,為它們提供了通信架構(gòu)。ROS雖然叫做操作系統(tǒng),但是它卻要安裝在如Linux這種操作系統(tǒng)上才能運(yùn)行。它的作用只是連接真正的操作系統(tǒng)(如Linux)和使用者自己開(kāi)發(fā)的ROS應(yīng)用程序(比如自動(dòng)駕駛的感知、規(guī)劃、決策等模塊),所以它也算是個(gè)中間件,在基于ROS的應(yīng)用程序之間建立起了溝通的橋梁。

cea75f12-82cd-11ee-939d-92fbcf53809c.png

所以,簡(jiǎn)單點(diǎn)說(shuō), ROS就是一個(gè)分布式的通信框架,幫助程序進(jìn)程之間更方便地通信。

為了更形象的理解ROS的應(yīng)用,這里從別的平臺(tái)找到一個(gè)非常好的科普視頻,供大家學(xué)習(xí)。

2、ROS的核心概念

在正式學(xué)習(xí)ROS之前,先介紹ROS的幾個(gè)特性,即元操作系統(tǒng)、分布式通信機(jī)制、松耦合軟件框架、豐富的開(kāi)源功能庫(kù)等,來(lái)幫大家建立一些感性的認(rèn)識(shí)。

ROS是一個(gè)機(jī)器人領(lǐng)域的元操作系統(tǒng)。也就是說(shuō),它并不是真正意義上的操作系統(tǒng),其底層的任務(wù)調(diào)度、編譯、設(shè)備驅(qū)動(dòng)等還是由它的原生操作系統(tǒng)Ubuntu/Linux完成。

ROS實(shí)際上是運(yùn)行在Ubuntu/Linux上的亞操作系統(tǒng) ,或者說(shuō)軟件框架,但提供硬件抽象、函數(shù)調(diào)用、進(jìn)程管理這些類似操作系統(tǒng)的功能,也提供用于獲取、編譯、跨平臺(tái)的函數(shù)和工具。

ROS的核心思想就是將機(jī)器人的軟件功能做成一個(gè)個(gè)節(jié)點(diǎn),節(jié)點(diǎn)之間通過(guò)互相發(fā)送消息進(jìn)行溝通。這些節(jié)點(diǎn)可以部署在同一臺(tái)主機(jī)上,也可以部署在不同主機(jī)上,甚至還可以部署在互聯(lián)網(wǎng)上。ROS網(wǎng)絡(luò)通信機(jī)制中的主節(jié)點(diǎn)(master)負(fù)責(zé)對(duì)網(wǎng)絡(luò)中各個(gè)節(jié)點(diǎn)之間的通信過(guò)程進(jìn)行管理調(diào)度,同時(shí)提供一個(gè)用于配置網(wǎng)絡(luò)中全局參數(shù)的服務(wù)。

ROS是松耦合軟件框架,利用分布式通信機(jī)制實(shí)現(xiàn)節(jié)點(diǎn)間的進(jìn)程通信。ROS的軟件代碼以松耦合方式組織,開(kāi)發(fā)過(guò)程靈活,管理維護(hù)方便。

3、從ROS1到ROS2

2007年,一家名為柳樹(shù)車庫(kù)(Willow Garage)的機(jī)器人公司發(fā)布了ROS,ROS集開(kāi)源、免費(fèi)、高復(fù)用、低耦合、工具豐富等等諸多優(yōu)勢(shì)于一身,一經(jīng)推出便迅速吸引了大量的開(kāi)發(fā)者、科研人員、硬件供應(yīng)商的加入,形成了穩(wěn)定且多樣的機(jī)器人生態(tài),水到渠成的ROS也成為了機(jī)器人領(lǐng)域的主流軟件框架并流行至今。

自ROS誕生的十幾年來(lái),不管是機(jī)器人相關(guān)軟件、硬件還是ROS社區(qū)都發(fā)生了天翻地覆的變化,加之原本的ROS存在一些設(shè)計(jì)上的先天性缺陷,在各種內(nèi)外因素疊加下,導(dǎo)致老ROS在許多應(yīng)用場(chǎng)景下都已經(jīng)顯得力不從心了。此背景下,官方于2017正式推出了新一代機(jī)器人操作系統(tǒng)——ROS2(區(qū)別于老ROS,即ROS1),ROS2基于全新的設(shè)計(jì)框架,保留了ROS1的優(yōu)點(diǎn)并改進(jìn)其缺陷,以適應(yīng)新時(shí)代的新需求。

ROS2是全新一代機(jī)器人操作系統(tǒng),不只是功能增強(qiáng)的ROS1。

所以,我們還是直接就學(xué)習(xí)ROS2吧。

4、ROS的發(fā)行版本

ROS最初是基于Ubuntu系統(tǒng)開(kāi)發(fā)的,ROS的發(fā)行版本名稱也和Ubuntu采用了同樣的規(guī)則,即版本名稱由兩個(gè)相同首字母的英文單詞組成,版本首字母按字母表遞增順序選取,以下列表為ROS2各不同發(fā)布版本的簡(jiǎn)單說(shuō)明。

發(fā)行版 發(fā)布日期 停止維護(hù)日期
Iron Irwini 2023 年 5 月 23 日 2024 年 11 月
Iron Irwini 2023 年 5 月 23 日 2024 年 11 月
Humble Hawksbill 2022 年 5 月 23 日 2027 年 5 月
Galactic Geochelone 2021 年 5 月 23 日 2022 年 11 月
Foxy Fitzroy 2020 年 6 月 5 日 2023 年 5 月
Eloquent Elusor 2019 年 11 月 22 日 2020 年 11 月
Dashing Diademata 2019 年 5 月 31 日 2021 年 5 月
Crystal Clemmys 2018 年 12 月 14 日 2019 年 12 月
Bouncy Bolson 2018 年 7 月 2 日 2019 年 7 月
Ardent Apalone 2017 年 12 月 8 日 2018 年 12 月

5、ROS的學(xué)習(xí)方法

要想學(xué)好以及用好ROS,需要進(jìn)行大量的實(shí)踐操作。因此在快速了解ROS的核心概念和編程范式后,就要結(jié)合大量的實(shí)際項(xiàng)目來(lái)深入理解ROS。ROS的學(xué)習(xí)資源主要有以下幾個(gè):

官網(wǎng):www.ros.org

源碼:github.com

Wiki:wiki.ros.org

問(wèn)答:answers.ros.org

6、ROS系統(tǒng)架構(gòu)

由于ROS的架構(gòu)比較復(fù)雜,為了后面容易理解遇到的各種概念,這里先討論一下ROS的系統(tǒng)架構(gòu),好讓大家對(duì)ROS中的各種概念有全面性把控。按照官方的說(shuō)法,可以分別從計(jì)算圖 、 文件系統(tǒng)開(kāi)源社區(qū)視角來(lái)理解ROS架構(gòu)。

6.1、從計(jì)算圖視角理解ROS架構(gòu)

ROS中可執(zhí)行程序的基本單位叫 節(jié)點(diǎn) (node),節(jié)點(diǎn)之間通過(guò)消息機(jī)制進(jìn)行通信,這樣就組成了一張網(wǎng)狀圖,也叫計(jì)算圖,如下圖所示。

cebe9696-82cd-11ee-939d-92fbcf53809c.png

節(jié)點(diǎn)是可執(zhí)行程序,通常也叫進(jìn)程。

ROS功能包中創(chuàng)建的每個(gè)可執(zhí)行程序在被啟動(dòng)加載到系統(tǒng)進(jìn)程中后,就是一個(gè)ROS節(jié)點(diǎn),如上圖中的節(jié)點(diǎn)1、節(jié)點(diǎn)2、節(jié)點(diǎn)3等。

節(jié)點(diǎn)之間通過(guò)收發(fā)消息進(jìn)行通信,消息收發(fā)機(jī)制分為 話題 (topic)、 服務(wù) (service)和 動(dòng)作 (action)三種,如圖1-3中的節(jié)點(diǎn)2與節(jié)點(diǎn)3、節(jié)點(diǎn)2與節(jié)點(diǎn)5采用話題通信,節(jié)點(diǎn)2與節(jié)點(diǎn)4采用服務(wù)通信,節(jié)點(diǎn)1與節(jié)點(diǎn)2采用動(dòng)作通信。計(jì)算圖中的節(jié)點(diǎn)、話題、服務(wù)、動(dòng)作都要有唯一名稱作為標(biāo)識(shí)。

ROS利用節(jié)點(diǎn)將代碼和功能解耦,提高了系統(tǒng)的容錯(cuò)性和可維護(hù)性。所以最好讓每個(gè)節(jié)點(diǎn)都具有特定的單一功能,而不是創(chuàng)建一個(gè)包羅萬(wàn)象的龐大節(jié)點(diǎn)。如果用C++編寫(xiě)節(jié)點(diǎn),需要用到ROS提供的roscpp庫(kù);如果用Python編寫(xiě)節(jié)點(diǎn),需要用到ROS提供的rospy庫(kù)。

主節(jié)點(diǎn)負(fù)責(zé)各個(gè)節(jié)點(diǎn)之間通信過(guò)程的調(diào)度管理。因此主節(jié)點(diǎn)必須要最先啟動(dòng),可以通過(guò)roscore命令啟動(dòng)。

消息是構(gòu)成計(jì)算圖的關(guān)鍵,包括消息機(jī)制和消息類型兩部分:消息機(jī)制有話題、服務(wù)和動(dòng)作三種,每種消息機(jī)制中傳遞的數(shù)據(jù)都具有特定的數(shù)據(jù)類型(即消息類型);消息類型可分為話題消息類型、服務(wù)消息類型和動(dòng)作消息類型;

數(shù)據(jù)包 (rosbag)是ROS中專門(mén)用來(lái)保存和回放話題中數(shù)據(jù)的文件,可以將一些難以收集的傳感器數(shù)據(jù)用數(shù)據(jù)包錄制下來(lái),然后反復(fù)回放來(lái)進(jìn)行算法性能調(diào)試。

參數(shù)服務(wù)器能夠?yàn)檎麄€(gè)ROS網(wǎng)絡(luò)中的節(jié)點(diǎn)提供便于修改的參數(shù)。參數(shù)可以認(rèn)為是節(jié)點(diǎn)中可供外部修改的全局變量,有靜態(tài)參數(shù)和動(dòng)態(tài)參數(shù)。靜態(tài)參數(shù)一般用于在節(jié)點(diǎn)啟動(dòng)時(shí)設(shè)置節(jié)點(diǎn)工作模式;動(dòng)態(tài)參數(shù)可以用于在節(jié)點(diǎn)運(yùn)行時(shí)動(dòng)態(tài)配置節(jié)點(diǎn)或改變節(jié)點(diǎn)工作狀態(tài),比如電機(jī)控制節(jié)點(diǎn)里的PID控制參數(shù)。

6.2、從文件系統(tǒng)視角理解ROS架構(gòu)

ROS程序的不同組件要放在不同的文件夾中,這些文件夾根據(jù)不同的功能對(duì)文件進(jìn)行組織,這就是ROS的文件系統(tǒng)結(jié)構(gòu),如下圖所示。

cec705b0-82cd-11ee-939d-92fbcf53809c.png

工作空間是一個(gè)包含功能包、編譯包和編譯后可執(zhí)行文件的文件夾,用戶可以根據(jù)自己的需要?jiǎng)?chuàng)建多個(gè)工作空間,在每個(gè)工作空間中開(kāi)發(fā)不同用途的功能包。在上圖中,我們創(chuàng)建了一個(gè)名為catkin_ws的工作空間,其中包含src、build和devel三個(gè)文件夾。

src文件夾 放置各個(gè)功能包和配置功能包的CMake配置文件CMakeLists.txt。這里說(shuō)明一下,由于ROS中的源碼采用catkin工具進(jìn)行編譯,而catkin工具又基于CMake技術(shù),所以我們?cè)趕rc源文件空間和各個(gè)功能包中都會(huì)見(jiàn)到一個(gè)CMake配置文件CMakeLists.txt,這個(gè)文件起到配置編譯的作用。

build文件夾 放置編譯CMake和catkin功能包時(shí)產(chǎn)生的緩存、配置、中間文件等。

devel文件夾 放置編譯好的可執(zhí)行程序,這些可執(zhí)行程序是不需要安裝就能直接運(yùn)行的。一旦功能包源碼編譯和測(cè)試通過(guò)后,可以將這些編譯好的可執(zhí)行文件直接導(dǎo)出與其他開(kāi)發(fā)人員分享。

功能包是ROS中軟件組織的基本形式,具有創(chuàng)建ROS程序的最小結(jié)構(gòu)和最少內(nèi)容,它包含ROS節(jié)點(diǎn)源碼、腳本、配置文件等。

CMakeLists.txt是功能包配置文件,用于編譯Cmake功能包編譯時(shí)的編譯配置。

package.xml是功能包清單文件,用xml的標(biāo)簽格式標(biāo)記該功能包的各類相關(guān)信息,比如包的名稱、開(kāi)發(fā)者信息、依賴關(guān)系等,主要是為了使功能包的安裝和分發(fā)更容易。

include/是功能包頭文件目錄,可以把功能包程序中包含的*.h頭文件放在這里。include目錄之所以還要加一級(jí)路徑是為了更好地區(qū)分自己定義的頭文件和系統(tǒng)標(biāo)準(zhǔn)頭文件,用實(shí)際功能包的名稱替代。不過(guò)這個(gè)文件夾不是必要項(xiàng),比如有些程序沒(méi)有頭文件。

msg、srv和action這三個(gè)文件夾分別用于存放非標(biāo)準(zhǔn)話題消息、服務(wù)消息和動(dòng)作消息的定義文件。ROS支持用戶自定義消息通信過(guò)程中使用的消息類型。這些自定義消息不是必要的,比如程序只使用標(biāo)準(zhǔn)消息類型。

scripts目錄存放Bash、Python等腳本文件,為非必要項(xiàng)。

launch目錄存放節(jié)點(diǎn)的啟動(dòng)文件,*.launch文件用于啟動(dòng)一個(gè)或多個(gè)節(jié)點(diǎn),在含有多個(gè)節(jié)點(diǎn)的大型項(xiàng)目中很有用,為非必要項(xiàng)。

src目錄存放功能包節(jié)點(diǎn)所對(duì)應(yīng)的源代碼,一個(gè)功能包中可以有多個(gè)節(jié)點(diǎn)程序來(lái)完成不同的功能,每個(gè)節(jié)點(diǎn)程序都可以單獨(dú)運(yùn)行。這里src目錄存放的是這些節(jié)點(diǎn)程序的源代碼,你可以按需創(chuàng)建文件夾和文件來(lái)組織源代碼,源代碼可以用C++、Python等編寫(xiě)。

6.3、從開(kāi)源社區(qū)視角理解ROS架構(gòu)

ROS是開(kāi)源軟件,各個(gè)獨(dú)立的網(wǎng)絡(luò)社區(qū)分享和貢獻(xiàn)軟件及教程,形成了強(qiáng)大的ROS開(kāi)源社區(qū),如下圖所示。

ced28e12-82cd-11ee-939d-92fbcf53809c.png

ROS的發(fā)展依賴于開(kāi)源和共享的軟件,這些代碼由不同的機(jī)構(gòu)共享和發(fā)布,比如GitHub源碼共享、Ubuntu軟件倉(cāng)庫(kù)發(fā)布、第三方庫(kù)等。ROS的官方wiki是重要的文檔討論社區(qū),在里面可以很方便地發(fā)布與修改相應(yīng)的文檔頁(yè)面。ROS的answer主頁(yè)里有大量ROS開(kāi)發(fā)者的提問(wèn)和回答,對(duì)ROS開(kāi)發(fā)中遇到的各種問(wèn)題的討論很活躍。

7、ROS的安裝及測(cè)試

7.1、更新軟件源

再開(kāi)始安裝之前,強(qiáng)烈建議大家更新一下系統(tǒng)源(很多基礎(chǔ)環(huán)境包都將從這里下載并安裝)。我這里使用了阿里的源,更新方法如下:

首先需要備份一下原始的源列表文件

sudocp-rf/etc/apt/sources.list/etc/apt/sources.list.bak

然后開(kāi)始編輯源列表文件:

sudo gedit /etc/apt/sources.list

將sources.list中原本的內(nèi)容都刪除,然后填入以下的內(nèi)容后保存:

debhttp://mirrors.aliyun.com/ubuntu/jammymainrestricteduniversemultiverse
deb-srchttp://mirrors.aliyun.com/ubuntu/jammymainrestricteduniversemultiverse
debhttp://mirrors.aliyun.com/ubuntu/jammy-securitymainrestricteduniversemultiverse
deb-srchttp://mirrors.aliyun.com/ubuntu/jammy-securitymainrestricteduniversemultiverse
debhttp://mirrors.aliyun.com/ubuntu/jammy-updatesmainrestricteduniversemultiverse
deb-srchttp://mirrors.aliyun.com/ubuntu/jammy-updatesmainrestricteduniversemultiverse
debhttp://mirrors.aliyun.com/ubuntu/jammy-proposedmainrestricteduniversemultiverse
deb-srchttp://mirrors.aliyun.com/ubuntu/jammy-proposedmainrestricteduniversemultiverse
debhttp://mirrors.aliyun.com/ubuntu/jammy-backportsmainrestricteduniversemultiverse
deb-srchttp://mirrors.aliyun.com/ubuntu/jammy-backportsmainrestricteduniversemultiverse

注意:雖然同為阿里源,但也有針對(duì)系統(tǒng)的不同源版本,我的Ubuntu系統(tǒng)是jammy版本,阿里源也應(yīng)該是這個(gè)版本。然后根據(jù)這個(gè)源更新自己系統(tǒng)里的軟件:

sudoapt-getupdate
sudoapt-getupgrade

這個(gè)過(guò)程應(yīng)該要挺久,但運(yùn)行完畢不應(yīng)該報(bào)錯(cuò)才行,有任務(wù)錯(cuò)誤請(qǐng)自行度娘。

然后就是根據(jù)官方的教程進(jìn)行ROS2的安裝。官方的安裝教程鏈接如下:

https://docs.ros.org/en/humble/Installation.html

7.2、檢查操作系統(tǒng)語(yǔ)言環(huán)境

在ROS2官方的文檔中,安裝ROS2之前需要首先檢查操作系統(tǒng)語(yǔ)言環(huán)境。官方解釋:確保你有一個(gè)支持UTF - 8的語(yǔ)言環(huán)境。如果你處在一個(gè)極小的環(huán)境(例如一個(gè)Docker容器)中,那么這個(gè)語(yǔ)言環(huán)境可能和POSIX一樣是極小的。我們通過(guò)以下設(shè)定進(jìn)行檢驗(yàn)。

我們可以Ctrl+Alt+T調(diào)出終端,輸入locale檢查是否支持 UTF-8,若不支持,則需要繼續(xù)執(zhí)行下邊的指令進(jìn)行設(shè)置:

locale#檢查是否支持UTF-8
sudoaptupdate&&sudoaptinstalllocales
sudolocale-genen_USen_US.UTF-8
sudoupdate-localeLC_ALL=en_US.UTF-8LANG=en_US.UTF-8
exportLANG=en_US.UTF-8
locale#驗(yàn)證設(shè)置是否正確

7.3、Ubuntu universe存儲(chǔ)庫(kù)設(shè)置與啟動(dòng)

在設(shè)置ROS2軟件源之前,我們需要首先啟動(dòng)Ubuntu universe存儲(chǔ)庫(kù),啟動(dòng)Ubuntu universe存儲(chǔ)庫(kù)我們可以通過(guò)打開(kāi)終端通過(guò)命令行進(jìn)行操作。

根據(jù)官方文檔,我們可以在命令行輸入下面的指令來(lái)進(jìn)行Ubuntu universe存儲(chǔ)庫(kù)的啟動(dòng):

sudoaptinstallsoftware-properties-common
sudoadd-apt-repositoryuniverse

7.4、設(shè)置ROS軟件源

通過(guò)下面的命令,首先將ROS 2 apt存儲(chǔ)庫(kù)更新添加到系統(tǒng),然后通過(guò)apt授權(quán)ROS 2的GPG密鑰:

sudoaptupdate&&sudoaptinstallcurl
sudocurl-sSLhttps://raw.githubusercontent.com/ros/rosdistro/master/ros.key-o/usr/share/keyrings/ros-archive-keyring.gpg

然后通過(guò)以下指令,將存儲(chǔ)庫(kù)添加到我們的源列表中。

echo"deb[arch=$(dpkg--print-architecture)signed-by=/usr/share/keyrings/ros-archive-keyring.gpg]http://packages.ros.org/ros2/ubuntu$(./etc/os-release&&echo$UBUNTU_CODENAME)main"|sudotee/etc/apt/sources.list.d/ros2.list>/dev/null

7.5、安裝ROS2

設(shè)置完存儲(chǔ)庫(kù)后,首先通過(guò)下面的指令更新apt存儲(chǔ)庫(kù)緩存

sudoaptupdate

由于ROS 2建立在頻繁更新的Ubuntu系統(tǒng)上。所以官方建議在安裝新的軟件包之前確保您的系統(tǒng)是最新的。我們可以通過(guò)下面的指令更新升級(jí)已安裝的軟件

sudoaptupgrade

ROS安裝版本選擇及安裝指令:

ROS2桌面版安裝(官方推薦),包括:ROS、Rviz、官方demo、教程

sudoaptinstallros-humble-desktop

ROS2基礎(chǔ)版安裝(裸機(jī)),包括:通信庫(kù)、消息包、命令行工具等,但沒(méi)有GUI工具。

sudoaptinstallros-humble-ros-base

這里我們安裝桌面版ROS2 ,輸入以下的安裝指令即可:

sudoaptinstallros-humble-desktop

7.6、環(huán)境配置

官方文檔給出了環(huán)境配置的方法,在終端下執(zhí)行ROS2程序之前,要調(diào)用下面的命令進(jìn)行環(huán)境配置,才可正確執(zhí)行程序

#Replace".bash"withyourshellifyou'renotusingbash
#Possiblevaluesare:setup.bash,setup.sh,setup.zsh
source/opt/ros/humble/setup.bash

對(duì)于官方的環(huán)境配置方法,由于每次打開(kāi)新的終端,都需要進(jìn)行環(huán)境的配置,這降低了開(kāi)發(fā)和測(cè)試的效率,為了避免每次打開(kāi)新的終端都進(jìn)行環(huán)境配置這個(gè)問(wèn)題,我們可以將配置環(huán)境指令通過(guò)下面的指令寫(xiě)入 ”~/.bashrc“ 文件,那么每次新啟動(dòng)終端時(shí),就不需要在手動(dòng)配置環(huán)境:

#將配置環(huán)境指令通過(guò)下面的指令寫(xiě)入”~/.bashrc“文件
echo"source/opt/ros/humble/setup.bash">>~/.bashrc
#查看”~/.bashrc“文件
sudogedit~/.bashrc

至此,我們完成了ROS2的安裝與環(huán)境配置,接下來(lái)我們進(jìn)行ROS2的環(huán)境測(cè)試。

8、ROS操作系統(tǒng)的使用案例

8.1、案例1-talker和listener

我們需要以此打開(kāi)兩個(gè)終端窗口,各輸入以下一條指令。

啟動(dòng)第一個(gè)終端,通過(guò)以下命令啟動(dòng)一個(gè)數(shù)據(jù)的發(fā)布者節(jié)點(diǎn)

ros2rundemo_nodes_cpptalker

啟動(dòng)第二個(gè)終端,通過(guò)以下命令啟動(dòng)一個(gè)數(shù)據(jù)的訂閱者節(jié)點(diǎn)

ros2rundemo_nodes_pylistener

如果“Hello World”字符串在兩個(gè)終端中正常傳輸,說(shuō)明通信系統(tǒng)沒(méi)有問(wèn)題。如下所示:

cee469fc-82cd-11ee-939d-92fbcf53809c.png

8.2、案例2-小烏龜

在我們安裝的ROS2桌面完整版中,內(nèi)置了一些案例,我們可以運(yùn)行這些案例來(lái)測(cè)試ROS2的安裝與配置是否正常。在這里,我們選用ROS2經(jīng)典的小烏龜案例來(lái)進(jìn)行演示,實(shí)操如下:

使用快捷鍵‘Ctrll+Alt+T’分別打開(kāi)兩個(gè)終端,并分別輸入下面兩個(gè)命令:

#啟動(dòng)第一個(gè)終端
#啟動(dòng)烏龜GUI節(jié)點(diǎn)界面,烏龜可以在界面中運(yùn)動(dòng)
ros2runturtlesimturtlesim_node
#啟動(dòng)第二個(gè)終端
#啟動(dòng)鍵盤(pán)控制節(jié)點(diǎn),可以通過(guò)鍵盤(pán)控制烏龜運(yùn)動(dòng)
ros2runturtlesimturtle_teleop_key

運(yùn)行效果的界面如下:

cef03368-82cd-11ee-939d-92fbcf53809c.png

9、結(jié)語(yǔ)

本文初步完成了ROS基本概念的學(xué)習(xí),并完成了安裝和簡(jiǎn)單測(cè)試。后續(xù)將繼續(xù)基于ROS和Carla,完成自定義節(jié)點(diǎn)的設(shè)置,并集成其他平臺(tái)的開(kāi)源自動(dòng)駕駛算法,以搭建更為完善的自動(dòng)駕駛仿真測(cè)試平臺(tái),歡迎大家持續(xù)關(guān)注。

文章來(lái)源:車路漫漫

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 機(jī)器人
    +關(guān)注

    關(guān)注

    213

    文章

    30550

    瀏覽量

    219305
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11622

    瀏覽量

    217832
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    7325

    瀏覽量

    128565
  • 自動(dòng)駕駛
    +關(guān)注

    關(guān)注

    791

    文章

    14662

    瀏覽量

    176240
  • ROS
    ROS
    +關(guān)注

    關(guān)注

    1

    文章

    290

    瀏覽量

    18451

原文標(biāo)題:9、結(jié)語(yǔ)

文章出處:【微信號(hào):robotmagazine,微信公眾號(hào):機(jī)器人技術(shù)與應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    NXP的芯片安裝Linux和ROS 是否可以?

    NXP的芯片安裝Linux和ROS 是否可以?尋求合作目前我公司在過(guò)一個(gè)項(xiàng)目需要NXP芯片安裝Linux和機(jī)器人操作系統(tǒng)ROS,請(qǐng)求論壇里的
    發(fā)表于 09-04 08:48

    超詳細(xì) ROS安裝教程

    關(guān)于ROS(Robot OS 機(jī)器人操作系統(tǒng)),估計(jì)看這個(gè)博文的大兄弟之前已經(jīng)都知道是啥了,我就不咋呼了...對(duì)于ROS安裝,在它的官方網(wǎng)站: http://wiki.
    發(fā)表于 05-16 19:35

    ROS簡(jiǎn)介

    目錄一、ROS簡(jiǎn)介1、什么是ROS2、ROS產(chǎn)生、發(fā)展和壯大的原因和意義二、在Ubuntu系統(tǒng)中,安裝對(duì)應(yīng)版本的
    發(fā)表于 12-17 08:24

    什么是ROSROS產(chǎn)生、發(fā)展和壯大的原因和意義

    機(jī)器人操作系統(tǒng)ROS)入門(mén)(嵌入式系統(tǒng)應(yīng)用開(kāi)發(fā))一、ROS 基本問(wèn)題1. 什么是 ROS2. ROS
    發(fā)表于 12-17 06:08

    制作ROS上位機(jī)小車系列

    系統(tǒng)安裝本項(xiàng)目采用的系統(tǒng)配置為ubuntu 16.04+ROS Kinetic,采用的是工控機(jī)(大家也可以使用樹(shù)莓派,這部分的安裝參考博客
    發(fā)表于 01-20 07:52

    如何安裝ROS

    如何安裝ROS?
    發(fā)表于 03-02 09:30

    在FirePrime開(kāi)發(fā)板上編譯安裝ROS jade

      先簡(jiǎn)單介紹一下ROS吧。參考ROS百度百科,ROS即機(jī)器人操作系統(tǒng),但并不是一個(gè)真正的操作系統(tǒng)
    發(fā)表于 07-07 11:21

    搭建ARM+ROS的硬件載體之ROS的移植及測(cè)試方法

    arm64架構(gòu))  如下所示?! ∠螺d命令如下所示,《tags》填入上圖的字符串?! ?. 下載ROS鏡像  根據(jù)項(xiàng)目需求選擇合適的ROS鏡像,本例以kinetic-ros-core為
    發(fā)表于 03-09 13:55

    ROS教程之ROS機(jī)器人操作系統(tǒng)基礎(chǔ)知識(shí)概述資料免費(fèi)下載

    ROS文件系統(tǒng)介紹 (1)快速了解ROS文件系統(tǒng)概念 ? 軟件包集(Stack):如果你將幾個(gè)具有某些功能的軟件包組織在一起,那么你將會(huì)
    發(fā)表于 10-15 08:00 ?20次下載
    <b class='flag-5'>ROS</b>教程之<b class='flag-5'>ROS</b>機(jī)器人操作<b class='flag-5'>系統(tǒng)</b>基礎(chǔ)知識(shí)概述資料免費(fèi)下載

    ROS學(xué)習(xí)筆記之ROS基本概念

    ROS概念分為三個(gè)層次:文件系統(tǒng)層、計(jì)算圖層、社區(qū)層,這些層次以及概念將會(huì)在接下來(lái)的章節(jié)介紹。 除了這三個(gè)層次的概念,
    的頭像 發(fā)表于 05-19 17:11 ?2560次閱讀
    <b class='flag-5'>ROS</b>學(xué)習(xí)筆記之<b class='flag-5'>ROS</b><b class='flag-5'>基本概念</b>

    ROS1的通信架構(gòu)的基礎(chǔ)通信方式及相關(guān)概念

    ROS的通信架構(gòu)ROS的靈魂所在,它包括數(shù)據(jù)處理,進(jìn)程運(yùn)行,消息傳遞等** 。這篇文章主要介紹ROS1的通信架構(gòu)的基礎(chǔ)通信方式和相關(guān)
    的頭像 發(fā)表于 05-19 17:23 ?4857次閱讀
    <b class='flag-5'>ROS</b>1的通信<b class='flag-5'>架構(gòu)</b>的基礎(chǔ)通信方式及相關(guān)<b class='flag-5'>概念</b>

    實(shí)現(xiàn)ARM+ROS(機(jī)器人操作系統(tǒng))之運(yùn)行ROS!

    如何低成本搭建ARM+ROS的硬件載體?上文展示ROS部署前的籌備工作及步驟分解,本文將為大家演示ROS的移植及測(cè)試方法。
    的頭像 發(fā)表于 10-10 18:15 ?1924次閱讀
    實(shí)現(xiàn)ARM+<b class='flag-5'>ROS</b>(機(jī)器人操作<b class='flag-5'>系統(tǒng)</b>)之運(yùn)行<b class='flag-5'>ROS</b>!

    ros基本概念是什么

    基本概念ROS是一個(gè)用于在不同進(jìn)程間匿名的發(fā)布、訂閱、傳遞信息的中間件。 ROS2系統(tǒng)的核心部分是ROS網(wǎng)絡(luò)(
    的頭像 發(fā)表于 11-27 11:21 ?2647次閱讀

    ROS2中自帶例程測(cè)試

    如果你是一個(gè)ROS2的開(kāi)發(fā)者,可能對(duì)剛才我們使用的ROS2命令比較熟悉,這時(shí)你可能也會(huì)產(chǎn)生一個(gè)問(wèn)題:我們之前也安裝ROS2系統(tǒng),那
    的頭像 發(fā)表于 11-28 16:29 ?1881次閱讀
    <b class='flag-5'>ROS</b>2中自帶例程<b class='flag-5'>測(cè)試</b>

    在TogetherROS中如何安裝ROS2功能包

    ,這里我們就把ROS2必要的功能包都安裝一下,讓系統(tǒng)的功能模塊更加完整。 熟悉ROS2的同學(xué),應(yīng)該對(duì)這些指令并不陌生,和ROS2官方手冊(cè)中的
    的頭像 發(fā)表于 12-01 16:02 ?2395次閱讀
    在TogetherROS中如何<b class='flag-5'>安裝</b><b class='flag-5'>ROS</b>2功能包