一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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)學(xué)習(xí)筆記2

jf_78858299 ? 來(lái)源:機(jī)器人網(wǎng) ? 作者:機(jī)器人網(wǎng) ? 2023-05-19 17:21 ? 次閱讀

package 軟件包

package是catkin編譯的最小單元,我們調(diào)用catkin_make編譯的對(duì)象就是一個(gè)個(gè)package,所以package也是ROS源碼存放的地方。

一個(gè)package常見(jiàn)的結(jié)構(gòu)有:

├── CMakeLists.txt #package的編譯規(guī)則(必須)
├── package.xml #package的描述信息(必須)
├── src/ #源代碼文件
├── include/ #C++頭文件
├── scripts/ #可執(zhí)行腳本
├── msg/ #自定義消息
├── srv/ #自定義服務(wù)
├── models/ #3D模型文件
├── urdf/ #urdf文件
├── launch/ #launch文件

通常ROS文件組織都是按照以上的形式,這是約定俗成的命名習(xí)慣,建議遵守。以上路徑 只有 CMakeLists.txt 和 package.xml 是必須的,其余路徑根據(jù)軟件包是否需要來(lái)決定 。

package創(chuàng)建

創(chuàng)建package需要工作空間的src目錄下,使用catkin_create_pkg package depends

其中package 是包名,depends是依賴(lài)的包名(如roscpp、rospy、std_msgs)執(zhí)行命令后會(huì)自動(dòng)完成軟件包的初始化,并將依賴(lài)包按格式寫(xiě)入CMakeList.txt、package.xml.

gaocancan@ubuntu:~/catkin_test/src$ catkin_create_pkg catkin_test_pkg roscpp rospy std_msg
Created file catkin_test_pkg/CMakeLists.txt
Created file catkin_test_pkg/package.xml
Created folder catkin_test_pkg/include/catkin_test_pkg
Created folder catkin_test_pkg/src
Successfully created files in /home/gaocancan/catkin_test/src/catkin_test_pkg. Please adjust the values in package.xml.
gaocancan@ubuntu:~/catkin_test/src$ tree
.
├── catkin_test_pkg
│   ├── CMakeLists.txt
│   ├── include
│   │   └── catkin_test_pkg
│   ├── package.xml
│   └── src
└── CMakeLists.txt -> /opt/ros/kinetic/share/catkin/cmake/toplevel.cmake

4 directories, 3 files
gaocancan@ubuntu:~/catkin_test/src$

常用ros 命令:

如果不指定 [package]默認(rèn)為當(dāng)前目錄

rospack list #列出本機(jī)所有package

rospack find [package] #定位某個(gè)package

rospack profile [package] #刷新所有package位置記錄

rospack depends [package] #顯示package依賴(lài)包

roscd [package] #打開(kāi)package

rosls [package] #相當(dāng)于ls

rosdep check [package] #檢查package依賴(lài)是否滿(mǎn)足

rosdep install [package] #安裝package的依賴(lài)

rosdep db #生成和顯示依賴(lài)數(shù)據(jù)庫(kù)

rosdep init #初始化/etc/ros/rosdep中的源

rosdep keys 檢查package的依賴(lài)是否滿(mǎn)足

rosdep update 更新本地的rosdep數(shù)據(jù)庫(kù)

  • cmakelists.txt、package.xml文件介紹

    CMakeList.txt指定源碼到目標(biāo)文件的規(guī)則,該文件規(guī)定了package要依賴(lài)的包,編譯目標(biāo)文件、編譯流程等。

    cmakelists.txt寫(xiě)法:

cmake_minimum_required() #CMake的版本號(hào)
project() #項(xiàng)目名稱(chēng)
find_package() #找到編譯需要的其他CMake/Catkin package
catkin_python_setup() #catkin新加宏,打開(kāi)catkinPython Module的支持
add_message_files() #catkin新加宏,添加自定義Message/Service/Action文件
add_service_files()
add_action_files()
generate_message() #catkin新加宏,生成不同語(yǔ)言版本的msg/srv/action接口 --重要
catkin_package() #catkin新加宏,生成當(dāng)前packagecmake配置,供依賴(lài)本包的其他軟件包調(diào)用 --重要
add_library() #生成庫(kù)
add_executable() #生成可執(zhí)行二進(jìn)制文件
add_dependencies() #定義目標(biāo)文件依賴(lài)于其他目標(biāo)文件,確保其他目標(biāo)已被構(gòu)建
target_link_libraries() #鏈接
catkin_add_gtest() #catkin新加宏,生成測(cè)試
install() #安裝至本機(jī)

語(yǔ)法推薦:https://github.com/Akagi201/learning-cmake/blob/master/docs/cmake-practice.pdf 。作者寫(xiě)的很直白,掌握CMake語(yǔ)法可以加深理解ROS工程

