Ros基礎(chǔ)

  1. 學(xué)習(xí)資料推薦
    ROS官方教程(中文版):http://wiki.ros.org/cn/ROS/Tutorials
    ROS學(xué)習(xí)筆記系列:https://blog.csdn.net/mountzf/article/details/51931806
    ROS學(xué)習(xí)之路的整理:https://blog.csdn.net/zhanshen112/article/details/82792467
    古月居:http://www.guyuehome.com/
    本篇的內(nèi)容也參考了以上學(xué)習(xí)資料献丑。

  2. ROS的安裝
    ROS不能再詳細(xì)的安裝教程16.04+kinetic:http://www.cnblogs.com/liu-fa/p/5779206.htmlu
    安裝過(guò)程中若是報(bào)錯(cuò)的話(huà)彤恶,建議用以下指令:

  sudo apt update
  sudo apt full-update

重新更新一遍系統(tǒng)后边坤,再按照教程中的過(guò)程進(jìn)行ROS的安裝。

  1. 基本概念
    3.1 ROS
    ROS(Robot Operating System)是一個(gè)適用于機(jī)器人的開(kāi)源的元操作系統(tǒng)。它提供了操作系統(tǒng)應(yīng)有的服務(wù)界阁,包括硬件抽象儡率,底層設(shè)備控制挂据,常用函數(shù)的實(shí)現(xiàn),進(jìn)程間消息傳遞儿普,以及包管理崎逃。它也提供用于獲取、編譯眉孩、編寫(xiě)个绍、和跨計(jì)算機(jī)運(yùn)行代碼所需的工具和庫(kù)函數(shù)。主要可以從以下四個(gè)方面去理解:

1.通道:ROS提供了一種發(fā)布-訂閱式的通信框架用以簡(jiǎn)單浪汪、快速地構(gòu)建分布式計(jì)算系巴柿。

2.工具:ROS提供了大量的工具組合用以配置、啟動(dòng)死遭、自檢广恢、調(diào)試、可視化呀潭、登錄钉迷、測(cè)試、終止分布式計(jì)算系統(tǒng)钠署。

3.強(qiáng)大的庫(kù):ROS提供了廣泛的庫(kù)文件實(shí)現(xiàn)以機(jī)動(dòng)性篷牌、操作控制、感知為主的機(jī)器人功能踏幻。

4.生態(tài)系統(tǒng):ROS的支持與發(fā)展依托著一個(gè)強(qiáng)大的社區(qū)枷颊。ros.org尤其關(guān)注兼容性和支持文檔,提供了一套“一站式”的方案使得用戶(hù)得以搜索并學(xué)習(xí)來(lái)自全球開(kāi)發(fā)者數(shù)以千計(jì)的ROS程序包。

簡(jiǎn)單來(lái)說(shuō)夭苗,ROS提供了一些開(kāi)源的可調(diào)用的功能庫(kù)和通信手段供我們使用信卡。

3.2 工作空間
工作空間(workspace)是ROS里面最小環(huán)境配置單位,可以把workspace看成是一個(gè)有結(jié)構(gòu)的文件夾题造,它包含多個(gè)package以及一些結(jié)構(gòu)性質(zhì)文件傍菇。一次將一個(gè)workspace配置進(jìn)環(huán)境變量里面,才能使用ROS命令執(zhí)行與這個(gè)workspace里面的package相關(guān)的操作界赔。

3.3 功能包
功能包(package)是ROS應(yīng)用程序代碼的組織單元丢习,每個(gè)軟件包都可以包含程序庫(kù)、可執(zhí)行文件淮悼、腳本或者其它手動(dòng)創(chuàng)建的東西咐低。 創(chuàng)建了相應(yīng)的軟件包才能實(shí)現(xiàn)相應(yīng)的功能。

3.4 清單
清單(Manifest)是對(duì)于功能包相關(guān)信息的描述袜腥,用于定義軟件包相關(guān)元信息之間的依賴(lài)關(guān)系见擦,這些信息包括版本、維護(hù)者和許可協(xié)議等羹令。 也就是 package.xml文件鲤屡。

