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


在选择的路径下,打开终端创建工作空间,具体命令如下:
mkdir -p ~/ROS_Study2/src
cd ~/ROS_Study2/src
catkin_init_workspacecd ~/ROS_Study2
catkin_make
用VScode打开上面创建的工作空间,文件目录展示如下:
右键单击src,选择Create Catkin Package,Package命名为HelloROS


下一步添加roscpp哥rospy依赖

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

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

接下来在src/helloROS/src目录下添加一个cpp文件,命令为helloros.cpp,内容如下:
#include
#include
#include
#include
#include using namespace std;int main(int argc, char** argv)
{ros::init(argc, argv, "helloros");ros::NodeHandle n;ros::Publisher pub_str = n.advertise("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;
}
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
}
按下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})
快捷键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
如图:
