一、创建ROS工作空间
mkdir -p xxx_ws/src(必须得有 src)
cd xxx_ws
catkin_make
二、启动vscode
进入工作空间,启动vscode
code .
三、快捷键编译ros
快捷键 ctrl + shift + B 调用编译,点击catkin_make:build后面的小齿轮
修改.vscode/tasks.json 文件
{
"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"
}
]
}
此时可以用ctrl + shift + B 测试能否成功编译。
四、创建ROS功能包
1、选定 src 右击 ---> create catkin package
2、设置包名:
helloworld
3、添加依赖:
roscpp rospy std_msgs //一般来说都会添加这三个
五、C++代码实现
在功能包的src下创建cpp文件,注意cpp文件命名规范。
#include "ros/ros.h"
int main(int argc,char *argv[])
{
//解决乱码问题
setlocale(LC_ALL,"");
ros::init(argc,argv,"helloworld"); //节点初始化
ROS_INFO("hello world!,哈哈哈"); //输出日志
return 0;
}
六、配置CMakeLists.txt文件
1、add_executable命令用于使用指定的源文件向项目(project)添加可执行文件
add_executable(节点名称 src/可执行cpp文件在功能包下的路径.cpp)
2、target_link_libraries命令用于指定链接给定目标和/或其依赖项时要使用的库或标志。来自链接库目标的使用要求将被传播。
target_link_libraries(节点名称 ${catkin_LIBRARIES})
七、编译执行
1、ctrl + shift + B 快捷键进行编译
2、可以在vscode中新建终端,目录会自动定位在该代码的工作空间下。
3、开启roscore
4、开一个新终端,刷新环境变量
source ./devel/setup.bash
5、执行代码
rosrun helloworld helloworld