3.5 腳本文件
CMakeLists.txt是一個(gè)Cmake的腳本文件,Cmake是一個(gè)符合工業(yè)標(biāo)準(zhǔn)的跨平臺(tái)編譯系統(tǒng)福侈。這個(gè)文件包含了一系列的編譯指令酒来,包括應(yīng)該生成哪種可執(zhí)行文件,需要哪些源文件肪凛,以及在哪里可以找到所需的頭文件和鏈接庫(kù)役首。

3.6 節(jié)點(diǎn)
節(jié)點(diǎn)(Node)是 ROS 功能包中的一個(gè)可執(zhí)行文件,節(jié)點(diǎn)之間可以通過(guò) ROS 客戶(hù)端庫(kù)(如roscpp 显拜、 rospy )相互通信。一個(gè)機(jī)器人控制系統(tǒng)由許多節(jié)點(diǎn)組成,這些節(jié)點(diǎn)各司其職,如,一個(gè)節(jié)點(diǎn)控制激光距離傳感器爹袁,一個(gè)節(jié)點(diǎn)控制輪子的馬達(dá)远荠,一個(gè)節(jié)點(diǎn)執(zhí)行定位,一個(gè)節(jié)點(diǎn)執(zhí)行路徑規(guī)劃失息,一個(gè)節(jié)點(diǎn)提供系統(tǒng)的整個(gè)視圖等譬淳。也就是能夠執(zhí)行特定工作任務(wù)的工作單元。

3.7 節(jié)點(diǎn)管理器
節(jié)點(diǎn)管理器(Master)是 ROS 名稱(chēng)服務(wù),能夠幫助節(jié)點(diǎn)找到彼此盹兢。節(jié)點(diǎn)通過(guò)與節(jié)點(diǎn)管理器通信來(lái)報(bào)告他們的注冊(cè)信息邻梆。值得注意的是,當(dāng)這些節(jié)點(diǎn)和節(jié)點(diǎn)管理器通信時(shí),它們可以接受其他注冊(cè)節(jié)點(diǎn)的信息,并能保持通信正常绎秒。當(dāng)這些注冊(cè)信息改變時(shí)浦妄,節(jié)點(diǎn)管理器也會(huì)回調(diào)這些節(jié)點(diǎn)。所以,沒(méi)有節(jié)點(diǎn)管理器剂娄,節(jié)點(diǎn)將不能相互找到,也不能進(jìn)行消息交換或者調(diào)用服務(wù)蠢涝。

3.8 參數(shù)管理器
參數(shù)管理器( Parameter Server )是節(jié)點(diǎn)管理器的一部分,是一個(gè)可通過(guò)網(wǎng)絡(luò)訪(fǎng)問(wèn)的共享的多變量字典阅懦。節(jié)點(diǎn)使用此服務(wù)器來(lái)存儲(chǔ)和檢索運(yùn)行時(shí)參數(shù)和二。

3.9 消息
消息(Message)是一種ROS數(shù)據(jù)類(lèi)型。一個(gè)節(jié)點(diǎn)向特定主題發(fā)布消息耳胎,從而將數(shù)據(jù)發(fā)送到另一個(gè)節(jié)點(diǎn)惯吕。消息具有一定的類(lèi)型和數(shù)據(jù)結(jié)構(gòu),包括ROS提供的標(biāo)準(zhǔn)類(lèi)型和用戶(hù)自定義類(lèi)型怕午。消息與話(huà)題(發(fā)布 / 訂閱模式)是緊密聯(lián)系在一起的废登,msg文件實(shí)質(zhì)上就是一個(gè)從結(jié)構(gòu)上描述ROS中所使用消息類(lèi)型的簡(jiǎn)單文本,描述的是消息的數(shù)據(jù)類(lèi)型诗轻。

