天天看點

編譯第一個ROS程式--Hello ROS

作業系統: Ubuntu16.04

ROS版本: Kinetic

1.安裝ROS,詳情見http://blog.csdn.net/qq_17232031/article/details/79519308

2.建立一個catkin_ws檔案夾,以及子目錄src:

$ mkdir catkin_ws
$ cd ./catkin_ws
$ mkdir src
           

3.在src目錄下建立功能包,命名為first

$ catkin_create_pkg first
           

此時會産生first檔案夾,其中包含兩個檔案,CMakelists.txt和package.xml

4.在first檔案夾下,建立hello.cpp檔案

$ sudo gedit hello.cpp
           

編寫代碼:

#include <ros/ros.h>

int main(int argc,char ** argv)
{
    ros::init(argc,argv,"hello_ros");
    ros::NodeHandle nh;
    ROS_INFO_STREAM("Hello ROS");
}
           

init函數初始化用戶端庫。NodeHandle節點句柄,用于程式與ROS的互動。

5.編譯cpp代碼,此時需要對同目錄下的CMakelists.txt和package.xml檔案進行修改

在CMakelist.txt檔案中添加

add_executable(hello hello.cpp)
target_link_libraries(hello ${catkin_LLIBRARIES})
           

并且将

find_package(catkin REQUIRED)
           

改為:

find_package(catkin REQUIRED COMPONENTS roscpp)
           

這句是為了添加roscpp依賴項

修改package.xml檔案,添加build_depend編譯依賴和run_depend運作依賴

<build_depend>roscpp</build_depend>
<run_depend>roscpp<run_depend>
           

然後,在catkin_ws目錄下執行:

$ catkin_make
$ cd ./devel
$ source setup.bash
           

6. 運作程式

$ rosrun first hello
           

出現結果:

編譯第一個ROS程式--Hello ROS