1. 程式人生 > >ROS下建立工作空間以及編譯一個包

ROS下建立工作空間以及編譯一個包

在ROS層面上編寫軟體,需要有相關的工作空間(workspace)。

生成工作控制元件並不複雜,首先,我們開啟一個控制檯(Ctrl+Alt+T),在使用者路徑下信件一個資料夾,我們起名為LearnROS(也可以起一個自己喜歡的名字)。

然後在這個資料夾中再建立一個資料夾,我們命名為src;完成後,進入src工作路徑,輸catkin_init_workspace指令初始化工作控制元件,這會在src資料夾中生成CMakeList。

然後我們進入主路徑,在沒有任何程式碼的條件下catkin_make一下,觀察現象:

完整的操作的指令如下:

mkdir LearnROS
cd LearnROS/
mkdir src
cd src
catkin_init_workspace
cd ..
catkin_make
cd src


完成這些操作後,我們發現,在LearnROS路徑下生成了3個資料夾:build,devel和src。

build資料夾存放了Makefile檔案,是catkin自動生成的編譯配置檔案

devel路徑下存放了生成的可執行檔案,也就是ROS執行的節點檔案(類似於windows下的exe),在沒有原始碼的情況下,它是空的。

src中存放了我們創作的原始檔和標頭檔案,我們所有的程式碼也都是在src這個資料夾中完成的。

接下來,我們在ROS中拷入一個完整的軟體包,編譯看看:

控制檯中輸入:git clone https://github.com/ros-planning/navigation,就可以將navigation包複製到src路徑下。

當然,也可以用我精簡的導航包,package的數量被精簡為4個,包含了移植後的A*演算法,這個編譯起來會快很多。

切換到LearnROS目錄下,輸入:catkin_make,等待編譯。編譯過程中可能會提示缺少SDL_image包的錯誤,大家可以自己想解決方案,如果無法解決可以在評論區留言。

等待幾分鐘,編譯完成!

開啟devel/lib/資料夾,發現生成了可執行檔案,也就是node節點檔案,這就說明編譯成功了!