3.10 話(huà)題
話(huà)題( Topic )是節(jié)點(diǎn)間用來(lái)傳輸數(shù)據(jù)的總線(xiàn)钳宪,通過(guò)主題進(jìn)行消息路由不需要節(jié)點(diǎn)之間直接連接。節(jié)點(diǎn)可以發(fā)布消息到話(huà)題扳炬,也可以訂閱話(huà)題以接收消息吏颖。一個(gè)話(huà)題可能對(duì)應(yīng)有許多節(jié)點(diǎn)作為話(huà)題發(fā)布者和話(huà)題訂閱者。當(dāng)然,一個(gè)節(jié)點(diǎn)可以發(fā)布和訂閱許多話(huà)題恨樟。一個(gè)節(jié)點(diǎn)對(duì)某一類(lèi)型的數(shù)據(jù)感興趣,它只需訂閱相關(guān)話(huà)題即可半醉。一般來(lái)說(shuō)。話(huà)題發(fā)布者和話(huà)題訂閱者不知道對(duì)方的存在劝术。發(fā)布者將信息發(fā)布在一個(gè)全局的工作區(qū)內(nèi)缩多,當(dāng)訂閱者發(fā)現(xiàn)該信息是它所訂閱的,就可以接收到這個(gè)信息养晋。

3.11 服務(wù)
當(dāng)需要直接與節(jié)點(diǎn)通信并獲得應(yīng)答時(shí)衬吆,將無(wú)法通過(guò)話(huà)題來(lái)實(shí)現(xiàn),而需要服務(wù)(Service)绳泉。我們可以看出逊抡,發(fā)布 / 訂閱模式是一種多對(duì)多的傳輸方式,顯然這種傳輸方式不適用于請(qǐng)求 / 回復(fù)的交互方式零酪。請(qǐng)求 / 回復(fù)交互方式經(jīng)常被用于分布式系統(tǒng)中冒嫡。請(qǐng)求服務(wù)通過(guò) Service 來(lái)進(jìn)行,Service 被定義為一對(duì)消息結(jié)構(gòu):一個(gè)用于請(qǐng)求四苇,一個(gè)用于回復(fù)孝凌。一個(gè)客戶(hù)通過(guò)發(fā)送請(qǐng)求信息并等待響應(yīng)來(lái)使用服務(wù)( ROS中的請(qǐng)求 / 回復(fù)交互方式類(lèi)似于一個(gè)遠(yuǎn)程函數(shù)調(diào)用,srv文件類(lèi)似于函數(shù)參數(shù)和返回值的定義)月腋。

