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

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

一個合適的IDE,我看了一下是VSCode的魔改

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

這個是我手邊的一個典型的目錄

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

xml文件是一些項目的基本信息,就是版本號,描述什么的

就是這樣

比對的看

一些常見的編譯命令

編譯流程

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



這是常見的ROS命令

因為Cmake是常客,這里也有Cmake的一個常見函數(shù)的說明

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
編譯系統(tǒng)
+關(guān)注
關(guān)注
0文章
11瀏覽量
9055 -
ROS
+關(guān)注
關(guān)注
1文章
296瀏覽量
18867 -
CMake
+關(guān)注
關(guān)注
0文章
29瀏覽量
1837
發(fā)布評論請先 登錄
相關(guān)推薦
熱點推薦
ROS系統(tǒng)是什么?ROS系統(tǒng)主要特點有哪些?創(chuàng)龍RK3568J+Debian的ROS2系統(tǒng)案例
了操作系統(tǒng)應有的服務,包括硬件抽象,底層設(shè)備控制,常用函數(shù)的實現(xiàn),進程間消息傳遞,以及包管理。它也提供用于獲取、編譯、編寫、和跨計算機運行代碼所需的工具和庫函數(shù)。 隨著工業(yè)智能化的快速發(fā)展,智能機器人設(shè)備已成為工業(yè)自動化體系的佼佼者,而智能機器人設(shè)備核心—ROS系統(tǒng),是
RK3562 單板機嵌入式 ROS2 開發(fā)指南:環(huán)境搭建與工程編譯
、ROS2 軟件包編譯和單板機部署方法。創(chuàng)龍科技通過清晰的步驟與案例,幫助開發(fā)者高效實現(xiàn) ROS2 在嵌入式平臺的開發(fā)與應用,適用于機器人開發(fā)等相關(guān)場景。
【UT4418申請】移植ubuntu的ROS版本,重新編譯基于a8的智能網(wǎng)關(guān)到此平臺
功的tiny210,但是還是不怎么樣,系統(tǒng)本身很多問題,別說運行ROS了&項目描述:<1>學習并且編譯安裝ubuntu系統(tǒng),其中包括
發(fā)表于 11-02 11:02
如何移植ROS程序到Android
在Android上運行ROS程序一般使用rosjava-android。但是也可以直接利用NDK編譯成so文件移植到Android上。當然移植過程也并不簡單。 下面是一個簡單的例子。安裝cmake
發(fā)表于 05-16 19:20
ROS與STM32是如何進行通信的
角速度、實際線速度STM32端ROS端之前運行的ROS項目都是在終端編譯,用vim或者gedit修改代碼,很不方便,函數(shù)跳轉(zhuǎn)查看都沒辦法實現(xiàn)。所以今天先安裝一個IDE試試ROS官網(wǎng)上有
發(fā)表于 08-11 07:25
RK3308-CC-PLUS板子啟用ROS模塊后交叉編譯,menuconfig中沒有ROS選項怎么解決?
RK3308-CC-PLUS板子啟用ROS模塊后交叉編譯,menuconfig中沒有ROS選項怎么解決?
發(fā)表于 03-09 06:23
在FirePrime開發(fā)板上編譯安裝ROS jade
學習系列 -- 樹莓派編譯安裝完整版本ROS 解決過程如下: 創(chuàng)建新目錄,下載并編譯這個包。 當checkinstall詢問是否改變安裝選項時,選擇[2],將名字從“collada-dom
發(fā)表于 07-07 11:21
ROS在Zedboard上的移植
: Zedboard ARM處理器 : Cortex-A9 ARM操作系統(tǒng): Linaro 12.11 ROS版本: indigo 移植前提 1. 開發(fā)板可以連接網(wǎng)絡(luò) 2. 使用SSH等對開發(fā)板進行遠程控制 編譯方法
發(fā)表于 10-26 11:52
?1409次閱讀
ROS與STM32通信
角速度、實際線速度STM32端ROS端之前運行的ROS項目都是在終端編譯,用vim或者gedit修改代碼,很不方便,函數(shù)跳轉(zhuǎn)查看都沒辦法實現(xiàn)。所以今天先安裝一個IDE試試ROS官網(wǎng)上有
發(fā)表于 12-24 19:00
?12次下載
如何配置ROS驅(qū)動功能包
配置ROS驅(qū)動功能包 將WHEELTEC 100N的 ROS_SDK 保存在工作空間的src文件夾下。 通過 catkin_make 進行編譯。 剛裝的ros環(huán)境會報錯,如下: Mak
ros的基本概念是什么
基本概念: ROS是一個用于在不同進程間匿名的發(fā)布、訂閱、傳遞信息的中間件。 ROS2系統(tǒng)的核心部分是ROS網(wǎng)絡(luò)(ROS Graph)。 ROS
AI編譯器技術(shù)剖析
隨著人工智能技術(shù)的飛速發(fā)展,AI編譯器作為一種新興的編譯技術(shù)逐漸進入人們的視野。AI編譯器不僅具備傳統(tǒng)編譯器的功能,如將高級語言編寫的源代碼轉(zhuǎn)換為機器可執(zhí)行的代碼,還融入了人工智能技術(shù)
剖析ROS編譯教程
評論