第五節 ROS作業系統 建立ROS程式包

2021-07-11 07:47:11 字數 2138 閱讀 8958

(一)本節教程介紹如何使用roscreate-pkg或catin建立乙個新程式包,並使用rospack檢視程式包的依賴關係

1)乙個catkin程式包由什麼組成

乙個程式包想要稱為caktin程式包必須符合以下要求:

1–該程式包必需包含caktin compliant package.xml檔案—-這個package.xml檔案提供有關程式包的

元資訊

2–程式包必須包含乙個caktin版本的cmakelists.txt檔案,而caktin metapackages中必須包含乙個對

cmakelist.txt的引用

3–每個目錄下只能有乙個程式包—這意味者同乙個目錄下不能有巢狀的或者多個程式包存在

2)在catkin工作空間中的程式包

1–開發caktin程式包的乙個推薦方法是使用caktin工作空間,但是你也可以單獨開發caktin軟體包。

3)建立乙個caktin程式包

1–本部分教程將演示如何使用—caktin_create_pkg命令來建立乙個新的catkin程式包以及建立之後都

都能做些什麼

2–首先,切換到之前通過建立catkin工作空間教程建立的catkin工作空間中的src目錄下:

cd ~/catkin_ws/src

3–現在使用–catkin_create_pkg命令建立乙個名為maweifei的新程式包,這個包依賴於std_msgs,roscpp

和rospy

示例如下所示:catkin_create_pkg maweifei std_msgs rospy roscpp

輸出結果如下所示:

created file maweifei/cmakelists.txt

created file maweifei/package.xml

created folder maweifei/include/maweifei

created folder maweifei/src

successfully created files in /home/wei/catkin_ws/src/maweifei.

please adjust the values in package.xml.

4–這將會建立乙個名為maweifei的資料夾,這個資料夾裡面包含乙個package.xml檔案和乙個cmakelists.txt

檔案,這兩個檔案都已經自動包含了部分你在執行catkin_create_pkg命令是提供的資訊

5)程式包依賴關係

1)一級依賴:

1–之前在使用catkin_create_pkg命令時,提供了幾個程式包作為依賴包,現在,我們可以使用rospack命令

工具來檢視一級依賴包

示例如下所示:

rospack depends1 maweifei ——但是這個命令有bug,現在還不知道為什麼

2)間接依賴

1–在很多情況中,乙個依賴包還有有它自己的依賴包,比如,rospy還有其他依賴包

示例如下所示—-rospack depends1 rospy

輸出的結果為: genpy

roscpp

rosgraph

rosgraph_msgs

roslib

std_msgs

2–乙個程式包還有還幾個簡介依賴包,幸運的是使用rospack可以遞迴檢測出所有的依賴包

示例如下所示–rospack depends rospy

輸出結果為:

genmsg

genpy

cpp_common

rostime

roscpp_traits

roscpp_serialization

message_runtime

catkin

gencpp

genlisp

message_generation

rosbuild

rosconsole

std_msgs

rosgraph_msgs

xmlrpcpp

roscpp

rosgraph

rospack

roslib

6)自定義你的程式包

第五節 檔案操作

read讀取檔案全部內容,預設就是讀模式,所以不需要指定模式 f open test2.py encoding utf8 data f.read print data f.close redline讀取檔案的一行內容,列印的時候加上end 否則會有空格 f open test2.py encodin...

函式第五節

coding utf 8 1.定義乙個func name 該函式效果如下。assert func lilei lilei assert func hanmeimei hanmeimei assert func hanmeimei hanmeimei def title name if isinsta...

第五節 字典

字典的表現形式為大括號 dict key必須可hash,必須唯一且必須為不可改變的資料型別 value可存放任意多個值,可修改,可不唯一 無序且查詢速度快 鍵 值 鍵值對 1 dic.keys 返回乙個包含字典所有key的列表 2 dic.values 返回乙個包含字典所有value的列表 3 di...