3.12 消息記錄包
消息記錄包(Bag)是一種用于保存和回放 ROS 消息數(shù)據(jù)的格式蟀架。消息記錄包是檢索傳感器數(shù)據(jù)的重要機(jī)制,這些數(shù)據(jù)雖然很難收集,但是對(duì)于發(fā)展和測(cè)試算法很有必要瓣赂。

  1. 常用命令
    4.1 ROS Shell命令
    命令 功能
    roscd 移動(dòng)到指定的ROS軟件包目錄
    rosls 顯示ROS軟件包的文件與目錄
    rosed 編輯ROS軟件包的文件
    roscp 復(fù)制ROS軟件包的文件
    rospd 添加目錄至ROS目錄索引
    rosd 顯示ROS目錄索引中的目錄
    roscd [功能包名稱(chēng)] 。使用它辜窑,無(wú)需再使用cd一層層到查找钩述,進(jìn)入功能包里。
    rosls [功能包名稱(chēng)] 穆碎。等價(jià)與roscd+ls牙勘。查看ROS功能包的文件列表更方便,快捷所禀。
    rosed[功能包名稱(chēng)][文件名稱(chēng)]方面。 用于編輯功能包中的特定文件,優(yōu)點(diǎn)也是快捷色徘,修改容易恭金。
    4.2 ROS執(zhí)行命令
    命令 功能
    roscore 開(kāi)啟Master(ROS名稱(chēng)服務(wù))
    rosrun 運(yùn)行單個(gè)節(jié)點(diǎn)
    roslaunch 運(yùn)行多個(gè)節(jié)點(diǎn)及設(shè)置運(yùn)行選項(xiàng)
    rosclean 檢查或刪除ROS日志文件
    roscore [選項(xiàng)]。運(yùn)行主節(jié)點(diǎn)褂策,主節(jié)點(diǎn)管理節(jié)點(diǎn)之間的消息通信中的連接信息横腿。關(guān)于主節(jié)點(diǎn)的具體作用就不累述了。
    rosrun [功能包名稱(chēng)] [節(jié)點(diǎn)名稱(chēng)]斤寂。執(zhí)行指定的功能包中的一個(gè)節(jié)點(diǎn)的命令(rosrun rqt_graph rqt_graph 可查看當(dāng)前系統(tǒng)的運(yùn)行情況)耿焊。
    roslaunch [功能包名稱(chēng)] [launch文件名]。 類(lèi)似dat批命令遍搞,是運(yùn)行指定功能包中一個(gè)或設(shè)置執(zhí)行選項(xiàng)的命令罗侯。
    rosclean [選項(xiàng)]。運(yùn)行roscore時(shí)溪猿,對(duì)所有節(jié)點(diǎn)的記錄都會(huì)寫(xiě)入日志文件钩杰,隨著時(shí)間的推移,需要定期使用rosclean命令刪除這些記錄.
    4.3 ROS信息命令
    命令 功能
    rostopic 查看ROS話(huà)題信息
    rosservice 查看ROS服務(wù)信息
    rosnode 查看ROS節(jié)點(diǎn)信息
    rosparam 確認(rèn)和修改ROS參數(shù)信息
    rosbag 記錄和回放ROS消息
    rosmsg 顯示ROS消息類(lèi)型
    rossrv 顯示ROS服務(wù)類(lèi)型
    rosversion 顯示ROS功能包的版本信息
    roswtf 檢查ROS系統(tǒng)
    rostopic [選項(xiàng)]
    list - 列出活動(dòng)話(huà)題
    echo [話(huà)題名稱(chēng)] - 實(shí)時(shí)顯示指定話(huà)題的消息內(nèi)容
    find [類(lèi)型名稱(chēng)] - 顯示使用指定類(lèi)型的消息的話(huà)題
    type [話(huà)題名稱(chēng)] - 顯示指定話(huà)題的消息類(lèi)型
    bw [話(huà)題名稱(chēng)] - 顯示指定話(huà)題的消息類(lèi)型
    hz [話(huà)題名稱(chēng)] - 顯示指定話(huà)題的消息數(shù)據(jù)發(fā)布周期
    info [話(huà)題名稱(chēng)] - 顯示指定話(huà)題的消息
    pub [話(huà)題名稱(chēng)] [消息類(lèi)型] [參數(shù)] - 用指定的話(huà)題名稱(chēng)發(fā)布消息诊县,許多時(shí)候另開(kāi)一個(gè)終端操作 例:rostopic pub -1 /turtle1/cmd_vel geometry_msgs/Twist – ‘[2.0, 0.0, 0.0]”[0.0, 0.0, 0.0]’
    rosservice [選項(xiàng)]
    list - 顯示活動(dòng)的服務(wù)信息
    info [服務(wù)名稱(chēng)] - 顯示指定服務(wù)的信息
    type [服務(wù)名稱(chēng)] - 顯示服務(wù)類(lèi)型
    find [服務(wù)類(lèi)型] - 查找指定服務(wù)類(lèi)型的服務(wù)
    uri [服務(wù)名稱(chēng)] - 顯示ROSRPC URI服務(wù)
    args [服務(wù)名稱(chēng)] - 顯示服務(wù)參數(shù)
    call [服務(wù)名稱(chēng)] [參數(shù)] - 用輸入的參數(shù)請(qǐng)求服務(wù)讲弄,通常用于測(cè)試服務(wù)
    rosnode [選項(xiàng)]
    list - 查看活動(dòng)的節(jié)點(diǎn)列表
    ping [節(jié)點(diǎn)名稱(chēng)] - 與指定的節(jié)點(diǎn)進(jìn)行連接測(cè)試
    info [節(jié)點(diǎn)名稱(chēng)] - 查看指定節(jié)點(diǎn)的信息
    machine [PC名稱(chēng)或IP] - 查看該P(yáng)C中運(yùn)行的節(jié)點(diǎn)列表
    kill [節(jié)點(diǎn)名稱(chēng)] - 停止指定節(jié)點(diǎn)的運(yùn)行
    cleanup - 刪除失連節(jié)點(diǎn)的注冊(cè)信息
    rosparam [參數(shù)]
    list - 查看參數(shù)列表
    get [參數(shù)名稱(chēng)] - 獲取參數(shù)值
    set [參數(shù)名稱(chēng)] - 設(shè)置參數(shù)值
    dump [文件名稱(chēng)] - 將參數(shù)保存到指定文件
    load [文件名稱(chēng)] - 獲取保存在指定文件中的參數(shù),經(jīng)常使用依痊。
    delete [參數(shù)名稱(chēng)] - 刪除參數(shù)
    rosmsg [參數(shù)]
    list - 顯示所有消息
    show [消息名稱(chēng)] - 顯示指定消息
    md5 [消息名稱(chēng)] - 顯示md5sum
    package [功能包名稱(chēng)] - 顯示用于指定功能包的所有消息
    packages - 顯示使用消息的所有功能包
    rossrv [參數(shù)]
    list -顯示所以服務(wù)
    show [服務(wù)名稱(chēng)] - 顯示指定的服務(wù)信息
    md5 [服務(wù)名稱(chēng)] - 顯示md5sum
    package [功能包名稱(chēng)] - 顯示指定的功能包中用到的所有服務(wù)
    packages - 顯示使用服務(wù)的所有功能包
    rosbag [參數(shù)]
    record [選項(xiàng)] [話(huà)題名稱(chēng)] - 將指定話(huà)題的消息記錄到bag文件
    info [文件名稱(chēng)] - 查看bag文件的信息
    play [文件名稱(chēng)] - 回放指定的bag文件避除,這個(gè)使用玩的也多。
    compress [文件名稱(chēng)] - 壓縮指定的bag文件
    decompress [文件名稱(chēng)] - 解壓指定的bag文件
    filter [輸入文件] [輸出文件] [選項(xiàng)] - 生成一個(gè)刪除了指定內(nèi)容的新的bag文件
    reindex bag [文件名稱(chēng)] - 刷新索引
    check bag [文件名稱(chēng)] - 檢查指定的bag文件是否能在當(dāng)前系統(tǒng)中回放
    fix [輸入文件] [輸出文件] [選項(xiàng)] - 將由于版本不同而無(wú)法回放的bag文件修改可以回放的文件
    4.4 ROS catkin命令
    catkin_create_pkg - 自動(dòng)生成功能包(示例命令:catkin_create_pkg [功能包名稱(chēng)] [依賴(lài)性功能包1] [依賴(lài)性功能包2]….)抗悍。
    catkin_make - 基于catkin構(gòu)建系統(tǒng)的構(gòu)建 (示例:catkin_make –pkg [包名] 只構(gòu)建一部分功能包)。
    catkin_eclipse - 對(duì)于用catkin構(gòu)建系統(tǒng)生成的功能包進(jìn)行修改钳枕,使其能在Eclipse環(huán)境中使用缴渊。
    catkin_prepare_release - 在發(fā)布時(shí)用到的日志整理和版本標(biāo)記。
    catkin_generate_changelog - 在發(fā)布時(shí)生成或更新CHANGLOG.rst文件鱼炒。
    catkin_init_workspace - 初始化catkin構(gòu)建系統(tǒng)的工作目錄衔沼。
    catkin_find - 搜素catkin,找到并顯示工作空間。
    4.5 ROS功能包命令
    rospack [選項(xiàng)] [功能包名稱(chēng)] - 查看與ROS功能包相關(guān)的信息(可以使用find, list, depend-on, depends和profile等選項(xiàng))指蚁。
    rosinstall - 安裝ROS附加功能包菩佑。
    rosdep [選項(xiàng)] - 安裝該功能包的依賴(lài)性文件(check, install, init, update)。
    roslocate [選項(xiàng)] [功能包名稱(chēng)] - ROS功能包信息相關(guān)命令(可用的選項(xiàng)是info, vcs, type, uri和repo等)凝化。
  2. 基本操作
    5.1 創(chuàng)建ROS工作空間
    mkdir -p ~/catkin_ws/src
    cd ~/catkin_ws/
    catkin_make

