ROS學習(二)簡單ROS系統(tǒng)的建立

1. ROS系統(tǒng)的基本結(jié)構(gòu)

ROS 系統(tǒng)簡單的說是一個多進程管理系統(tǒng)缘屹,其中結(jié)點Node是最小的功能執(zhí)行單元揍堕,它可以是一個main函數(shù)缠沈,當一個node被啟動時,其相應(yīng)的功能便被執(zhí)行桐经。Package是ROS里最小的編譯單元吃衅,其包含多個node以及相關(guān)結(jié)構(gòu)性文件佃迄。當需要執(zhí)行某個node時派桩,需要表明此node所在package。Workspace是ROS最小的環(huán)境配置單元蚌斩,package需要放置在workspace才能被編譯铆惑。


2. 構(gòu)建簡單ROS系統(tǒng)

了解ROS系統(tǒng)的基本結(jié)構(gòu)后,我們來自己構(gòu)建一個簡單的ROS系統(tǒng)送膳。

首先我們新建文件夾HalloRos作為我們的workspace员魏,在此文件夾下再新建次級文件夾src,在terminal中cd到src文件下執(zhí)行以下命令:

catkin_init_workspace

用來初始化workspace叠聋,可以看到在此src下自動生成一個CMakeLists.txt文件(不用編輯)用來生成此workspace的相關(guān)信息撕阎。然后cd回到HalloRos文件夾下,執(zhí)行:

catkin_make

用來真正生成此工作空間碌补,同時build和devel文件夾自動生成(不用編輯)虏束。此時我們需要執(zhí)行命令:

echo 'source ~/HalloRos/devel/setup.bash' >> ~/.bashrc

向Linux系統(tǒng)也就是我們的工作環(huán)境報備我們生成了一個ROS系統(tǒng),以便使系統(tǒng)知道此ROS系統(tǒng)及其命令的存在厦章。此刻workspace成功創(chuàng)建镇匀,接下來我們需要cd到src文件夾下,然后創(chuàng)建我們自己的包package袜啃,命令如下:

catkin_create_pkg printHelloRosPK std_msgs rospy roscpp

第一個參數(shù)printHelloRosPK是包名汗侵,后面的參數(shù)是依賴庫,例如如果需要使用c++群发,則需要依賴庫roscpp晰韵。至此,包printHelloRosPK建立成功熟妓,在此包下自動生成include雪猪、src文件夾以及CMakelists、package.xml文件滑蚯。在此workspace下可以用相同的命令建立多個包浪蹂。

3. 節(jié)點建立

在包printHelloRosPK下我們可以建立多個結(jié)點node抵栈。cd到printHelloRosPK下的src文件夾,新建一個printHelloRosPK.cpp文件作為我們的第一個節(jié)點node坤次。

#include <ros/ros.h>

int main(int argc, char **argv)

{

? ? ros::init(argc,argv,"printHelloRosPK");//初始化ros系統(tǒng),注意這里的printHelloRosPK是節(jié)點的名稱

? ? ros::NodeHandle n;//創(chuàng)建一個ros節(jié)點

? ? ROS_INFO("Hello ROS");//打印信息

? ? ros::spinOnce();//消息回調(diào)處理函數(shù)古劲,也就是系統(tǒng)等在這里,直到有回調(diào)消息進入

}

然后我們在包printHelloRosPK下的CMakeLists.txt文件里添加:

add_executable(printHelloRosPK src/printHelloRosPK.cpp)

target_link_libraries(printHelloRosPK ${catkin_LIBRARIES})

告訴系統(tǒng)此node的存在缰猴。然后回到工作空間HalloRos文件夾下产艾,再次編譯:

catkin_make

則擁有節(jié)點printHelloRosPK的ROS系統(tǒng)建立成功。

在一個新terminal中輸入:

roscore

再在另一個terminal中輸入:

rosrun printHelloRosPK printHelloRosPK

(其中第一個參數(shù)是包名滑绒,第二個參數(shù)是節(jié)點名)闷堡,節(jié)點功能便被執(zhí)行,輸出:


至此疑故,一個簡單的ROS系統(tǒng)建立成功杠览,下一篇將介紹ROS系統(tǒng)節(jié)點間通信機制。如有問題歡迎討論纵势。

參考文檔:ROS系統(tǒng)學習2---ROS最小系統(tǒng)的制作_python_weixinhum-CSDN博客

下一篇:ROS學習(三)節(jié)點通信機制 - 簡書

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末踱阿,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子钦铁,更是在濱河造成了極大的恐慌软舌,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件牛曹,死亡現(xiàn)場離奇詭異佛点,居然都是意外死亡,警方通過查閱死者的電腦和手機黎比,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進店門超营,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人焰手,你說我怎么就攤上這事糟描。” “怎么了书妻?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵船响,是天一觀的道長。 經(jīng)常有香客問我躲履,道長见间,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任工猜,我火速辦了婚禮米诉,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘篷帅。我一直安慰自己史侣,他們只是感情好拴泌,可當我...
    茶點故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著惊橱,像睡著了一般蚪腐。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上税朴,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天回季,我揣著相機與錄音,去河邊找鬼正林。 笑死泡一,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的觅廓。 我是一名探鬼主播鼻忠,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼杈绸!你這毒婦竟也來了粥烁?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤蝇棉,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后芥永,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體篡殷,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年埋涧,在試婚紗的時候發(fā)現(xiàn)自己被綠了板辽。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡棘催,死狀恐怖劲弦,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情醇坝,我是刑警寧澤邑跪,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站呼猪,受9級特大地震影響画畅,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜宋距,卻給世界環(huán)境...
    茶點故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一轴踱、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧谚赎,春花似錦淫僻、人聲如沸诱篷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽棕所。三九已至,卻和暖如春细办,著一層夾襖步出監(jiān)牢的瞬間橙凳,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工笑撞, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留岛啸,地道東北人。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓茴肥,卻偏偏與公主長得像坚踩,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子瓤狐,可洞房花燭夜當晚...
    茶點故事閱讀 42,834評論 2 345