在Linux环境下VScode中配置ROS、PCL和OpenCV开发环境记录

一.安装必要的插件

打开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.jsonsettings.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

如图:

猜你喜欢

转载自blog.csdn.net/qq_36812406/article/details/127696926