其中catkin_ws是自定義的工作空間名稍坯,也就是文件夾名。

5.2 將工作空間配置進(jìn)環(huán)境變量
可通過(guò)以下的命令來(lái)配置:

  source devel/setup.bash

也可直接在.bashrc里寫(xiě)入:

source ~/catkin_ws/devel/setup.bash

5.3 創(chuàng)建一個(gè)功能包
首先切換到工作空間的src目錄下:

  cd ~/catkin_ws/src

再使用catkin_create_pkg命令來(lái)創(chuàng)建功能包:

  catkin_create_pkg beginner_tutorials std_msgs rospy roscpp

其中搓劫,beginner_tutorials是創(chuàng)建的功能包名瞧哟,后面是該功能包依賴(lài)的三個(gè)功能包。運(yùn)行完后可以看出在beginner_tutorials目錄下創(chuàng)建了package.xml和CMakeLists.txt兩個(gè)文件枪向。

5.4 配置package.xml文件
接下來(lái)對(duì)package.xml文件進(jìn)行配置勤揩。package.xml文件主要由4個(gè)標(biāo)簽組成,分別為描述標(biāo)簽秘蛔、維護(hù)者標(biāo)簽陨亡、許可證標(biāo)簽、依賴(lài)項(xiàng)標(biāo)簽深员。

