1.創建工作空間并初始化
mkdir -p 自定義空間名稱/src
cd 自定義空間名稱
catkin_make
上述命令,首先會創建一個工作空間以及一個 src 子目錄,然后再進入工作空間調用 catkin_make命令編譯。
2.進入 src 創建 ros 包并添加依賴
cd src
catkin_create_pkg 自定義ROS包名 roscpp rospy std_msgs
上述命令,會在工作空間下生成一個功能包,該功能包依賴于 roscpp、rospy 與 std_msgs,其中roscpp是使用C++實現的庫,而rospy則是使用python實現的庫,std_msgs是標準消息庫,創建ROS功能包時,一般都會依賴這三個庫實現。
3.進入 ros 包的 src 目錄編輯源文件
沿著下面的文件路徑,進入src文件夾,創建一個cpp文件進行編寫
#include "ros/ros.h"int main(int argc, char *argv[])
{//ros節點初始化ros::init(argc,argv,"hello");//創建 ros 節點句柄(非必須)ros::NodeHandle n;//控制臺輸出 hello worldROS_INFO("hello world!");return 0;
}
4.編輯 ros 包下的 Cmakelist.txt文件
編輯 ros 包下的 Cmakelist.txt文件
add_executable(C++節點名src/步驟3的源文件名.cpp
)
target_link_libraries(C++節點名${catkin_LIBRARIES}
)
5.進入工作空間目錄并編譯
cd 自定義空間名稱
catkin_make
至此已完成代碼的編譯。。
7.執行
先啟動命令行1:啟動ros核心
roscore
再啟動命令行2:
cd 工作空間
source ./devel/setup.bash
rosrun 包名 C++節點
第二行的作用是將環境變量刷新到當前命令行窗口
我創建的包名是helloworld
而C++節點則在剛才修改的cmake文件里,要注意并不是cpp文件名,這個節點名是可以自己在cmake里面改的,不過,以后盡量要保證映射的節點名與源文件名保持一致,這里只是為了區分它們