当前位置: 首页 > news >正文

ROS学习笔记(三):VSCode集成开发环境快速安装,以及常用扩展插件配置

文章目录

  • 前言
  • VSCode集成开发环境
  • 1 安装VSCode
  • 2 VSCode扩展插件
      • 2.1 VSCode扩展插件模块介绍
      • 2.1 常用扩展插件配置
        • 一、语言支持类插件
        • 二、智能辅助类插件
        • 三、科学计算与数据分析类插件
        • 四、ROS开发相关插件
  • 3 总结
    • 相关链接


前言

关于Ubuntu与ROS的常规安装,可以看这几篇。

  • SLAM实操入门(一):在已有WIN10的电脑上安装Ubuntu20.04
  • SLAM实操入门(二):安装ROS Noetic并运行“小乌龟”程序
  • ROS学习笔记(一):ROS1入门简明介绍(附详细注释)
  • ROS学习笔记(二):鱼香ROS — 超便捷的一键安装/配置/换源指令

本系列主要用来记录学习ROS的相关内容,本文为ROS操作系统简明概要。


VSCode集成开发环境

VSCode(Visual Studio Code)是一款由微软开发的轻量级、开源的代码编辑器,自推出以来便以其高性能、跨平台性和丰富的插件生态,成为全球开发者最受欢迎的编辑工具之一。

其多语言支持、强大的扩展能力以及内置调试功能,使其广泛应用于各类开发场景,尤其是嵌入式开发、机器人与自动驾驶开发等领域中有着丰富应用。

1 安装VSCode

使用鱼香ROS一键安装命令安装VSCode

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

鱼香ROS一键安装的开源地址为:

  • 小鱼的一键安装系列(社区地址)

安装方法可以参考:

  • ROS学习笔记(二):鱼香ROS — 超便捷的一键安装/配置/换源指令
    在这里插入图片描述
    根据提示安装完成后,VSCode就安装完成了

可以在菜单界面打开

在这里插入图片描述

2 VSCode扩展插件

2.1 VSCode扩展插件模块介绍

VSCode扩展插件系统是VSCode的一个核心特色,允许开发者通过插件扩展其功能,满足不同语言、框架、工具链的开发需求。这种灵活且强大的扩展能力,使VSCode不仅能作为轻量级的代码编辑器,还能够通过插件变为一个高度定制化的集成开发环境(IDE)。
在这里插入图片描述
VSCode中扩展插件(Extensions)是独立的、可安装的软件包,能够为VSCode添加新的功能和特性。插件可以由微软官方发布,也可以由社区开发者创建和维护。通过插件市场,用户可以方便地搜索、下载、安装、更新插件,并根据项目需求动态配置自己的开发环境。

在这里插入图片描述
通过VSCode的插件市场(Extensions Marketplace),用户可以直接搜索所需插件并进行安装。

点击VSCode侧边栏的扩展图标,输入关键字后即可查找插件点击安装后即可使用。

2.1 常用扩展插件配置

对于机器人、ROS、自动驾驶开发,合理配置扩展插件能够显著提升开发效率。本文将介绍几款常用的VSCode插件,并分类说明它们的作用及意义。

一、语言支持类插件
  1. Chinese (Simplified) Language
    作用:将VSCode的界面语言设置为简体中文,帮助中文用户更好地使用该编辑器。
    安装理由:对于习惯中文的开发者,这个插件能够提高使用体验,减少语言障碍,更专注于代码开发。

  2. C/C++
    作用:提供对C/C++语言的语法高亮、智能感知、代码片段、调试功能。
    安装理由:机器人、ROS和自动驾驶系统开发常常涉及底层C/C++代码,尤其是驱动程序、算法开发和系统控制部分。此插件为开发者提供了强大的调试和代码提示支持。

  3. CMake Tools
    作用:集成了CMake编译工具链,简化CMake项目的构建、编译、调试流程。
    安装理由:ROS及其相关工具链经常使用CMake进行构建。此插件能够方便管理CMakeLists.txt文件,帮助开发者在复杂的项目中快速进行编译和配置。

  4. Markdown
    作用:Markdown是编写文档和README文件的常用格式,Markdown All in One提供了一站式的Markdown语法高亮、预览和快捷操作。
    安装理由:在机器人开发中,记录项目文档、撰写报告、编写代码注释十分重要。此插件能让开发者轻松创建结构化的文档,提高文档编写效率。