<?xml version="1.0"?>
<package format="2">
  <name>beginner_tutorials</name>
  <version>0.1.0</version>
  <description>The beginner_tutorials package</description>

  <maintainer email="you@yourdomain.tld">Your Name</maintainer>
  <license>BSD</license>
  <url type="website">http://wiki.ros.org/beginner_tutorials</url>
  <author email="you@yourdomain.tld">Jane Doe</author>

  <buildtool_depend>catkin</buildtool_depend>

  <build_depend>roscpp</build_depend>
  <build_depend>rospy</build_depend>
  <build_depend>std_msgs</build_depend>

  <exec_depend>roscpp</exec_depend>
  <exec_depend>rospy</exec_depend>
  <exec_depend>std_msgs</exec_depend>

</package>

5.5 編寫(xiě)ROS程序
在 ~/工作空間/src/功能包名 目錄下负蠕,創(chuàng)建并編輯cpp程序文件(以hello.cpp為例)。運(yùn)行如下命令:

  cd ~/catkin_ws/src/beginner_tutorials
  touch hello.cpp
  gedit hello.cpp

hello.cpp代碼如下:

#include <ros/ros.h>

int main ( int argc , char ** argv)
{
  ros::init ( argc , argv , "hello");
  ros::NodeHandle nh;
  ROS_INFO_STREAM( "Hello , ROS! ");
}

5.6 編譯ROS程序
5.6.1 聲明依賴(lài)庫(kù)
首先辨液,我們需要聲明程序所依賴(lài)的其他功能包虐急。對(duì)于C++程序而言,此步驟是必要的滔迈,以確保catkin能夠向C++編譯器提供合適的標(biāo)記來(lái)定位編譯功能包所需的頭文件和鏈接庫(kù)止吁。
為了給出依賴(lài)庫(kù),我們需要編輯CMakeLists.txt文件燎悍。即修改find_package如下:

find_package(catkin REQUIRED COMPONENTS
 依次寫(xiě)上所依賴(lài)的功能包
  roscpp
)

同樣敬惦,我們也需要在package.xml文件中列出依賴(lài)庫(kù),由于hello程序在編譯時(shí)和運(yùn)行時(shí)都需要roscpp庫(kù)谈山,故將roscpp添加至build_depend(編譯依賴(lài))和exec_depend(運(yùn)行依賴(lài))俄删。如下:

<buildtool_depend>catkin</buildtool_depend>
<build_depend>roscpp</build_depend>
<build_export_depend>roscpp</build_export_depend>
<exec_depend>roscpp</exec_depend>

5.6.2 聲明可執(zhí)行文件
接下來(lái),我們需要在CMakeLists.txt中添加兩行奏路,來(lái)聲明我們需要?jiǎng)?chuàng)建的可執(zhí)行文件畴椰。
第一行:

add_executable(hello hello.cpp)

其中,hello是我們想要生成的可執(zhí)行文件的文件名鸽粉,hello.cpp是生成此可執(zhí)行文件所需的源文件列表斜脂。如果有多個(gè)源文件,把它們列在此處触机,并用空格將其區(qū)分開(kāi)帚戳。
第二行:

target_link_libraries(hello ${catkin_LIBRARIES})

該行告訴Cmake當(dāng)鏈接此可執(zhí)行文件時(shí)需要鏈接哪些庫(kù)(在上面的find_package中已經(jīng)定義了)玷或。

