使用VScode搭建ROS开发环境的教程详解

俗话说"工欲善其事必先利其器",之前在Ubuntu上运行的ROS项目都是用vim或者gedit编写和修改代码,然后在终端编译运行,很不方便,函数跳转查看都没办法实现。所以今天我决定找一个方便的开发工具,也就是找一个像Windows上的VS那样的集成开发工具(IDE),ROS官网上有一个不同IDE的对比文章,网址在这里

我选择使用VScode.下载安装好VScode后,在扩展栏安装C/C++CMakeCMake ToolsCode RunnerROS(deprecated)Chinese 这些插件.接下来用一个简单的话题发布栗子来演示操作过程

创建ROS工作环境

首先新建一个文件夹,我命名为test_ros,在该文件夹中打开终端,执行以下命令来创建ROS工作环境:

mkdir src && cd src
catkin_init_workspace
cd ../
catkin_make

然后在VScode中打开test_ros文件夹,此时的文件目录如下

右键单击src,选择Create Catkin Package,Package命名为helloworld

添加roscpp, rospy作为依赖项

之后src目录下会出现以下文件:

继续在src/helloworld/src目录下添加一个cpp文件,命名为helloworld.cpp,内容如下:

#include <iostream>
#include <string>
#include <sstream>
using namespace std;

#include "ros/ros.h"
#include "std_msgs/String.h"

int main(int argc, char** argv)
{
	ros::init(argc, argv, "talker");
	ros::NodeHandle n;
	ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);
	ros::Rate loop_rate(10);
	int count = 0;
	while(ros::ok())
	{
		std_msgs::String msg;
		std::stringstream ss;
		ss << "hello world " << count;
		msg.data = ss.str();
		ROS_INFO("%s", msg.data.c_str());
		chatter_pub.publish(msg);
		ros::spinOnce();
		loop_rate.sleep();
		count++;
	}
	return 0;
}

此时会提示找不到ros/ros.hstd_msgs/String.h,我们继续通过后面的步骤来解决.

配置.json文件

接下来配置c_cpp_properties.json,launch.json,tasks.json分别如下:

c_cpp_properties.json,用于指定C/C++类库和包含路径以及配置

按住Fn+F1,找到C/C++:编辑配置(JSON)

之后就会生产c_cpp_properties.json文件,修改文件内容如下:

{
  "configurations": [
    {
      "name": "Linux",
      "includePath": [
        "${workspaceFolder}/**",
        "/opt/ros/melodic/include"
      ],
      "defines": [],
      "compilerPath": "/usr/bin/gcc",
      "cStandard": "c11",
      "cppStandard": "c++17",
      "intelliSenseMode": "clang-x64",
      "compileCommands": "${workspaceFolder}/build/compile_commands.json"
    }
  ],
  "version": 4
}

其中/opt/ros/melodic/include为ROS相关头文件所在的路径,此时可能仍然找不到ros/ros.hstd_msgs/String.h,继续运行以下命令即可在build文件夹下生成compile_commands.json文件

catkin_make -DCMAKE_EXPORT_COMPILE_COMMANDS=1

然后就可以找到ros/ros.hstd_msgs/String.h

launch.json,用于调试

按住Fn+F5启动调试,就会生成launch.json,修改launch.json文件内容如下:

{
  // 使用 IntelliSense 了解相关属性。
  // 悬停以查看现有属性的描述。
  // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
  "version": "0.2.0",
  "configurations": [
      {
      "name": "(gdb) Launch",
      "type": "cppdbg",
      "request": "launch",
      "program": "${workspaceFolder}/build/helloworld/helloworld",// 表示可执行程序所在的路径,其中,${workspaceRoot}表示VScode加载的文件夹的根目录
      "args": [],
      "stopAtEntry": false,
      "cwd": "${workspaceFolder}",
      "environment": [],
      "externalConsole": false,
      "MIMode": "gdb",
      "setupCommands": [
        {
          "description": "Enable pretty-printing for gdb",
          "text": "-enable-pretty-printing",
          "ignoreFailures": true
        }
      ],
      //"preLaunchTask": "make build"//最好删了,不然会影响调试,每次调试都直接执行make build
    }
  ]
}

tasks.json,用于编译

按住Fn+F1,找到任务:配置任务,创建tasks.json文件,修改tasks.json文件内容如下:

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "catkin_make", //代表提示的描述性信息
      "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"
    },
  ]
}