二、智能辅助类插件
  1. GitHub Copilot
    作用:基于AI的代码补全工具,能够根据上下文预测并生成代码。
    安装理由:自动驾驶和机器人开发往往涉及复杂的算法和代码逻辑,GitHub Copilot可以为开发者提供智能代码建议,节省编写重复代码的时间,并帮助开发者快速搭建项目框架。

  2. IntelliCode
    作用:IntelliCode通过机器学习提供智能代码建议,帮助开发者完成复杂的代码编写任务。
    安装理由:在开发大型项目时,智能提示有助于提高代码质量和编写速度,尤其是在多文件、多模块的ROS项目中。这个插件还能根据团队的开发习惯进行优化,提供个性化建议。

三、科学计算与数据分析类插件
  1. Jupyter
    作用:支持Jupyter Notebook,提供Python的交互式开发环境,常用于数据分析、算法测试、机器学习模型训练。
    安装理由:机器人和自动驾驶系统往往需要进行大量的数据分析和算法验证。Jupyter插件在VSCode中集成了强大的Notebook环境,方便开发者在不离开编辑器的情况下进行代码编写和测试。
四、ROS开发相关插件
  1. ROS
    作用:提供对ROS1的支持,包含了ROS包管理、工作区构建、启动文件解析等功能。
    安装理由:对于从事机器人开发的用户,ROS1是主流的开源机器人操作系统之一。此插件能帮助开发者在VSCode中无缝进行ROS开发,进行工作区管理、调试和代码提示等操作。

  2. ROS 2
    作用:专为ROS 2开发的插件,支持ROS 2包的创建、构建和调试,帮助开发者快速适应ROS 2的开发流程。
    安装理由:随着ROS 2的逐渐普及,越来越多的机器人项目迁移到ROS 2平台。该插件使VSCode成为一个完整的ROS 2开发环境,适合自动驾驶、机器人领域的开发工作。

  3. MSG Language Support
    作用:为ROS中常用的消息类型文件(.msg、.srv、.action)提供语法高亮和智能感知支持。
    安装理由:在ROS开发中,消息定义是系统交互的核心。该插件帮助开发者快速理解和编写消息定义文件,简化了ROS消息通信系统的开发。


3 总结

总结来说,使用VSCode的这些扩展插件,可以打造一个高效的开发环境,非常适用于ROS、机器人和自动驾驶的开发场景。

这些插件能提高咱们码编写的便捷性,还增强了项目的调试、测试和管理功能,为开发者提供了全方位的支持。

相关链接

其他内容可参考:

  • SLAM实操入门(一):在已有WIN10的电脑上安装Ubuntu20.04
  • SLAM实操入门(二):安装ROS Noetic并运行“小乌龟”程序
  • ROS学习笔记(一):ROS1入门简明介绍(附详细注释)
  • ROS学习笔记(二):鱼香ROS — 超便捷的一键安装/配置/换源指令

相关文章:

ROS学习笔记(三):VSCode集成开发环境快速安装,以及常用扩展插件配置

文章目录 前言VSCode集成开发环境1 安装VSCode2 VSCode扩展插件2.1 VSCode扩展插件模块介绍2.1 常用扩展插件配置一、语言支持类插件二、智能辅助类插件三、科学计算与数据分析类插件四、ROS开发相关插件 3 总结相关链接 前言 关于Ubuntu与ROS的常规安装,可以看这几…...

论文精读--Two-Stream Convolutional Networks for Action Recognition in Videos

对于单张图片,丢进卷积和全连接层直接得出分类结果就行 但对于视频,早期的一些工作把视频中的一些关键帧抽取出来,把一个个帧通过网络,最后把结果合并,或者把帧叠起来,一起丢进网络。在网络中进行early fu…...

JAVA姓氏头像情侣头像家庭头像签名头像谐音顽埂头像设计小程序头像大全系统小程序源码