5.6.3 編譯工作區(qū)
首先返回工作空間目錄,然后使用catkin_make命令進(jìn)行編譯:

  cd ~/catkin_ws
  catkin_make

完成編譯后片任,將會(huì)在工作區(qū)中創(chuàng)建devel(開(kāi)發(fā)空間偏友,用來(lái)放置編譯生成的可執(zhí)行文件)和build(編譯空間,用來(lái)儲(chǔ)存工作空間編譯過(guò)程中產(chǎn)生的緩存信息和中間文件)兩個(gè)子目錄对供。

5.7 運(yùn)行ROS程序
hello 程序是一個(gè)節(jié)點(diǎn)(Node)位他,需要節(jié)點(diǎn)管理器才可以正常運(yùn)行,啟動(dòng)節(jié)點(diǎn)管理器后犁钟,用rosrun命令運(yùn)行程序:

  roscore
  rosrun beginner_tutorials hello

至此棱诱,完成了創(chuàng)建工作空間、功能包涝动、編寫(xiě)迈勋、編譯、運(yùn)行簡(jiǎn)單的ROS程序醋粟。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末靡菇,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子米愿,更是在濱河造成了極大的恐慌厦凤,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件育苟,死亡現(xiàn)場(chǎng)離奇詭異较鼓,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)违柏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門(mén)博烂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人漱竖,你說(shuō)我怎么就攤上這事禽篱。” “怎么了馍惹?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵躺率,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我万矾,道長(zhǎng)悼吱,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任良狈,我火速辦了婚禮后添,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘们颜。我一直安慰自己吕朵,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布窥突。 她就那樣靜靜地躺著努溃,像睡著了一般。 火紅的嫁衣襯著肌膚如雪阻问。 梳的紋絲不亂的頭發(fā)上梧税,一...
    開(kāi)封第一講書(shū)人閱讀 49,749評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音称近,去河邊找鬼第队。 笑死,一個(gè)胖子當(dāng)著我的面吹牛刨秆,可吹牛的內(nèi)容都是我干的凳谦。 我是一名探鬼主播,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼衡未,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼尸执!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起缓醋,我...
    開(kāi)封第一講書(shū)人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤如失,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后送粱,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體褪贵,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年抗俄,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了脆丁。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡橄镜,死狀恐怖偎快,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情洽胶,我是刑警寧澤晒夹,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站姊氓,受9級(jí)特大地震影響丐怯,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜翔横,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一读跷、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧禾唁,春花似錦效览、人聲如沸无切。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)哆键。三九已至,卻和暖如春瘦锹,著一層夾襖步出監(jiān)牢的瞬間籍嘹,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工弯院, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留辱士,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓听绳,卻偏偏與公主長(zhǎng)得像颂碘,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子椅挣,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 1. ROS 開(kāi)發(fā)環(huán)境 1.1 安裝 ROS Installation: http://wiki.ros.org/...
    _49_閱讀 589評(píng)論 0 0
  • 需要一個(gè)人有強(qiáng)大的上進(jìn)心凭涂、克制力、自律贴妻∏杏停克制自己的欲望,希望自己能做到"精進(jìn)"名惩。 話(huà)題編程 創(chuàng)建發(fā)布者 創(chuàng)建訂閱者...
    徐凱_xp閱讀 1,243評(píng)論 0 1
  • 工作空間 典型的目錄空間:1.代碼空間src澎胡;2.編譯空間build;3.開(kāi)發(fā)空間devel娩鹉;4.安裝空間inst...
    Hz_5c60閱讀 182評(píng)論 0 0
  • 在寒假開(kāi)始之前攻谁,我們已經(jīng)下載了ROS系統(tǒng),并且了解了一部分ROS的工作機(jī)制和基礎(chǔ)框架弯予,現(xiàn)在我們從問(wèn)題出發(fā)戚宦,重新開(kāi)始...
    暗夜比鄰星_f19b閱讀 1,177評(píng)論 0 0
  • 1. ROS 包/package ros的包(package)指的是一個(gè)完整的程序功能模塊,一個(gè)package可以...
    北方的花姑娘閱讀 512評(píng)論 0 0