上一篇笔记讲了在不使用其他工具时,新建一个ros节点输出hello world!
本篇笔记则是使用vscode进行开发
一.vscode输出hello world!
1. 新建工作空间并编译
mkdir -p helloworld_ws2/src
cd helloworld_ws2
catkin_make
2. 进入工作空间目录下打开vscode
cd helloworld_wc2
code ./ //在该目录下打开vscode
此时在vscode中就可以发现我们工作空间的目录 如上图所示
3.简化编译操作
在vscode中修改catkin_make:build文件为:{
{
// 有关 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"
}
]
}
以后如果要进行编译操作直接:Ctrl + Shift + B 即可
4.新建功能包
在工作空间下src子目录中右键新建package
为你的功能包起一个名字后,后续再输入三个依赖:roscpp、rospy、 std_msgs
完成上述操作后可Ctrl + Shift + B 检验是否有错误
5.在功能包src文件下编写程序
功能包目录下src右键新建 .cpp 源文件,写代码:
此时发现没有自动补齐代码功能,可以在:
此处修改为:c++17
6.编辑配置文件
修改Cmakelists.txt文件
注意! 此处Cmakelists.txt文件为功能包中的文件
修改完成后即可Ctrl + Shift + B编译
在终端中启动roscore
在vscode中打开终端默认会在当前工作空间中,可以节省时间
此时可以看到问题已经解决啦
二.launch文件
引言:还记得我们安装完ros后验证是否安装成功的小乌龟程序吗,在此程序中如果我们要实现按键控制小乌龟移动一共需要启动三个节点,分别为:roscore(master),小乌龟界面显示节点,按键控制节点
这样逐个启动节点效率比较低下,官网给出的解决方法是使用launch文件,可以一次性启动多个节点
下面以乌龟程序为例
(在上面的demo02工作空间中演示)
roscore
source ./devel/setup.bash
roslaunch <launch文件夹所在包名> <launch文件名>
注意!
此处代码不要加额外的空格!!!
<launch>
<node pkg="turtlesim" type="turtlesim_node" name="turtle_GUI" />
<node pkg="turtlesim" type="turtle_teleop_key" name="turtle_KEY" />
launch>
小练习:使用launch文件启动刚刚写的hello word节点
但执行过后却发现控制台没有输出,其实这里还需要添加一个属性 output
如果要将日志输出在屏幕上就需要添加该属性(华子找不到)
修改完launch文件后保存,运行就可以得到啦
今天就到这里啦,明天见