ROS的編譯和安裝還是稍微有點門檻的,這篇文章簡單的記錄一下。
ROS功能包的安裝
https:
一個合適的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的描述信息
- name, description, version, maintainer(s), license
- opt. authors, url's, dependencies, plugins, etc...
- 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)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
相關(guān)推薦
了操作系統(tǒng)應(yīng)有的服務(wù),包括硬件抽象,底層設(shè)備控制,常用函數(shù)的實現(xiàn),進程間消息傳遞,以及包管理。它也提供用于獲取、編譯、編寫、和跨計算機運行代碼所需的工具和庫函數(shù)。 隨著工業(yè)智能化的快速發(fā)展,智能機器人設(shè)備已成為工業(yè)自動化體系的佼佼者,而智能機器人設(shè)備核心—ROS系統(tǒng),是
發(fā)表于 11-30 14:41
?4630次閱讀
功的tiny210,但是還是不怎么樣,系統(tǒng)本身很多問題,別說運行ROS了&項目描述:<1>學(xué)習(xí)并且編譯安裝ubuntu系統(tǒng),其中包括
發(fā)表于 11-02 11:02
在Android上運行ROS程序一般使用rosjava-android。但是也可以直接利用NDK編譯成so文件移植到Android上。當(dāng)然移植過程也并不簡單。 下面是一個簡單的例子。安裝cmake
發(fā)表于 05-16 19:20
角速度、實際線速度STM32端ROS端之前運行的ROS項目都是在終端編譯,用vim或者gedit修改代碼,很不方便,函數(shù)跳轉(zhuǎn)查看都沒辦法實現(xiàn)。所以今天先安裝一個IDE試試ROS官網(wǎng)上有
發(fā)表于 08-11 07:25
什么是ROS?如何學(xué)習(xí)ROS?
發(fā)表于 11-11 07:21
如何利用RK1808去搭建一種ROS交叉編譯環(huán)境呢?其方法是什么?
發(fā)表于 02-15 06:32
ROS放到RK3326板上編譯時出現(xiàn)的問題有哪些呢?怎樣去解決?
發(fā)表于 02-17 06:08
RK3308-CC-PLUS板子啟用ROS模塊后交叉編譯,menuconfig中沒有ROS選項怎么解決?
發(fā)表于 03-09 06:23
:可以把jade替換為你安裝的版本:如indigo。嘗試了上面的指令,沒有成功,可能和ROS是編譯安裝的有關(guān)吧,也不是很確定。只能通過源碼編譯安裝。在下面的指令中,代表你的catkin工作空間。注意
發(fā)表于 07-06 11:49
學(xué)習(xí)系列 -- 樹莓派編譯安裝完整版本ROS 解決過程如下: 創(chuàng)建新目錄,下載并編譯這個包。 當(dāng)checkinstall詢問是否改變安裝選項時,選擇[2],將名字從“collada-dom
發(fā)表于 07-07 11:21
: 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
?1093次閱讀
角速度、實際線速度STM32端ROS端之前運行的ROS項目都是在終端編譯,用vim或者gedit修改代碼,很不方便,函數(shù)跳轉(zhuǎn)查看都沒辦法實現(xiàn)。所以今天先安裝一個IDE試試ROS官網(wǎng)上有
發(fā)表于 12-24 19:00
?11次下載
配置ROS驅(qū)動功能包 將WHEELTEC 100N的 ROS_SDK 保存在工作空間的src文件夾下。 通過 catkin_make 進行編譯。 剛裝的ros環(huán)境會報錯,如下: Mak
發(fā)表于 11-22 18:13
?1270次閱讀
基本概念: ROS是一個用于在不同進程間匿名的發(fā)布、訂閱、傳遞信息的中間件。 ROS2系統(tǒng)的核心部分是ROS網(wǎng)絡(luò)(ROS Graph)。 ROS
發(fā)表于 11-27 11:21
?1792次閱讀
隨著人工智能技術(shù)的飛速發(fā)展,AI編譯器作為一種新興的編譯技術(shù)逐漸進入人們的視野。AI編譯器不僅具備傳統(tǒng)編譯器的功能,如將高級語言編寫的源代碼轉(zhuǎn)換為機器可執(zhí)行的代碼,還融入了人工智能技術(shù)
發(fā)表于 07-17 18:28
?1620次閱讀
評論