Ubuntu Vs code配置ROS开发环境

文章目录

    • 1.开发环境
    • 2.集成开发环境搭建
      • 2.1 安装Ros
      • 2.2 安装 Vs code
      • 2.3 安装vs code 插件
    • 3.Vs code 配置ROS
      • 3.1 创建ROS工作空间
      • 3.2 从文件夹启动Vs code
      • 3.3 使用Vscode 编译ROS 空间
      • 3.4 使用Vs code 创建功能包
    • 4.编写简单Demo实例
      • 4.1编写代码
      • 4.2编译与执行

1.开发环境

系统:Ubuntu18.04

IDE:Vs code

2.集成开发环境搭建

2.1 安装Ros

推荐使用鱼香一键安装ros, 联网就行,按照提示选择即可

wget http://fishros.com/install -O fishros && . fishros

2.2 安装 Vs code

推荐在Ubuntu 软件工具下载,搜索点击安装即可

在这里插入图片描述

2.3 安装vs code 插件

推荐安装 C/C ++ 扩展 , Cmake Tools, ROS, Python , 以及中文插件

在这里插入图片描述

3.Vs code 配置ROS

3.1 创建ROS工作空间

mkdir -p xxx_ws/src
cd xxx_ws
catkin_make

3.2 从文件夹启动Vs code

使用code .命令就能直接从文件夹打开Vs code

cd xxx_ws
code .

3.3 使用Vscode 编译ROS 空间

快捷键 ctrl + shift + B 调用编译,选择:catkin_make:build

可以点击配置设置为默认,修改.vscode/tasks.json 文件

{
// 有关 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"
        }
    ]
}

保存之后,再按快捷键,就能直接编译整个空间了

在这里插入图片描述

3.4 使用Vs code 创建功能包

对着src文件夹右键就能看到最下面的 创建功能包

在这里插入图片描述

点击之后,会弹出两个窗口,首先输入名字,直接输入常用的依赖 一般使用roscpp rospy 等等

到此,整个工作空间就设置完毕了

4.编写简单Demo实例

4.1编写代码

在功能包下的src文件下,新建cpp文件

#include "ros/ros.h"
int main(int  argc,char *argv[]){
    ros::init(argc,argv,"hello");
    ROS_INFO("hello");
    return 0;
}

如果没有代码提示,或者提示有include波浪线

解决方案:打开整个文件目录的中.vscode文件夹,找到c_cpp_properties.json

设置 “cppStandard”: “c++17”

在这里插入图片描述

最后修改功能包下CMakeLists.txt 即可

如果按照了Cmake插件,文件内容会高亮显示

add_executable(节点名称
  src/C++源文件名.cpp
)
target_link_libraries(节点名称
  ${catkin_LIBRARIES}
)

4.2编译与执行

使用快捷键编译: ctrl + shift + B

执行的话,可以再Vs code中添加终端,执行设置环境变量

source ./devel/setup.bash

最后在终端执行rosrun

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/549848.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

(文章复现)分布式电源选址定容的多目标优化算法

