1.4 ROS2集成开发环境搭建

1.4.1 安装VSCode

VSCode全称Visual Studio Code,是微软推出的一款轻量级代码编辑器,免费、开源而且功能强大。它支持几乎所有主流的程序语言的语法高亮、智能代码补全、自定义热键、括号匹配、代码片段、代码对比Diff、GIT 等特性,支持插件扩展,并针对网页开发和云端应用开发做了优化。软件跨平台支持Win、Mac以及Linux。

1.下载

vscode下载:https://code.visualstudio.com/Download。

历史版本下载链接:https://code.visualstudio.com/updates。

2.vscode 安装与卸载
2.1 安装

方式1:双击安装即可(或右击选择安装);

方式2:sudo dpkg -i xxxx.deb

2.2 卸载
sudo dpkg --purge  code
3.VSCode启动

VSCode启动也比较简单,可以直接在Show Applications(显示应用程序) 中搜索VSCode直接启动(也可以将其添加到收藏夹)。

或者,也可以在终端下进入需要被打开的目录(比如:前面创建的ROS2工作空间ws00_helloworld),然后输入命令:code .

4.VSCode插件

VSCode支持插件扩展,依赖于VSCode丰富多样的插件,可以大大提高程序开发效率,为了方便ROS2程序开发,我们也需要安装一些插件。

首先点击侧边栏的Extensions(插件)选项或者使用快捷键Ctrl+Shift+X打开插件窗口,本课程建议安装的插件如下:

当然,上述只是部分推荐插件,大家可以根据自身需求安装其他扩展。

5.VSCode配置