package.xml 包含了package 的名稱(chēng)、版本號(hào)、內(nèi)容、編譯依賴(lài)、運(yùn)行依賴(lài)等信息,實(shí)際上rospack find 、rosdep命令也是讀取該文件。

package.xml寫(xiě)法:

package.xml有兩個(gè)版本,目前主流版本都支持。

版本一:

<pacakge> 根標(biāo)記文件
<name> 包名
<version> 版本號(hào)
<description> 內(nèi)容描述
<maintainer> 維護(hù)者
<license> 軟件許可證
<buildtool_depend> 編譯構(gòu)建工具,通常為catkin --重要
<build_depend> 編譯依賴(lài)項(xiàng),與Catkin中的  --總要
<run_depend> 運(yùn)行依賴(lài)項(xiàng)  --重要

版本二:

<pacakge> 根標(biāo)記文件
<name> 包名
<version> 版本號(hào)
<description> 內(nèi)容描述
<maintainer> 維護(hù)者
<license> 軟件許可證
<buildtool_depend> 編譯構(gòu)建工具,通常為catkin
#用depend來(lái)整合build_depend和run_depend
<depend> 指定依賴(lài)項(xiàng)為編譯、導(dǎo)出、運(yùn)行需要的依賴(lài),最常用 --重要
<build_depend> 編譯依賴(lài)項(xiàng)  --重要
<build_export_depend> 導(dǎo)出依賴(lài)項(xiàng)  --重要
#用depend來(lái)整合build_depend和run_depend
<exec_depend> 運(yùn)行依賴(lài)項(xiàng)  --重要
<test_depend> 測(cè)試用例依賴(lài)項(xiàng)
<doc_depend> 文檔依賴(lài)項(xiàng)
聲明:本文內(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)注

    212

    文章

    29292

    瀏覽量

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

    關(guān)注

    37

    文章

    7028

    瀏覽量

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

    關(guān)注

    1

    文章

    283

    瀏覽量

    17496
