ROS的編譯和安裝還是稍微有點(diǎn)門檻的,這篇文章簡(jiǎn)單的記錄一下。

ROS功能包的安裝
https://github.com/TonyRobotics/RoboWare

一個(gè)合適的IDE,我看了一下是VSCode的魔改

編譯的框圖
ROS對(duì)CMake進(jìn)行了擴(kuò)展,于是便有了Catkin編譯系統(tǒng)。
Catkin是基于CMake的編譯構(gòu)建系統(tǒng),具有以下特點(diǎn):
- Catkin沿用了包管理的傳統(tǒng)像
find_package()基礎(chǔ)結(jié)構(gòu),pkg-config - 擴(kuò)展了CMake,例如
- 軟件包編譯后無需安裝就可使用
- 自動(dòng)生成
find_package()代碼,pkg-config文件 - 解決了多個(gè)軟件包構(gòu)建順序問題
一個(gè)Catkin的軟件包(package)必須要包括兩個(gè)文件:
- package.xml: 包括了package的描述信息
- CMakeLists.txt: 構(gòu)建package所需的CMake文件
- 調(diào)用Catkin的函數(shù)/宏
- 解析
package.xml - 找到其他依賴的catkin軟件包
- 將本軟件包添加到環(huán)境變量

這個(gè)是我手邊的一個(gè)典型的目錄

其中一個(gè)功能包的結(jié)構(gòu)
catkin編譯的工作流程如下:
- 首先在工作空間
catkin_ws/src/下遞歸的查找其中每一個(gè)ROS的package。 - package中會(huì)有
package.xml和CMakeLists.txt文件,Catkin(CMake)編譯系統(tǒng)依據(jù)CMakeLists.txt文件,從而生成makefiles(放在catkin_ws/build/)。 - 然后
make剛剛生成的makefiles等文件,編譯鏈接生成可執(zhí)行文件(放在catkin_ws/devel)。
也就是說,Catkin就是將cmake與make指令做了一個(gè)封裝從而完成整個(gè)編譯過程的工具。catkin有比較突出的優(yōu)點(diǎn),主要是:
- 操作更加簡(jiǎn)單
- 一次配置,多次使用
- 跨依賴項(xiàng)目編譯

xml文件是一些項(xiàng)目的基本信息,就是版本號(hào),描述什么的

就是這樣

比對(duì)的看

一些常見的編譯命令

編譯流程

編譯系統(tǒng)會(huì)遞歸查找



這是常見的ROS命令

因?yàn)镃make是常客,這里也有Cmake的一個(gè)常見函數(shù)的說明

-
編譯系統(tǒng)
+關(guān)注
關(guān)注
0文章
11瀏覽量
9039 -
ROS
+關(guān)注
關(guān)注
1文章
293瀏覽量
18727 -
CMake
+關(guān)注
關(guān)注
0文章
29瀏覽量
1796
發(fā)布評(píng)論請(qǐng)先 登錄
ROS系統(tǒng)是什么?ROS系統(tǒng)主要特點(diǎn)有哪些?創(chuàng)龍RK3568J+Debian的ROS2系統(tǒng)案例
【UT4418申請(qǐng)】移植ubuntu的ROS版本,重新編譯基于a8的智能網(wǎng)關(guān)到此平臺(tái)
如何移植ROS程序到Android
ROS與STM32是如何進(jìn)行通信的
什么是ROS?ROS產(chǎn)生、發(fā)展和壯大的原因和意義
ROS放到RK3326板上編譯時(shí)出現(xiàn)的問題有哪些呢
RK3308-CC-PLUS板子啟用ROS模塊后交叉編譯,menuconfig中沒有ROS選項(xiàng)怎么解決?
在FirePrime開發(fā)板上編譯安裝ROS jade
ROS在Zedboard上的移植
ROS與STM32通信
如何配置ROS驅(qū)動(dòng)功能包
剖析ROS編譯教程
評(píng)論