ROS笔记Day02----使用vscode开发&launch文件

上一篇笔记讲了在不使用其他工具时,新建一个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

ROS笔记Day02----使用vscode开发&launch文件_第1张图片

此时在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"
        }
    ]
}

ROS笔记Day02----使用vscode开发&launch文件_第2张图片
以后如果要进行编译操作直接:Ctrl + Shift + B 即可
4.新建功能包
在工作空间下src子目录中右键新建package
ROS笔记Day02----使用vscode开发&launch文件_第3张图片
为你的功能包起一个名字后,后续再输入三个依赖:roscpp、rospy、 std_msgs

完成上述操作后可Ctrl + Shift + B 检验是否有错误

5.在功能包src文件下编写程序
功能包目录下src右键新建 .cpp 源文件,写代码:
ROS笔记Day02----使用vscode开发&launch文件_第4张图片
此时发现没有自动补齐代码功能,可以在:ROS笔记Day02----使用vscode开发&launch文件_第5张图片
此处修改为:c++17
6.编辑配置文件
修改Cmakelists.txt文件
注意! 此处Cmakelists.txt文件为功能包中的文件
ROS笔记Day02----使用vscode开发&launch文件_第6张图片
修改完成后即可Ctrl + Shift + B编译
在终端中启动roscore ROS笔记Day02----使用vscode开发&launch文件_第7张图片
在vscode中打开终端默认会在当前工作空间中,可以节省时间


PS:当输出中有中文出现乱码问题时:
ROS笔记Day02----使用vscode开发&launch文件_第8张图片

解决办法为:在代码中增加一句:setlocale(LC_ALL, “”);ROS笔记Day02----使用vscode开发&launch文件_第9张图片

此时可以看到问题已经解决啦

二.launch文件

引言:还记得我们安装完ros后验证是否安装成功的小乌龟程序吗,在此程序中如果我们要实现按键控制小乌龟移动一共需要启动三个节点,分别为:roscore(master),小乌龟界面显示节点,按键控制节点
这样逐个启动节点效率比较低下,官网给出的解决方法是使用launch文件,可以一次性启动多个节点

下面以乌龟程序为例
(在上面的demo02工作空间中演示)

  1. 在功能包中新建launch文件夹
  2. 在launch文件夹中新建start_turtle.launch文件
  3. 在launch文件中写入代码:
    ROS笔记Day02----使用vscode开发&launch文件_第10张图片
    代码是固定的格式:pkg后为包名 type后为节点名注意他要与Cmakelists.txt中修改的那个名字一样 name后为我们自己起的名字
    完成后Ctrl+s 保存代码
    要运行整个乌龟程序只需要source后启动launch文件:
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节点
ROS笔记Day02----使用vscode开发&launch文件_第11张图片
但执行过后却发现控制台没有输出,其实这里还需要添加一个属性 output
如果要将日志输出在屏幕上就需要添加该属性(华子找不到)
ROS笔记Day02----使用vscode开发&launch文件_第12张图片
修改完launch文件后保存,运行就可以得到啦
ROS笔记Day02----使用vscode开发&launch文件_第13张图片
今天就到这里啦,明天见

你可能感兴趣的:(笔记,c++,vscode,学习)