姓氏头像到谐音梗,打造你的专属头像大全系统 🎨✨ 👨‍👩‍👧‍👦 家庭头像:记录温馨瞬间 在这个充满爱的时代,用一张家庭头像来记录你和家人的美好瞬间吧!我们的“姓氏…...

UE5.4.3 Replay 重播回放系统

工程的配置文件DefaultEngine.ini中需要加入 +NetDriverDefinitions=(DefName=“DemoNetDriver”,DriverClassName=“/Script/Engine.DemoNetDriver”,DriverClassNameFallback=“/Script/Engine.DemoNetDriver”) 此步骤将启用并加载DemoNetDriver .ini添加示例 [/Script/En…...

深入掌握 Protobuf 与 RPC 的高效结合:实现C++工程中的高效通信

目录 一、Protobuf与RPC框架的通信流程概述二、Protobuf与RPC在C中的实际应用2.1 定义 .proto 文件2.2 编译 .proto 文件生成C代码2.3 实现服务器端逻辑2.4 实现客户端逻辑2.5 使用CMake构建工程2.6 编译与运行2.7 关键组件解析2.8 序列化与反序列化的实现 三、关键实现与解析四…...

录屏软件大比拼:四款必备工具助你轻松录制精彩瞬间!

哎呀,说到电脑录屏这事儿,我这个办公室小文员可是深有体会啊!平时工作里,经常需要录个会议啊、做个教程啊,或者分享个操作技巧给同事们看。市面上的录屏软件多得数不清,但我最常用的几款工具。今天就来跟大…...

计算机毕业设计宠物领养网站我的发布领养领养用户信息/springboot/javaWEB/J2EE/MYSQL数据库/vue前后分离小程序

目录 1.课题背景 2.课题意义 ‌ 3.技术介绍 4.技术性需求 4.1后端服务‌: 4.2 前端展示‌ 5.数据库设计‌: 6.系统性能‌: 7.安全性‌: 8. 功能介绍: 9. 部分代码 1.课题背景 近年来,随着宠物饲养数量…...

用示波器测动态滞回线

大学物理(下)实验-中南民族大学通信工程2022级 手动逐个处理数据较为麻烦且还要绘图,故想到用pythonmatplotlib来计算结果并数据可视化。 代码实现 import matplotlib.pyplot as plt# 样品一磁化曲线 X [0, 0.2, 0.4, 0.6, 0.8, 1, 1.5, 2.…...

【JDK动态代理】JDK动态代理:为何只能代理接口和接口实现类

在Java开发中,JDK动态代理是一种非常有用的技术,它允许开发者在不修改目标类代码的情况下,为目标类添加额外的功能。然而,JDK动态代理的使用有一些限制,特别是它只能代理接口和接口实现类。本文将深入探讨这一限制的原…...

MFC工控项目实例二十一型号选择界面删除参数按钮禁用切换

承接专栏《MFC工控项目实例二十手动测试界面模拟量输入实时显示》 对于禁止使用的删除、参数按钮,在选中列表控件选项时切换为能够使用。 1、在TypDlg.h文件中添加代码 #include "ShadeButtonST.h" #include "BtnST.h" class CTypDlg : publi…...

前端框架对比和选择指南

前端框架对比和选择指南 随着 Web 开发技术的快速发展,前端框架已经成为了现代 Web 开发的核心工具之一。它们为开发人员提供了快速构建高效、交互性强的应用的基础。当前流行的前端框架主要包括 React.js、Vue.js 和 Angular.js。在这篇技术博客中,我们…...

人工智能价格战——如何降低成本让人工智能更易于普及

十年前,开发人工智能 (AI) 是只有大公司和资金充足的研究机构才能负担得起的事情。必要的硬件、软件和数据存储成本非常高。但从那时起,情况发生了很大变化。一切始于 2012 年的 AlexNet,这是一种深度学习模型,展示了神经网络的真…...

企业间图文档发放:如何在保障安全的同时提升效率?

不管是大型企业,还是小型创业公司,不论企业规模大小,每天都会有大量的图文档发放,对内传输协作和对外发送使用,数据的生产也是企业业务生产力的体现之一。 伴随着业务范围的不断扩大,企业与客户、合作伙伴之…...

深入解析 ConcurrentHashMap:从 JDK 1.7 到 JDK 1.8

✨探索Java基础 ConcurrentHashMap✨ 引言 ConcurrentHashMap 是 Java 中一个线程安全的高效 Map 集合。它在多线程环境下提供了高性能的数据访问和修改能力。本文将详细探讨 ConcurrentHashMap 在 JDK 1.7 和 JDK 1.8 中的不同实现方式,以及它们各自的优缺点。 …...

VS code user setting 与 workspace setting 的区别

VS code user setting 与 workspace setting 的区别 引言正文引言 相信有不少开始接触 VS code 的小伙伴会有疑问,user setting 与 workspace setting 有什么区别呢?这里我们来说明一下 正文 首先,当我们使用 Ctrl + Shift + P 打开搜索输入 setting 后,可以弹出 4 个se…...

XPath基础知识点讲解——用于在XML中查找信息的语言

1. 什么是XPath? XPath(XML Path Language)是用于在XML(Extensible Markup Language)文档中查找信息的语言。它可以通过路径表达式来选择XML文档中的节点,类似于如何在文件系统中使用路径查找文件。XPath是…...

Visual Studio 2022

VS(Visual Studio)是一款由微软开发的集成开发环境(IDE),用于开发应用程序、网站以及移动应用等。VS的历史可以追溯到1997年,当时发布了第一个版本的VS。以下是VS的一些重要历史里程碑: Visual …...

微软Win11 22H2/23H2 九月可选更新KB5043145发布!

系统之家于9月27日发出最新报道,微软针对Windows11系统,发布了九月最新可选更新补丁KB5043145,22H2用户安装后,系统版本号升至22621.4249,23H2用户安装后升至22631.4249。本次更新修复了Edge使用IE模式有时会停止响应等…...

试试号称最好的7B模型(论文复现)

试试号称最好的7B模型(论文复现) 本文所涉及所有资源均在传知代码平台可获取 文章目录 试试号称最好的7B模型(论文复现)概述论文原理部署与复现推理微调adapter 融合 概述 Mistral 7B 是一个新型的具有 7.3 万亿参数的大语言模型。…...

CTF中文件包含

php伪协议的分类 伪协议是文件包含的基础,理解伪协议的原理才能更好的利用文件包含漏洞。 php://input php://input代表可以访问请求的原始数据,简单来说POST请求的情况下,php://input可以获取到post的数据。 使用条件:includ…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案

一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题&#xff1a; 指定音频引擎与设备&#xff1b;播放音频文件 本文所使用的环境&#xff1a; Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍

文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结&#xff1a; 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析&#xff1a; 实际业务去理解体会统一注…...

三体问题详解

从物理学角度&#xff0c;三体问题之所以不稳定&#xff0c;是因为三个天体在万有引力作用下相互作用&#xff0c;形成一个非线性耦合系统。我们可以从牛顿经典力学出发&#xff0c;列出具体的运动方程&#xff0c;并说明为何这个系统本质上是混沌的&#xff0c;无法得到一般解…...

Spring AI与Spring Modulith核心技术解析

Spring AI核心架构解析 Spring AI&#xff08;https://spring.io/projects/spring-ai&#xff09;作为Spring生态中的AI集成框架&#xff0c;其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似&#xff0c;但特别为多语…...

Kafka入门-生产者

生产者 生产者发送流程&#xff1a; 延迟时间为0ms时&#xff0c;也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于&#xff1a;异步发送不需要等待结果&#xff0c;同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...

【JVM面试篇】高频八股汇总——类加载和类加载器

目录 1. 讲一下类加载过程&#xff1f; 2. Java创建对象的过程&#xff1f; 3. 对象的生命周期&#xff1f; 4. 类加载器有哪些&#xff1f; 5. 双亲委派模型的作用&#xff08;好处&#xff09;&#xff1f; 6. 讲一下类的加载和双亲委派原则&#xff1f; 7. 双亲委派模…...