ubuntu20.04中vscode使用ROS的详细方法

 更新时间:2022年10月10日 15:19:02   作者:szucmce皆可  
这篇文章主要介绍了ubuntu20.04 vscode使用ROS的详细方法,主要包括在vscode安装扩展创建工作文件夹的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

ubuntu20.04 vscode使用ROS(C++)

1.在vscode安装扩展

ROS的安装较为麻烦,需要的@我,我单独出一份教程

在vscode的左边中的拓展(快捷键Ctrl+Shift+X)中搜索并添加以下拓展

· C/C++

· CMake

· ROS

2. 创建工作文件夹

2.1 快捷键打开终端 ctrl+alt+t

2.2 新建文件夹 mkdir -p test_ros/src

2.3 进入新建的文件夹 cd test_ros

2.4 编译catkin_make

如果有多个版本 python, 输入:

catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3

2.5 输入code打开vscode,点击文件-打开文件夹,选择刚刚新建的test_ros文件夹

3.新建ros工程

3.1 右键点击src文件夹,选择Create Catkin Package

3.2 Package name是自定义的,在运行时用到,这里命名为ros_test

3.3 Dependecies中输入std_msgs rospy roscpp

以上两步等同于在命令行中输入

catkin_create_pkg ros_test std_msgs rospy roscpp

4.修改配置文件

4.1 c_cpp_properties.json

快捷键Ctrl+Shift+p, 找到C/C++: 编辑配置 或者 C/C++: Edit configurations(JSON)

修改如下

// 指定C/C++类库和包含路径以及配置
{
  "configurations": [
    {
      "browse": {
        "databaseFilename": "${default}",
        "limitSymbolsToIncludedHeaders": false
      },
      "includePath": [
        "/opt/ros/noetic/include/**", //注意要跟所安装的ROS路径一致
        "/usr/include/**"
      ],
      "name": "ROS",
      "intelliSenseMode": "gcc-x64",
      "compilerPath": "/usr/bin/gcc",
      "cStandard": "gnu11",
      "cppStandard": "c++14",
      "compileCommands": "${workspaceFolder}/build/compile_commands.json"
    }
  ],
  "version": 4
}

4.2 tasks.json

快捷键Ctrl+Shift+p, 找到任务:配置任务 或者 Tasks: Configure task,选哪项都可以,因为要修改

// 指定catkin_make编译参数
{
    "tasks": [
        {
            "label": "catkin_make: build",
            "type": "shell",
            "command": "catkin_make",
            "args": [
                "--directory",
                "/home/jawenos/project/test_ros",// 注意文件路径
                "-DCMAKE_BUILD_TYPE=Debug" // 注意这里是debug
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "problemMatcher":"$catkin-gcc"
        }
    ],
    "version": "2.0.0"
}

4.3 launch.json

在vscode的左边栏中运行与调试(快捷键Ctrl+Shift+D)创建launch.json,
修改如下:

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "ros_test",
            "type": "cppdbg",
            "request": "launch",
            //表示可执行文件所在路径。workspaceFolder表示vscode所加载文件根目录
            "program": "${workspaceFolder}/devel/lib/ros_test/ros_test",
            "args": [],
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": false
                }
            ],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            
        }
    ]
}

5.cpp文件

5.1 首先在ros_test文件夹中的src文件夹中新建一个C++文件 ros_test.cpp,在其中写入

#include<iostream>
#include"ros/ros.h"
using namespace std;
int main(int argc, char** argv){
    ROS_INFO("hello");
    return 0;
}

5.2 修改ros_test中的CMakeList文件

cmake_minimum_required(VERSION 3.0.2)
project(ros_test)
find_package(catkin REQUIRED COMPONENTS
  roscpp
  rospy
  std_msgs
)
catkin_package(
 CATKIN_DEPENDS roscpp rospy std_msgs
)
include_directories(
# include
  ${catkin_INCLUDE_DIRS}
)
add_executable(ros_test src/ros_test.cpp)

target_link_libraries(ros_test
  ${catkin_LIBRARIES}
)

5.3 点击vscode上方终端,新建终端,catkin_make重新编译一次文件,再输入roscore启动ROS,最后到ros_test.cpp中F5开始调试即可

到此这篇关于ubuntu20.04 vscode使用ROS的文章就介绍到这了,更多相关ubuntu vscode使用ROS内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解C语言之缓冲区溢出

    详解C语言之缓冲区溢出

    缓冲区是一块连续的计算机内存区域,可保存相同数据类型的多个实例。缓冲区可以是堆栈、堆和静态数据区。在C/C++语言中,通常使用字符数组和malloc/new实现缓冲区。溢出指数据被添加到分配给该缓冲区的内存块之外。缓冲区溢出是最常见的程序缺陷
    2021-06-06
  • C语言中实现itoa函数的实例

    C语言中实现itoa函数的实例

    这篇文章主要介绍了C语言中实现itoa函数的实例的相关资料,希望通过本文能帮助到大家,让大家实现这样的功能,需要的朋友可以参考下
    2017-10-10
  • C语言数据类型与sizeof关键字

    C语言数据类型与sizeof关键字

    这篇文章主要介绍了C语言数据类型与sizeof关键字,C语言的数据类型包括基本类型、构造类型、指针类型以及空类型,下文更多相关内容需要的小伙伴可以参考一下
    2022-04-04
  • Qt QDateTime计算时间差的实现示例

    Qt QDateTime计算时间差的实现示例

    本文主要介绍了Qt QDateTime计算时间差的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • 一篇文章了解c++中的new和delete

    一篇文章了解c++中的new和delete

    C语言提供了malloc和free两个系统函数,完成对堆内存的申请和释放,而C++则提供了两个关键字new和delete,下面这篇文章主要给大家介绍了如何通过一篇文章了解c++中new和delete的相关资料,需要的朋友可以参考下
    2021-12-12
  • Qt中控件的函数使用教程分享

    Qt中控件的函数使用教程分享

    这篇文章主要为大家详细介绍了Qt中部分控件(Text Edit编辑框、Combo Box下拉框、List Wiget和Label)函数的使用,感兴趣的小伙伴可以了解一下
    2022-12-12
  • Java C++ 算法题解leetcode145商品折扣后最终价格单调栈

    Java C++ 算法题解leetcode145商品折扣后最终价格单调栈

    这篇文章主要介绍了Java C++ 算法题解leetcode145商品折扣后最终价格单调栈示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • C++解决大数组栈内存不够问题的方法分析

    C++解决大数组栈内存不够问题的方法分析

    这篇文章主要介绍了C++解决大数组栈内存不够问题的方法,结合实例形式对比分析了C++针对大数组栈内存不足情况的常见解决方法及其优缺点,具有一定参考借鉴价值,需要的朋友可以参考下
    2018-05-05
  • C++中vector的实现方法示例详解

    C++中vector的实现方法示例详解

    这篇文章主要介绍了C++中vector实现的相关资料,vector是C++中重要的容器之一,底层通过三个迭代器实现,分别是_start, _finish, 和_end_of_storage,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-10-10
  • C语言编程银行ATM存取款系统实现源码

    C语言编程银行ATM存取款系统实现源码

    这篇文章主要为大家介绍了C语言编程银行ATM存取款系统实现的源码示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-11-11

最新评论