1. 程式人生 > >學習6:編譯ROS程式包,和學習ROS節點

學習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下萬能關閉終端程式的方法。