學習6:編譯ROS程式包,和學習ROS節點
設定好所有依賴項後,就可以編譯這個程式包了。
1 編譯ROS程式包
1.1 catkin_make
在catkin工作空間裡,直接執行catkin_make就可以編譯了。(官方教程說,相當於依次執行了cmake和make)
$ catkin_make [make_targets] [-DCMAKE_VARIABLES=...]比如在之前新建的catkin_ws目錄裡執行,會編譯src資料夾下所有的catkin工程。
$ catkin_make install就可以生成很多東西了。(build devel install資料夾。)
如果程式碼不在src目錄裡,則會有點麻煩,比如在mysrc目錄裡,則用下面程式碼
$ catkin_make --source my_src $ catkin_make install --source my_src
2 ROS節點
2.1 安裝小烏龜模擬器
因為我們一開始是完整安裝的。。所以應該不需要額外安裝了。下面程式碼是直接安裝的程式碼
sudo apt-get install ros-indigo-ros-tutorials
2.2 LUNIX chown命令
命令格式 : chown [選項]... [所有者][:[組]] 檔案...
必要引數
-c 顯示更改的部分的資訊
-f 忽略錯誤資訊
-h 修復符號連結
-R 處理指定目錄以及其子目錄下的所有檔案
-v 顯示詳細的處理資訊
-deference 作用於符號連結的指向,而不是連結檔案本身
可選引數
--reference=<目錄或檔案> 把指定的目錄/檔案作為參考,把操作的檔案/目錄設定成參考檔案/目錄相同擁有者和群組
--from=<當前使用者:當前群組> 只有當前使用者和群組跟指定的使用者和群組相同時才進行改變
--help 顯示幫助資訊
--version 顯示版本資訊
2.3 修改~/.ros資料夾使用者歸屬程式碼為$ sudo chown -R <your_username> ~/.ros
也就是把根目錄下的ros資料夾修改許可權為當前使用者(預設是隻有root)
2.4 執行roscore
程式碼
$ roscore這行程式碼,就啟動了roscore,這個不能關,要開啟其他的終端再用。 2.5 用rosnode ctrl+alt+T 開啟新終端,下面的程式碼會顯示正在執行的節點。
rosnode list正常情況下,應該顯示/rosout節點。 試著輸入下面的命令
$ rosnode info /rosout這會輸出/rosout節點的一些資訊,
2.6 rosrun執行節點
rosrun可以執行一些已經存在的節點,包名+節點名。
$ rosrun [package_name] [node_name]我們知道我們之前學過了,我們可以做一些包,一個包裡有src,裡面可能有若干個東西。應該就是一個包裡有很多節點把。 這裡我們要執行之前下載的小烏龜包裡的節點。
$ rosrun turtlesim turtlesim_node運行了turtlesim包裡的turtlesim_node節點。
這個時候應該看到一個小烏龜。
再去執行2.5的命令,這次會多個/turtlesim節點。
有個好玩的命令rosnode ping來看ping。
比如rosnode ping turtlesim
可以看到延遲。(疑問:從哪裡去ping這個節點?用ubuntu來ping?還是節點去ping?)
CTRL+C, Linux下萬能關閉終端程式的方法。