修改CMakeLists.txt

继续修改src/helloworld/CMakeLists.txt文件,在其中添加以下程序:

# 头文件路径
include_directories(
include
 ${catkin_INCLUDE_DIRS}
)
# 生成可执行文件
add_executable( helloworld src/helloworld.cpp )
# 链接库
target_link_libraries(helloworld ${catkin_LIBRARIES})

结果测试

按住Ctrl+Shift+B编译该程序,就可以看到与catkin_make一样的编译过程

最后测试生成的可执行文件.新开一个终端,运行ROS的master节点,然后按住Fn+F5运行生成的可执行文件,结果如下;

在另一个终端中输出该程序发布的话题:

这样,VScode的ROS开发环境就搭建好了

参考

ros项目调试:vscode下配置开发ROS项目

到此这篇关于使用VScode搭建ROS开发环境的教程详解的文章就介绍到这了,更多相关VScode搭建ROS开发环境内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 使用sklearn的cross_val_score进行交叉验证实例

    在构建模型时,调参是极为重要的一个步骤,因为只有选择最佳的参数才能构建一个最优的模型.但是应该如何确定参数的值呢?所以这里记录一下选择参数的方法,以便后期复习以及分享. (除了贝叶斯优化等方法)其它简单的验证有两种方法: 1.通过经常使用某个模型的经验和高超的数学知识. 2.通过交叉验证的方法,逐个来验证. 很显然我是属于后者所以我需要在这里记录一下 sklearn 的 cross_val_score: 我使用是cross_val_score方法,在sklearn中可以使用这个方法.交叉验证的原

  • 细数nn.BCELoss与nn.CrossEntropyLoss的区别

    以前我浏览博客的时候记得别人说过,BCELoss与CrossEntropyLoss都是用于分类问题.可以知道,BCELoss是Binary CrossEntropyLoss的缩写,BCELoss CrossEntropyLoss的一个特例,只用于二分类问题,而CrossEntropyLoss可以用于二分类,也可以用于多分类. 不过我重新查阅了一下资料,发现同样是处理二分类问题,BCELoss与CrossEntropyLoss是不同的.下面我详细讲一下哪里不同. 1.使用nn.BCELoss需要在

  • new_zeros() pytorch版本的转换方式

    如下所示: logprobs.new_zeros(logprobs.size()) pytorch 0.4版本中用到的 新建一个与logprobs类型相同的Variable 转换为pytorch0.2等版本 logprobs.new(logprobs.size()).zero_() 以上这篇new_zeros() pytorch版本的转换方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • VS2019配置OpenCV时找不到Microsoft.Cpp.x64.user的解决方法

    最近在配置OpenCV的时候,由于使用的是VS2019,结果找不到Microsoft.Cpp.X64.user这个文件.导致每次新建项目都得重新配置一遍,后来特意下载了vs2017,把下面这些文件拷到对应目录,就解决了. 下面附上三个文件的内容,只要按照上面目录,把文件放进去就可以了. Microsoft.Cpp.ARM.user.props <?xml version="1.0" encoding="utf-8"?> <Project Defau

  • 使用VScode搭建ROS开发环境的教程详解

    俗话说"工欲善其事必先利其器",之前在Ubuntu上运行的ROS项目都是用vim或者gedit编写和修改代码,然后在终端编译运行,很不方便,函数跳转查看都没办法实现.所以今天我决定找一个方便的开发工具,也就是找一个像Windows上的VS那样的集成开发工具(IDE),ROS官网上有一个不同IDE的对比文章,网址在这里 我选择使用VScode.下载安装好VScode后,在扩展栏安装C/C++,CMake,CMake Tools,Code Runner,ROS(deprecated),Chinese

  • Anaconda+VSCode配置tensorflow开发环境的教程详解

    1. Anaconda 1.1 Anaconda简介 Anaconda是一个开源的python发行版本,是现在比较流行的python数据科学平台,可以对python的科学包做到有效管理.在配置python开发环境时,比如爬虫环境.数据分析环境.深度学习开发环境(tensorflow)等,会需要安装很多科学包.如果遇到什么包就报出"No module named"的错误,然后"pip install"未免太过麻烦.而且很多开发环境支持的python版本不同,混在一起的

  • 使用 Docker 搭建 Laravel 本地环境的教程详解

    Laravel 官方提供 Homestead 和 Valet 作为本地开发环境,Homestead 是一个官方预封装的 Vagrant Box,也就是一个虚拟机,但是跟 docker 比,它占用体积太大,启动速度慢,同时响应速度很慢,现在有了 docker 这种更好的方式,可以轻松方便的搭建整套 PHP 开发环境. 本文就介绍如何使用 docker 搭建 Laravel 本地环境. 安装 docker 首先安装 docker. 克隆 laradock laradock 官方文档: http://

  • visual studio code 配置C++开发环境的教程详解 (windows 开发环境)

    0 引言 最近帮GF(不幸变成ex了)配置C++开发环境,一开始想给她装个visual studio13完事,但是一想到自己安装以及使用时的诸多麻烦,就有点退却,觉得没有这个必要.正好了解到vscode大行其道,决定按照官网指示配置一版.由于本人非计算机科班出身,对编译原理了解不多,在配置环境的时候遇到了一些麻烦,参照网上的诸多教程,最后发现还是官网比较靠谱,所以结合自己配置的教训,写个帖子,希望能够帮到大家. 1 下载安装vscode 下载网址链接如下. https://code.visual

  • docker在win10家庭版下构建laravel开发环境的教程详解

    操作系统: win10 家庭版 安装docker: 官网下载的docker无法安装成功,提示操作系统版本问题~~~~ 所以直接下载了阿里提供的docker安装包: http://mirrors.aliyun.com/doc ... 社区版是-ce后缀的 阿里镜像加速 首先登录阿里云 查找容器镜像服务 win10找到C:Users用户.dockermachinemachinesdefault底下有个config.json文件,在属性RegistryMirror添加加速器地址,docker虚拟机重启

  • 使用IntelliJ IDEA 配置安卓(Android)开发环境的教程详解(新手必看)

      上移动端的测试课,老师和同学们用的都是eclipse, 只有我一个人用的是idea(用了两款软件之后觉得IDEA更好),真的太难了,配置环境就只有一个人孤军奋战了,自己选择的路,爬都要爬完,害!   有大佬推荐我用Android studio,去了解了一下,这个软件也不错,考虑到已经用了IDEA那就用吧. 操作环境和基本配置 操作环境:Win 10 基本环境配置:Java 1.8 基本工具:IDEA(自行下载安装购买,支持正版!) 一.jdk的下载安装与配置 1.1下载安装 jdk的官网下载

  • IntelliJ IDEA基于SpringBoot如何搭建SSM开发环境的步骤详解

    之前给大家在博文中讲过如何通过eclipse快速搭建SSM开发环境,但相对而言还是有些麻烦的,今天玄武老师给大家介绍下如何使用IntelliJ IDEA基于SpringBoot来更快速地搭建SSM开发环境,相比于传统搭建方式,极少的配置文件和配置信息会让你彻底爱上它. 环境搭建步骤详解 第1步:创建Spring Initializr项目 在IntelliJ IDEA中新建项目,选择Spring Initializr,JDK版本选择自己安装的版本(首次使用可能显示没有,那么就点击New去按照步骤创

  • win10环境下配置vscode python开发环境的教程详解

    前言 VScode是一个相当优秀的IDE,具备开源.跨平台.模块化.插件丰富.启动时间快.颜值高.可高度定制等等优秀的特质,不愧是微软爸爸的私生子. 所以用VScode来编写Python,也是相当的好用的. 1:安装python,我安装的是python3.7(注意python安装的时候要点击上add path的选型,即安装的时候顺便在windows系统上注册了python安装的路径) 2:安装vscode 3:vscode安装比较常用的插件: 4:设置vscode:添加python的路径(可以支

  • 在Mac OS下搭建LNMP开发环境的步骤详解

    一.概述 大家应该都知道LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构.Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统.代表版本有:debian.centos.ubuntu.fedora.gentoo等.Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器.Mysql是一个小型关系型数据库管理系统.PHP是一种在服务器端执行的嵌入HTML文档的脚本语言.这四种软件均为免费开源软件,组合到一

  • vscode搭建STM32开发环境的详细过程

    需要安装的软件 vscode 必装插件: C/C++:用于提供高亮显示和代码补全 Cortex-Debug:用于提供调试配置 make make工具可以直接下载xPack项目提供的windows-build-tools工具里面带了make工具. Release xPack Windows Build Tools v4.2.1-2 · xpack-dev-tools/windows-build-tools-xpack (github.com) openocd arm-none-eabi stm32

随机推荐