ROS下建立工作空間以及編譯一個包
阿新 • • 發佈:2019-02-04
在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節點檔案,這就說明編譯成功了!