在VSCode中,cpp文件中的#include "rclcpp/rclcpp.hpp"包含语句会抛出异常,这是因为没有设置VSCode配置文件中 includepath属性,可以按照如下步骤解决此问题:

  1. 将鼠标移到错误提示语句,此时会出现弹窗;
  2. 点击弹窗中的快速修复,会有新的弹窗,再点击编辑"includePath"设置
  3. 在新页面中,包含路径属性对应的文本域中,换行输入被包含的路径/opt/ros/humble/include/**

至此,问题修复。

VSCode安装并配置完毕后,大家就可以在其中编写ROS2程序了。当然为了提高编码效率,我们会经常性的使用到一些快捷键,VSCode的快捷键可以在菜单栏的“帮助”中查看。

1.4.2 安装终端

在ROS2中,需要频繁的使用到终端,且可能需要同时开启多个窗口,推荐一款较为好用的终端:Terminator。效果如下:

1.安装
sudo apt install terminator
2.启动

可以直接在Show Applications(显示应用程序) 中搜索terminator直接启动(也可以将其添加到收藏夹);或者,也可以直接使用快捷键Ctrl+Alt+T启动。

3.Terminator 常用快捷键

第一部份:关于在同一个标签内的操作

Alt+Up                          //移动到上面的终端
Alt+Down                        //移动到下面的终端
Alt+Left                        //移动到左边的终端
Alt+Right                       //移动到右边的终端
Ctrl+Shift+O                    //水平分割终端
Ctrl+Shift+E                    //垂直分割终端
Ctrl+Shift+Right                //在垂直分割的终端中将分割条向右移动
Ctrl+Shift+Left                 //在垂直分割的终端中将分割条向左移动
Ctrl+Shift+Up                   //在水平分割的终端中将分割条向上移动
Ctrl+Shift+Down                 //在水平分割的终端中将分割条向下移动
Ctrl+Shift+S                    //隐藏/显示滚动条
Ctrl+Shift+F                    //搜索
Ctrl+Shift+C                    //复制选中的内容到剪贴板
Ctrl+Shift+V                    //粘贴剪贴板的内容到此处
Ctrl+Shift+W                    //关闭当前终端
Ctrl+Shift+Q                    //退出当前窗口,当前窗口的所有终端都将被关闭
Ctrl+Shift+X                    //最大化显示当前终端
Ctrl+Shift+Z                    //最大化显示当前终端并使字体放大
Ctrl+Shift+N or Ctrl+Tab        //移动到下一个终端
Ctrl+Shift+P or Ctrl+Shift+Tab  //Crtl+Shift+Tab 移动到之前的一个终端

第二部份:有关各个标签之间的操作

F11                             //全屏开关
Ctrl+Shift+T                    //打开一个新的标签
Ctrl+PageDown                   //移动到下一个标签
Ctrl+PageUp                     //移动到上一个标签
Ctrl+Shift+PageDown             //将当前标签与其后一个标签交换位置
Ctrl+Shift+PageUp               //将当前标签与其前一个标签交换位置
Ctrl+Plus (+)                   //增大字体
Ctrl+Minus (-)                  //减小字体
Ctrl+Zero (0)                   //恢复字体到原始大小
Ctrl+Shift+R                    //重置终端状态
Ctrl+Shift+G                    //重置终端状态并clear屏幕
Super+g                         //绑定所有的终端,以便向一个输入能够输入到所有的终端
Super+Shift+G                   //解除绑定
Super+t                         //绑定当前标签的所有终端,向一个终端输入的内容会自动输入到其他终端
Super+Shift+T                   //解除绑定
Ctrl+Shift+I                    //打开一个窗口,新窗口与原来的窗口使用同一个进程
Super+i                         //打开一个新窗口,新窗口与原来的窗口使用不同的进程

 

1.4.3 安装git

Git 是一个免费和开源的分布式版本控制系统,旨在高速高效的处理从小型到大型项目的所有内容。在Ubuntu下可以调用如下命令安装git:

sudo apt install git

在本教程中会经常使用git clone 仓库地址的方式来将Git仓库拷贝到本地。

关于git工具使用可以在终端下输入:git --help查看帮助文档。关于git的其他详细信息请参考:https://git-scm.com/

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

7.3数据库第一次作业

安装MySQL 1.打开安装包 2.选择自定义安装(custom)并点击下一步 3.自定义安装路径 4.点击执行 5.执行成功 6.默认选项点击下一步 7.选择新的授权方式并点击下一步 8.配置密码 9.默认配置并点击下一步 10.点击执行(Execute) 11.执…

python中的文件

1.什么是文件? 硬盘上存储的数据都是以文件的形式来组织的~ 文件是数据在硬盘上的存储形式,不同的数据在硬盘上的存储形式是不同的, 2.文件路径 文件夹/目录。 文件夹,再包含文件夹的情况,这就是一个嵌套的关系&…

2024-2025年本田维修电路图线路图接线图资料更新

此次更新了2024-2025年本田车系电路图资料,覆盖市面上99%车型,包括维修手册、电路图、新车特征、车身钣金维修数据、全车拆装、扭力、发动机大修、发动机正时、保养、电路图、针脚定义、模块传感器、保险丝盒图解对照表位置等等! 汽修帮手汽…

Java中使用arima预测未来数据

看着已经存在的曲线图数据,想预估下后面曲线图的数据。 import java.util.Vector;public class AR {double[] stdoriginalData{};int p;ARMAMath armamathnew ARMAMath();/*** AR模型* param stdoriginalData* param p //p为MA模型阶数*/public AR(double [] stdori…

你的硬盘知道的太多:你以为你的秘密真的被删除了吗?

某一天你收到了朋友发给你的一个秘密文件,在看完之后,为了不被别人发现,你决定将文件毁尸灭迹! 你选中文件名称 / 右键 / 删除,好了,文件已经消失了。但你是懂电脑的,知道文件此时还在回收站里面…

海外虚拟卡开卡平台有哪些?无限开卡,无其他限制

随着时代的发展很多小伙伴都需要海外虚拟卡,海外虚拟卡开卡平台我这里用的是Fomepay的,他们比较人性化,有客服,随时可咨询 对于消费者而言,虚拟卡号提供了隐私,因此广告商更难以跟踪和定位购买行为&#x…

《python程序语言设计》2018版第5章第50题利用turtle编程显示三角形图案

2024.06.18 05.50.01version 首先我觉得还是应该现从简单阵列来进行。非常简单。顺便回忆一下我3月份做的5.19题里那些淘气的数列 代码成功 #将i从10设计成12打印的毕竟好看 for i in range(1,12):#这这里给结尾的i2效果并不好看for j in range(1,i):print(j,end" "…

【深度学习】Transformer

李宏毅深度学习笔记 https://blog.csdn.net/Tink1995/article/details/105080033 https://blog.csdn.net/leonardotu/article/details/135726696 https://blog.csdn.net/u012856866/article/details/129790077 Transformer 是一个基于自注意力的序列到序列模型,与基…

软件测试与质量保证 | 云班课选择题库

目录 第1章课后习题 第2章课后习题 第3章课后习题 第4章课后习题 第5章课后习题 第6章课后习题 第7章课后习题 第8章课后习题 第9章课后习题 第10章课后习题 第11章课后习题 第12章课后习题 第13章 测试相关未分类习题 第1章课后习题 1. 与质量相关的概念包括 &a…

可充电纽扣电池ML2032充电电路设计

如图,可充电纽扣电池ML2032充电电路设计。 图中二极管是为了防止电流倒灌, 电阻分压出3.66v,再减掉二极管压降(约0.4v)得3.26V,加在电池正负极充电。 随着电池电量的积累,充电电流逐步减小,极限…

什么样的企业适合SD-WAN网络专线?

SD-WAN(Software-Defined Wide Area Network,软件定义广域网)是一种网络技术,它利用软件定义的方式管理和控制广域网(WAN),旨在提高网络效率、降低成本并简化网络管理。以下是适合采用SD-WAN网络…

服务器之BIOS基础知识总结

1.BIOS是什么? BIOS全称Basic Input Output System,即基本输入输出系统,是固化在服务器主板的专用ROM上,加载在服务器硬件系统上最基本的运行程序,它位于服务器硬件和OS之间,在服务器启动过程中首先运行&am…

HUAWEI MPLS 静态配置和动态LDP配置

MPLS(Multi-Protocol Label Switching,多协议标签交换技术)技术的出现,极大地推动了互联网的发展和应用。例如:利用MPLS技术,可以有效而灵活地部署VPN(Virtual Private Network,虚拟专用网),TE(Traffic Eng…

pdf怎么拆分成一页一页?4种拆分方法分享

在日常的办公学习中,PDF文档因其跨平台、易阅读、不易篡改等特性,成为我们工作和学习中不可或缺的一部分。然而,当我们需要对PDF进行编辑、打印或分享时,有时需要将整个PDF文档拆分成一页一页的单独文件。那么,如何高效…

2024 AIGC 技术创新应用研讨会暨数字造型设计师高级研修班通知

尊敬的老师、领导您好! 为深入响应国家关于教育综合改革的战略部署,深化职业教育、高等教育改革,发挥企业主体重要作用,促进人才培养供给侧和产业需求侧结构要素全方位融合,充分把握人工智能创意式生成(AIGC)技术在教育领域的发展…

初学Spring之 IOC 控制反转

Spring 是一个轻量级的控制反转&#xff08;IOC&#xff09;和面向切面编程&#xff08;AOP&#xff09;的框架 导入 jar 包&#xff1a;spring-webmvc、spring-jdbc <dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc&l…

HTTPS数字证书验证论述

1 概述 网络请求方式通常分为两种&#xff0c;分别是HTTP请求和HTTPS请求&#xff0c;其中HTTP的传输属于明文传输&#xff0c;在传输的过程中容易被人截取并且偷窥其中的内容&#xff0c;而HTTPS是一种在HTTP的基础上加了SSL/TLS层&#xff08;安全套接层&#xff09;的安全的…

Ubuntu24.04 Isaacgym的安装

教程1 教程2 教程3 1.下载压缩包 link 2. 解压 tar -xvf IsaacGym_Preview_4_Package.tar.gz核心教程在 isaacgym/docs/install.html下 3. 从源码安装 Ubuntu24.04还需首先进入虚拟环境 python -m venv myenv # 创建虚拟环境&#xff0c;已有可跳过 source myenv/bin/a…

Redis持久化详解

【关闭文件、AOF 刷盘、释放内存这三个任务都有各自的任务队列】所以不是单线程 Redis有两种持久化方案&#xff1a; RDB持久化 AOF持久化 基于Redis集群解决单机Redis存在的问题 【Redis是单进程的】 【也有人做分布式section】 【主从集群中多个从就是做负载均衡的】 …

while陈述

回圈是用来进行进行重复性的工作&#xff0c;典型的回圈会进行下列三项基本任务 1. 控制变数初始设定2. 回圈结束条件测试3. 调整控制变数的值 关键字 while构成C 中回圈的一种&#xff0c;常用于没有确定重复次数的回圈&#xff0c;同时while后面接着小括弧为回圈结束的条件…