一.安装必要的插件
打开VScode,在开展中安装CMake、CMake Tools,ROS和catkin-tools插件,截图如下,安装后重新打开VScode插件生效。


二.创建ROS工作空间
在选择的路径下,打开终端创建工作空间,具体命令如下:
mkdir -p ~/ROS_Study2/src
cd ~/ROS_Study2/src
catkin_init_workspace
cd ~/ROS_Study2
catkin_make
三.用VScode打开工作空间,创建工作包
用VScode打开上面创建的工作空间,文件目录展示如下:

 右键单击src,选择Create Catkin Package,Package命名为HelloROS


下一步添加roscpp哥rospy依赖

接下来src文件里的文件目录如下:

 在.vscode里自动生成了c_cpp_properties.json和settings.json

接下来在src/helloROS/src目录下添加一个cpp文件,命令为helloros.cpp,内容如下:
#include <iostream>
#include <string>
#include <sstream>
#include <ros/ros.h>
#include <std_msgs/String.h>
using namespace std;
int main(int argc, char** argv)
{
	ros::init(argc, argv, "helloros");
	ros::NodeHandle n;
	ros::Publisher pub_str = n.advertise<std_msgs::String>("talker", 1000);
	ros::Rate loop_rate(10);
	int count = 0;
	while(ros::ok())
	{
		std_msgs::String msg;
		std::stringstream ss;
		ss << "hello ROS! " << count;
		msg.data = ss.str();
		ROS_INFO("%s", msg.data.c_str());
		pub_str .publish(msg);
		ros::spinOnce();
		loop_rate.sleep();
		count++;
	}
	return 0;
}
四..vscode里json文件的生成和配置
1.c_cpp_properties.json:用于指定C/C++类库和包含路径,按住Fn+F1,找到C/C++:编辑配置(JSON)即可自动生成json文件(这里已经自动生成,不需要创建)
 

这里自动生成的c_cpp_properties.json文件,具体的内容如下:
{
  "configurations": [
    {
      "browse": {
        "databaseFilename": "${workspaceFolder}/.vscode/browse.vc.db",
        "limitSymbolsToIncludedHeaders": false
      },
      "includePath": [
        "/opt/ros/kinetic/include/**",
        "/usr/include/**"
         //这里就可以包含ROS,PCL和OpenCV相关的头文件的路径
      ],
      "name": "ROS",
      "intelliSenseMode": "gcc-x64",
      "compilerPath": "/usr/bin/gcc",
      "cStandard": "gnu11",
      "cppStandard": "c++14"
    }
  ],
  "version": 4
}2.tasks.json:用于编译
按下ctrl + shfit + p输入指令tasks: configure task,然后在下拉里选择catkin_make: build 会自动生成tasks.json文件。生成的tasks.json文件内容如下:
{
	"version": "2.0.0",
	"tasks": [
		{
			"type": "catkin_make",
			"args": [
				"--directory",
				"/home/yang/Project/ROS_Study2",
				"-DCMAKE_BUILD_TYPE=RelWithDebInfo"
			],
			"problemMatcher": [
				"$catkin-gcc"
			],
			"group": "build",
			"label": "catkin_make: build"
		}
	]
}修改src/helloROS/CMakeLists.txt文件,添加的内容如下:
catkin_package(
  CATKIN_DEPENDS
)
# 头文件路径
include_directories(
include
  ${catkin_INCLUDE_DIRS}
)
# 生成可执行文件
add_executable( helloROS src/helloros.cpp )
# 链接库
target_link_libraries(helloROS ${catkin_LIBRARIES})
3. launch.json,用于调试
快捷键ctrl+shift+d,新建launch.json文件,会自动生成如下内容:
{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 启动",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/devel/lib/helloROS/helloROS",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        },
    ]
}五 运行节点
1.运行ROS MASTER
执行快捷键ctrl + shfit + p,
再输入 ROS:Start

2.运行节点
执行快捷键ctrl + shfit + p
输入ROS:Run a Ros executable
依次输入创建的功能包的名称以及节点名称(即编译成功后二进制文件的名称,注意不是文件名)

终端打印结果如下:

至此完成ROS在VScode中的配置,PLC和OpenCV在VScode配置只需要在c_cpp_properties.json和CMakeLists.txt添加相应头文件路径和相关命令即可,可实现动补全功能。
后记:VScode使用compile_commands.json配置includePath环境
1.使用cmake导出compile_commands.json
命令:cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=YES ..
2.在ROS下使用
命令:catkin_make -DCMAKE_EXPORT_COMPILE_COMMANDS=YES
3.在CMakeLists.txt中添加set命令
命令:set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
4.在VScode中的compile_commands.json中添加
在中添加:
"compileCommands": "${workspaceFolder}/build/compile_commands.json" //添加cmaker生成的compile_commands.json
如图:




















