本節對應趙虛左ROS書籍的1.4.2
1)創建工作空間
mkdir -p catkin_ws/src
cd catkin_ws
catkin_make
2) 終端進入VS Code
code .
3) vscoe 的基本配置
? ? ? ? 3.1)修改.vscode/tasks.json ,修改內容如下:
{
// 有關 tasks.json 格式的文檔,請參見// https://go.microsoft.com/fwlink/?LinkId=733558"version": "2.0.0","tasks": [{"label": "catkin_make:debug", //代表提示的描述性信息"type": "shell", //可以選擇shell或者process,如果是shell代碼是在shell里面運行一個命令,如果是process代表作為一個進程來運行"command": "catkin_make",//這個是我們需要運行的命令"args": [],//如果需要在命令后面加一些后綴,可以寫在這里,比如-DCATKIN_WHITELIST_PACKAGES=“pac1;pac2”"group": {"kind":"build","isDefault":true},"presentation": {"reveal": "always"//可選always或者silence,代表是否輸出信息},"problemMatcher": "$msCompile"}]
}
? ? ? ? 3.2)修改 .vsocde/c_cpp_properties.json 修改內容如下:
"cppStandard": "c++14"-->"cppStandard": "c++17"
在vscode 的終端下 編譯一下
catkin_make
4)創建功能包
????????src目錄下右鍵選中 create catkin package?
? ? ? ? 在彈出的橫框中寫入功能包名 hello_ros? ,回車
? ? ? ? 再輸入依賴 roscpp rospy std_msgs
這樣就新建了一個功能包了
5)在功能包的src目錄下新建cpp文件,并且寫入:
#include "ros/ros.h"
int main(int argc,char *argv[]){setlocale(LC_ALL,"");ros::init(argc,argv,"hello_ros_c");ROS_INFO("He 哈");return 0;
}
6) 或者在功能包下新建scripts ,在scripts目錄下新建python文件,并且寫入:
#! /usr/bin/env pythonimport rospyif __name__ == "__main__":rospy.init_node("hello_ros_p")rospy.loginfo("he 哈")
7) 修改功能包目錄下CMakeLists.txt
? ? ? ? 7.1) C++的修改(136行,149行)
//136行 后面為cpp文件名,前面為自定義節點名(盡量和cpp文件名一樣即可)
add_executable(hello_ros src/hello_ros.cpp)//149行 hello_ros也為前面的節點名target_link_libraries(hello_ros${catkin_LIBRARIES}
)
? ? ? ? 7.2)python的修改
//這里的scripts文件夾要創建,防止報錯
catkin_install_python(PROGRAMSscripts/hello_ros.pyDESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
8)編譯運行
編譯
catkin_make
新建終端打開roscore
roscore
?8.1) cpp執行 rosrun <包名> <節點名>
source ./devel/setup.bash
rosrun hello_ros hello_ros
8.2)?python執行 rosrun <包名> <python文件名>
source ./deve/setup.bash
rosrun hello_ros hello_ros.py