在Linux环境下VScode中配置ROS、PCL和OpenCV开发环境记录
创始人
2024-01-20 04:40:52

一.安装必要的插件

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

 二.创建ROS工作空间

在选择的路径下,打开终端创建工作空间,具体命令如下:

mkdir -p ~/ROS_Study2/src
cd ~/ROS_Study2/src
catkin_init_workspacecd ~/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 
#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;
}

四..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

如图:

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
苁蓉的食用方法 鲜苁蓉的吃法有... 肉苁蓉号称“温而不热,补而不峻,暖而不燥,滑而不泄,故有从容之名。”历来也是传统药食同源的滋补佳品。...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
阳澄湖在哪里哪个省的 阳澄湖是... 点击题目下方苏州生活指南有用 有趣 有态度近期的阳澄湖度很高,3月24日,央视二套《第一时间》直播连...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...