收藏 人收藏

    評(píng)論

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

    嵌入式Linux操作系統(tǒng)學(xué)習(xí)規(guī)劃,不看肯定后悔

    嵌入式Linux操作系統(tǒng)學(xué)習(xí)規(guī)劃,不看肯定后悔
    發(fā)表于 04-28 06:22

    探討嵌入式操作系統(tǒng)

    嵌入式操作系統(tǒng)學(xué)習(xí)筆記
    發(fā)表于 10-27 06:56

    嵌入式Linux操作系統(tǒng)學(xué)習(xí)規(guī)劃

    嵌入式Linux操作系統(tǒng)學(xué)習(xí)規(guī)劃ARM+LINUX路線,主攻嵌入式Linux操作系統(tǒng)及其上應(yīng)用軟件開(kāi)發(fā)目標(biāo):(1) 掌握主流嵌入式微處理器的結(jié)構(gòu)與原理(初步定為arm9)(2) 必須掌握一個(gè)嵌入式
    發(fā)表于 11-05 06:45

    UCOSII操作系統(tǒng)的簡(jiǎn)介

    前言這是我將UCOSII操作系統(tǒng)移植在STM32單片機(jī)上后進(jìn)行UCOSII操作系統(tǒng)學(xué)習(xí)的一些筆記與理解,此文最后會(huì)附上我自己在UCOSII操作系統(tǒng)下使用STM32寫(xiě)
    發(fā)表于 01-12 06:00

    ROS是什么?機(jī)器人操作系統(tǒng)ROS的介紹

    Robotics Foundation,Inc) 公司維護(hù)的開(kāi)源項(xiàng)目。 1、首先是一個(gè)操作系統(tǒng) 根據(jù) wikipedia 定義,操作系統(tǒng)是用來(lái)管理計(jì)算機(jī)硬件與軟件資源,并提供一些公用的 服務(wù)的系統(tǒng)軟件。而
    發(fā)表于 09-13 17:23 ?14次下載
    <b class='flag-5'>ROS</b>是什么?機(jī)器人<b class='flag-5'>操作系統(tǒng)</b><b class='flag-5'>ROS</b>的介紹

    ROS的含義與機(jī)器人操作系統(tǒng)ROS的介紹

    Operating System 的縮寫(xiě),原本是斯坦福大學(xué)的一個(gè)機(jī)器人項(xiàng)目,后來(lái)由 WillowGarage 公司發(fā)展,目前由 OSRF(Open Source Robotics Foundation,Inc)公司維護(hù)的開(kāi)源項(xiàng)目。 1、首先是一個(gè)操作系統(tǒng) 根據(jù) wikipedia 定義,
    發(fā)表于 09-26 14:08 ?12次下載

    機(jī)器人操作系統(tǒng)ROS詳細(xì)介紹

    ),提供類(lèi)似于操作系統(tǒng)的服務(wù),包括硬件抽象描述、底層驅(qū)動(dòng)程序管理、共用功能的執(zhí)行、程序間消息傳遞、程序發(fā)行包管理,它也提供一些工具和庫(kù)用于獲取、建立、編寫(xiě)和執(zhí)行多機(jī)融合的程序。 ROS的運(yùn)行架構(gòu)是一種使用ROS通信模塊實(shí)現(xiàn)模塊間
    發(fā)表于 11-18 18:09 ?2618次閱讀

    嵌入式操作系統(tǒng)學(xué)習(xí)筆記

    嵌入式操作系統(tǒng)學(xué)習(xí)筆記
    發(fā)表于 10-20 13:51 ?3次下載
    嵌入式<b class='flag-5'>操作系統(tǒng)學(xué)習(xí)</b><b class='flag-5'>筆記</b>

    嵌入式系統(tǒng)學(xué)習(xí)筆記

    嵌入式系統(tǒng)學(xué)習(xí)筆記https://app.yinxiang.com/fx/97dd59b5-21f1-470c-969c-d3509ee38fce
    發(fā)表于 10-20 19:50 ?0次下載
    嵌入式<b class='flag-5'>系統(tǒng)學(xué)習(xí)</b><b class='flag-5'>筆記</b>

    51操作系統(tǒng)學(xué)習(xí)筆記(三):建立一個(gè)屬于自己的AVR的RTOS(1)

    這篇筆記雖然是“51操作系統(tǒng)學(xué)習(xí)筆記”,但沒(méi)有找到合適的代碼。用楊明記的感覺(jué)還有點(diǎn)難度。因而轉(zhuǎn)學(xué)《建立一個(gè)屬于自己的AVR的RTOS》這篇文章絕對(duì)是學(xué)操作系統(tǒng)入門(mén)經(jīng)典之作。經(jīng)典之處在于
    發(fā)表于 11-15 18:36 ?9次下載
    51<b class='flag-5'>操作系統(tǒng)學(xué)習(xí)</b><b class='flag-5'>筆記</b>(三):建立一個(gè)屬于自己的AVR的RTOS(1)

    51操作系統(tǒng)學(xué)習(xí)筆記(四):建立一個(gè)屬于自己的AVR的RTOS(2)

    承接51操作系統(tǒng)學(xué)習(xí)筆記(三):建立一個(gè)屬于自己的AVR的RTOS(1),在avr中調(diào)試一下下面的程序.為了加深學(xué)習(xí)應(yīng)用,決定把代碼全部輸一遍,比復(fù)制的學(xué)些效果應(yīng)該好一些吧。打開(kāi)Avr studio
    發(fā)表于 11-15 21:06 ?7次下載
    51<b class='flag-5'>操作系統(tǒng)學(xué)習(xí)</b><b class='flag-5'>筆記</b>(四):建立一個(gè)屬于自己的AVR的RTOS(<b class='flag-5'>2</b>)

    ROS基本介紹

    近來(lái)找到的實(shí)習(xí)主要是做智能車(chē)控制,用到的也就是ROS機(jī)器人操作系統(tǒng),ROS需要運(yùn)行在一個(gè)操作系統(tǒng)上,這個(gè)操作系統(tǒng)常用的就是Linux,而公司
    的頭像 發(fā)表于 05-19 17:07 ?7846次閱讀
    <b class='flag-5'>ROS</b>基本介紹

    ROS操作系統(tǒng)學(xué)習(xí)筆記1

    機(jī)器人操作系統(tǒng)(Robot operating system ,ROS)是一個(gè)應(yīng)用于機(jī)器人上的基礎(chǔ)框架,它把原本松散的零部件耦合在一起,提供通信的架構(gòu),近似上ROS是一個(gè)中間件。 ros
    的頭像 發(fā)表于 05-19 17:20 ?887次閱讀
    <b class='flag-5'>ROS</b><b class='flag-5'>操作系統(tǒng)學(xué)習(xí)</b><b class='flag-5'>筆記</b>1

    ROS操作系統(tǒng)學(xué)習(xí)筆記3

    摘要:這篇文章主要介紹ROS常用工具、ROSPY和ROSCPP常用模塊,完全看完三篇文章,可以說(shuō)ROS就基本入門(mén),可以自己動(dòng)手做實(shí)驗(yàn)了。 **ROS常用工具** ROS工具
    的頭像 發(fā)表于 05-19 17:37 ?1195次閱讀
    <b class='flag-5'>ROS</b><b class='flag-5'>操作系統(tǒng)學(xué)習(xí)</b><b class='flag-5'>筆記</b>3

    ROS操作系統(tǒng)學(xué)習(xí)筆記4

    摘要:這篇文章主要介紹ROS常用工具、ROSPY和ROSCPP常用模塊,完全看完三篇文章,可以說(shuō)ROS就基本入門(mén),可以自己動(dòng)手做實(shí)驗(yàn)了。 **ROS常用工具** ROS工具
    的頭像 發(fā)表于 05-19 17:37 ?835次閱讀