Catkin工作空間 (重點)

2021-10-06 15:31:53 字數 2343 閱讀 7030

catkin工作空間 (重點)

建立乙個 catkin 工作空間:

$ mkdir -p ~/catkin_ws/src  # 建立了第二層級的資料夾src,這是放ros軟體包的地方

$ cd ~/catkin_ws/src # 進入工作空間,catkin_make必須在工作空間這個路徑上執行

$ catkin_init_workspace # 初始化src目錄,生成的cmakelists.txt為功能包編譯配置

$ cd ~/catkin_ws   # 回到工作空間,catkin_make必須在工作空間下執行;

$ catkin_make # 開始編譯,呼叫系統自動完成編譯和鏈結過程,構建生成目標檔案

注意:catkin編譯之前需要回到工作空間目錄,catkin_make在其他路徑下編譯不會成功。

==編譯完成後,如果有新的目標檔案產生(原來沒有),那麼一般緊跟著要source重新整理環境,使得系統能夠找到剛才編譯生成的ros可執行檔案。==這個細節比較容易遺漏,致使後面出現可執行檔案無法開啟等錯誤。

catkin_make命令也有一些可選引數,例如:

catkin_make [args]

-h, --help 幫助資訊

-c directory, --directory directory

工作空間的路徑 (預設為 '.'

) --source source src的路徑 (預設為'workspace_base/src'

) --build build build的路徑 (預設為'workspace_base/build'

) --use-ninja 用ninja取代make

--use-nmake 用nmake取'make

--force-cmake 強制cmake,即使已經cmake過

--no-color 禁止彩色輸出(只對catkin_make和cmake生效)

--pkg pkg [pkg ...] 只對某個pkg進行make

--only-pkg-with-deps only_pkg_with_deps [only_pkg_with_deps ...]

將指定的package列入白名單catkin_whitelist_packages,

之編譯白名單裡的package。該環境變數存在於cmakecache.txt。

--cmake-args [cmake_args [cmake_args ...]

] 傳給cmake的引數

--make-args [make_args [make_args ...]

] 傳給make的引數

--override-build-tool-check

用來覆蓋由於不同編譯工具產生的錯誤

注意,對於 python 3 使用者,在乙個空的 catkin 工作空間中第一次執行 catkin_make的命令應為:

$ catkin_make -dpython_executable=/usr/bin/python3
這將會配置 catkin_make 使用 python 3.你可以在隨後的構建中只使用catkin_make

另外,如果你檢視一下當前目錄應該能看到 『build』 和 『devel』 這兩個資料夾。在 『devel』 資料夾裡面你可以看到幾個setup.*sh檔案。source這些檔案中的任何乙個都可以將當前工作空間設定在ros工作環境的最頂層。接下來首先source一下新生成的setup.*sh檔案:

$ source devel/setup.bash   # 重新整理壞境
要想保證工作空間已配置正確,需確保ros_package_path環境變數包含你的工作空間目錄,採用以下命令檢視:

$ echo

$ros_package_path

# 出現 /home//catkin_ws/src:/opt/ros/kinetic/share

到此你的工作環境已經搭建完成。

建立好了乙個ros的工作空間了,接下來就是在catkin_ws工作空間下的src目錄下新建功能包並進行功能包程式。

ROS中catkin工作空間的建立步驟

一 構建catkin工作空間 安裝完成ros版本後,設定好環境變數,即可建立乙個catkin工作空間 source opt ros kinetic setup.bash1.建立catkin工作空間所在的資料夾,如上的 catkin ws。在所建立的工作空間資料夾中,建立子資料夾 src mkdir ...

ROS檔案系統 catkin工作空間及程式包

1.檔案系統概念,包含兩部分 1 packages 軟體包,是ros應用程式 的組織單元,每個軟體包都可以包含程式庫 可執行檔案 指令碼或者其它手動建立的東西。2 manifest package.xml 清單,是對軟體包相關資訊的描述,用於定義軟體包相關元資訊之間的依賴關係,這些資訊包括版本 維護...

建立ROS的catkin工作區

mkdir p catkin ws src cd catkin ws catkin make sudo gedit bashrc在.bashrc檔案中新增 source catkin ws devel setup.bash echo ros package path我的執行結果如下 記錄乙個疑惑 在...