参考文献: [1]夏澍,周明,李庚银.分布式电源选址定容的多目标优化算法[J].电网技术,2011,35(09):115-121. [2] Ye Tian, Ran Cheng, Xingyi Zhang, and Yaochu Jin, “PlatEMO: A MATLAB platform for evolutionary multi-objective optimization [educational for…

毕设论文的分类号与UDC查询

对于毕业论文分类号与UDC,可以根据个人研究领域查询。 中图分类号查询链接: 中图分类号查询 | 中国图书馆分类法 | 中图法 | 中图分类号 (clcindex.com)https://www.clcindex.com/category/ UDC查询链接: UDC Summaryhttps://udcsummary.info/php/ind…

探秘计算机内部的魔法:模拟计算机内部的怎么使用门电路实现运算的奥秘

1.前言 在当今数字时代,我们享受着计算机带来的便利和效率,但很少有人意识到在计算机背后的神秘世界。计算机内部运算的奥秘并非仅仅是一系列简单的加减乘除,而是依托着深奥的门电路与位运算符展开的神秘舞蹈。在这篇博客中,我们…

Web3与社会契约:去中心化治理的新模式

在数字化时代,技术不断为我们提供新的可能性,而Web3技术作为一种基于区块链的创新,正在引领着互联网的下一波变革。它不仅改变了我们的经济模式和商业逻辑,还对社会契约和权力结构提出了全新的挑战和思考。本文将深入探讨Web3的基…

OpenAI宣布GPT-4-Turbo全面升级,GPT-4 Turbo 新增视觉理解能力,可同时处理文本和图像信息

OpenAI宣布GPT-4-Turbo全面升级,GPT-4 Turbo with Vision新增视觉理解能力,可同时处理文本和图像信息,极大简化了开发流程。 OpenAI宣布GPT-4 Turbo全面升级!根据官方说法,这一波 GPT 的升级包括: 更长的上…

Buck变换电路

Buck变换电路 Buck变换电路是最基本的DC/DC拓扑电路,属于非隔离型直流变换器,其输出电压小于输入电压。Buck变换电路具有效率高、输出稳定、控制简单和成本低的优点,广泛应用于稳压电源、光伏发电、LED驱动和能量回收系统。 电路原理 Buck变…

bestvike --bvframe学习

ref title fetch后台api 分页属性,pagination 要差几条?pagelimit 在api中写一个饭方法,vue中用用他 vue.cinfig.js中配置别名 nacos微服务 实体类要继承basedata(封装了公共数据) 控制器autowired,getm…

【Java开发指南 | 第四篇】Java常量、自动类型转换、修饰符

读者可订阅专栏:Java开发指南 |【CSDN秋说】 文章目录 Java常量自动类型转换Java修饰符 Java常量 常量在程序运行时是不能被修改的。 在 Java 中使用 final 关键字来修饰常量,声明方式和变量类似: final double PI 3.1415927;自动类型转换…

大数据平台搭建2024(一)

一:基础配置 创建虚拟机并查出ip地址进行连接 ip a1.配置node01静态ip地址与主机名 vi /etc/sysconfig/network-scripts/ifcfg-ens33修改或添加如下内容: BOOTPROTO"static" ONBOOTyes #根据虚拟机网卡信息配置 IPADDR192.168.200.141 NET…

ENVI实战—一文学会使用GLT配准工具对风云数据进行几何校正

实验2:学会使用GLT配准工具 目的:完成气象卫星数据的校正,掌握利用GLT配准工具实验地理配准的方法 过程: ①读取影像:选择“文件”,选择“HS5”文件并打开,在弹出的科学数据集浏览器中&#x…

秘塔和Kimi AI在资料查询和学习中的使用对比

一、引言 最近老猿在网上查资料时,基本上都使用Kimi AI进行查询,发现其查询资料后总结到位,知识点的准确度较高。今天早上收到一个消息,说新推出的秘塔AI比Kimi更新进,老猿利用在学习的《统计知识学习》简单对比试用了…

JS算法题:找到数组中第 k 大的元素

问题描述: 给定一个未排序的整数数组,找到其中第 k 大的元素。注意,你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。 举个例子: 如果给定数组是 [3,2,1,5,6,4],k 是 2,那么第 2 大的元素…

每日OJ题_BFS解决FloodFill①_力扣733. 图像渲染

目录 BFS解决FloodFill简介 力扣733. 图像渲染 解析代码 BFS解决FloodFill简介 FloodeFill算法即填充算法,中文:洪水灌溉,算法原理就是从一个点开始向四周扩散,向周围可以走到的点填充颜色,直到将可扩散到的点全部填…

(踩坑)Please refer to 异常和Error creating bean with name 异常

一、Please refer to 异常 如图所示,在使用maven构建项目的时候,如果提示该错误,则可能是xml配置文件有问题或者测试类等。但是没有明确的异常信息,所以做以下小改动,可以查看异常信息。 在IDEA工具中,打…

【C/C++笔试练习】read函数、虚拟存储、用户态、线程特点、缺页处理、调度算法、进程优先级、锁的使用、创建进程、不用加减乘除做加法、三角形

文章目录 C/C笔试练习选择部分(1)read函数(2)虚拟存储(3)用户态(4)线程特点(5)缺页处理(6)调度算法(7)进程优先…

JDK1.8新特性

JDK8新特性 ​ Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机,Java 仍是企业和开发人员的首选开发平台 课程内容的介绍 了解Java发展史Lambda表达式…

数字人项目 ER-NeRF 的使用和部署详细教程

文章目录 1. ER-NeRF简介2. ER-NeRF部署3. 训练自己的数字人4. 生成数字人视频5. 其他数字人模型比较常见错误 1. ER-NeRF简介 ER-NeRF(官方链接)是一个Talking Portrait Synthesis(对嘴型)项目。即:给一段某人说话的…

微信小程序-长按显示,点击空白区域关闭

<view bind:tap"closeLongAction"><view bind:longpress"openAction></view><view wx:if"{{longActionIsShow}}"> 长按显示的区域 </view> </view>openAction(e) {console.log(322,e);this.setData({longActionI…

【解读】《中华人民共和国网络安全法》:所有IT从业者都应知应懂

随着网络的快速发展&#xff0c;当今社会存在的网络安全问题也是接踵而来&#xff1a;网络入侵、网络攻击等非法活动威胁信息安全&#xff1b;非法获取公民信息、侵犯知识产权、损害公民合法利益&#xff1b;宣扬恐怖主义、极端主义&#xff0c;严重危害国家安全和社会公共利益…

IDM2024破解版 IDM软件破解注册序列号 idm教程 idm序列激活永久授权 Internet Download Manager网络下载加速神器

你是不是感觉下载东西资源的时候&#xff0c;下载的非常慢&#xff0c;即便是五十兆的光纤依旧慢、是不是想下载网页上的视频但不知如何进行下载……这些问题是否一直在困扰着您&#xff0c;今日小编特意我大家带来了这款IDM 2024破解版。 众所周知&#xff0c;IDM是一款功能强…