Ubuntu20.04下使用VScode1.54.3
1.创建ROS工作空间
mkdir -p xxx_ws/src(必须得有src)
cd xxx_ws
catkin_make
2.启动VScode
cd xxx_ws
code .
3.VScode中编译ROS
①快捷键ctrl+shift+B调用编译,选择catkin_make:build
②可以点击配置设置为默认,修改.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"
}
]
}
4.创建ROS功能包
选定src右击-->create catkin package
设置包名,添加依赖(roscpp rospy std_msgs)
5.C++实现
在功能包的src下新建cpp文件
/*
控制台输出 HelloVSCode !!!
*/
#include "ros/ros.h"
int main(int argc, char *argv[])
{
setlocale(LC_ALL,"");
//执行节点初始化
ros::init(argc,argv,"HelloVSCode");
//输出日志
ROS_INFO("Hello VSCode!!!哈哈哈哈哈哈哈哈哈哈");
return 0;
}
①如果没有代码提示
修改 .vscode/c_cpp_properties.json
设置 “cppStandard”:“c++17”
②main函数的参数不可以被const修饰
③当ROS_INFO终端输出有中文时,会出现乱码
RNFO:???
解决办法:在函数开头加入下面代码的任意一句
setlocale(LC_CTYPE, "zh_CN.utf8");
setlocale(LC_ALL, "");
6.配置CMakeLists.txt
C++配置:
add_executable(节点名称
src/C++源文件名.cpp
)
target_link_libraries(节点名称
${catkin_LIBRARIES}
)
7.编译执行
编译:ctrl+shift+B
新开终端:roscore
新开终端:source ./devel/setup.bash rosrun 包名 节点名称