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++实现获取域名的IP地址

    c/c++实现获取域名的IP地址

    本文给大家汇总介绍了使用c/c++实现获取域名的IP地址的几种方法以及这些方法的核心函数gethostbyname的详细用法,非常的实用,有需要的小伙伴可以参考下。
    2015-11-11
  • C++中map和vector作形参时如何给定默认参数?

    C++中map和vector作形参时如何给定默认参数?

    今天小编就为大家分享一篇关于C++中map和vector作形参时如何给定默认参数?,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-04-04
  • C语言struct结构体介绍

    C语言struct结构体介绍

    C语言中,结构体类型属于一种构造类型(其他的构造类型还有:数组类型,联合类型),下面这篇文章主要给大家介绍了关于C语言结构体(struct)的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • opengl实现直线扫描算法和区域填充算法

    opengl实现直线扫描算法和区域填充算法

    这篇文章主要为大家详细介绍了opengl实现直线扫描算法和区域填充算法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • 基于VC实现的网络监听功能程序实例

    基于VC实现的网络监听功能程序实例

    这篇文章主要介绍了基于VC实现的网络监听功能程序,需要的朋友可以参考下
    2014-07-07
  • C++14 新特性之函数返回值类型推导

    C++14 新特性之函数返回值类型推导

    本文主要介绍了C++14 新特性之函数返回值类型推导,在模板编程和一些返回类型复杂或不易直接指明的情况下非常有用,下面就来具体介绍一下,感兴趣的可以了解一下
    2024-05-05
  • C++如何向Lambda传递参数与捕获

    C++如何向Lambda传递参数与捕获

    文章介绍了C++中向Lambda表达式传递参数和使用捕获列表的基本规则和示例,参数传递要求严格匹配类型和数量,而捕获列表允许Lambda访问外部变量,并可以按值或引用捕获,文章还讨论了捕获的陷阱和解决方案,以及参数传递与捕获列表的区别和应用场景,感兴趣的朋友一起看看吧
    2025-03-03
  • C语言实现链队列代码

    C语言实现链队列代码

    这篇文章主要为大家详细介绍了C语言实现链队列代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • C语言 坐标移动详解及实例代码

    C语言 坐标移动详解及实例代码

    这篇文章主要介绍了C语言 坐标移动详解及实例代码的相关资料,需要的朋友可以参考下
    2017-01-01
  • C++空类及没有成员变量的类的大小实例分析

    C++空类及没有成员变量的类的大小实例分析

    这篇文章主要介绍了C++空类及没有成员变量的类的大小,对于初学者更好的了解C++的指针及类的存储结构很有帮助,需要的朋友可以参考下
    2014-07-07

最新评论