本节对应赵虚左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