VMware+Ubuntu+VScode+ROS一站式教学+常见问题解决

目录

一.VMware的安装

二.Ubuntu下载

1.前言

2.Ubuntu版本选择

三.VMware中Ubuntu的安装

四.Ubuntu系统基本设置

1.中文更改

2.中文输入法更改

3. 辅助工具 vmware tools 

五.VScode的安装+ros基本插件

1.安装

2.ros辅助插件下载

六.ROS安装

1.安装ros

2.配置ROS环境变量

3.ROS经典案例乌龟教程

(1)启动ros

(2)启动图形端

(3)启动控制端

七.VScode集成ros

1.插件准备

2.项目创建

(1)工作空间创建

(2)环境配置

1.编译

2.前置准备

3.运行

(1)官方版运行方法

(2)vscode内部命令

(3)最终结果

八.常见问题解决

1.未启动ros就运行

2.ros路径报错


一.VMware的安装

这个比较简单去官网下载对应版本的正版VMware Workstation,然后去百度对应版本的密钥激活即可,如果有不会的可以去搜索其他博主的博客看看,这里不再赘述。

二.Ubuntu下载

1.前言

首先先确定你要下载ROS1还是ROS2,然后确定下载哪个版本,毕竟ROS2有jazzyRolling,Humble 等等版本,ROS1目前还在支持的版本就是Noetic(推荐使用)。

 我来解释下为什么先选择ros版本,因为Ubuntu版本和ros版本息息相关,简单来说就是有一个版本对应关系,比如目前最新的Ubuntu24.04支持ROS2的jazzy等版本,而Ubuntu20.04支持ROS1的Noetic还有ROS2的foxy,galactic,rolling,noetic等版本,所以先确定版本是很有必要的。版本不对应可能会出现些许奇奇怪怪的问题。


2.Ubuntu版本选择

这里我以ROS1的noetic为例

(1)去Ubuntu官网 20.04版本的Ubuntu 到达后如下图所示,

(2)下载完后是一个iso格式的映像文件,也是待会在虚拟机中安装Ubuntu所要的iso文件。

三.VMware中Ubuntu的安装

我的是VMware16PRO

按下图的步骤来即可,点击创建新的虚拟机

选择推荐,(如果知道自定义选项具体干什么的也可以选择第二个自己调整)

这个自己填写即可,密码尽量别太难记,别忘了就行。

这个安装路径尽量别在C盘,改成其他盘,如果C盘很大请忽略。

分配的大小看自己配置尽量多分配点

选择自定义硬件

这东西不同配置都不一样,根据配置来填,尽可能分配多一点,不然会很卡。

然后出现以下几个阶段,等待即可,可能会比较漫长。

中间会出现一些登录等设置,点右上角skip即可(桌面上有两个是我测试用的,初次安装没有)

四.Ubuntu系统基本设置

1.中文更改

按图示步骤

中间出现选项就选install

找到简体中文,点击apply

然后回到

然后就是中文了

2.中文输入法更改

然后点击添加即可。

作者:在Ubuntu24.04中默认有中文,无需下载。

3. 辅助工具 vmware tools 

这个可以让虚拟机与外界数据交换,就是可以自由复制粘贴(指的是虚拟机内与自己的电脑之间),这个版本的Ubuntu自带 vmware tools。如果是没有自带的Ubuntu版本,请自行通过命令下载

sudo apt-get autoremove open-vm-toolssudo apt-get install open-vm-tools-desktopsudo reboot // 重启电脑

五.VScode的安装+ros基本插件

1.安装

找到应用商店并打开,也可浏览器搜VScode官网下载。

2.ros辅助插件下载

中文不会换的看我的另一篇博客  vscode汉化

一些辅助插件自行下载

六.ROS安装

1.安装ros

这里照顾新手,则使用鱼香ROS大佬部署的工具安装,新手也能轻松安装。

打开一个新终端输入(注意liunx粘贴是CTRL+SHIFT+V,复制是CTRL+SHIFT+C),回车

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

输入密码后出现下面的界面

选择第一个,即输入1

然后再输入1,再输入2

然后等待更换源

选择你要安装的版本,这里Ubuntu的版本不同,ROS的版本也不同。

推荐选noetic,然后选择桌面版

然后等待即可。出现下面即为安装成功!!!

2.配置ROS环境变量

再次打开新终端,输入

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

选择4,等待环境配置完毕。

该工具还有其他功能,可自行探索。

3.ROS经典案例乌龟教程

(1)启动ros
roscore

(2)启动图形端

打开一个新终端(ctrl+shift+t),输入

rosrun turtlesim turtlesim_node

然后小乌龟就出来了 

(3)启动控制端

再打开一个新终端,输入

rosrun turtlesim turtle_teleop_key

焦点必须在该终端内,按小键盘的上下左右即可控制乌龟(乌龟样貌随机),碰到边缘会有小彩蛋。

七.VScode集成ros

1.插件准备

前面说过了,这里再提一下

2.项目创建

(1)工作空间创建

新建一个任意名称的父级文件夹,里面包含一个名为src(必须是src)。

然后把父级文件夹在终端中打开,输入

catkin_make

等待即可

(2)环境配置

在vscode内打开。在刚才的终端输入

code .

即可快捷打开VS code,也可先打开vscode,再打开文件夹。

(2)创建功能包

右键src文件夹,点击红框所示

上方框内会让你输入功能包名,任意即可。

然后会让你选择依赖,常用的就是roscpp rospy std_msgs,这里使用cpp演示,所以我输入roscpp。

会出现下图的目录结构

右键.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"
}
]
}

在src文件夹下新建一个helloworld.cpp文件用来测试,内容为

/*
控制台输出 HelloVSCode !!!
*/
#include "ros/ros.h"
int main(int argc, char *argv[])
{
setlocale(LC_ALL,"");
//执行节点初始化
ros::init(argc,argv,"HelloVSCode");
//输出日志
ROS_INFO("Hello VSCode!!! ");
return 0;
}

在CMakeLists.txt中加入

//137 行
add_executable(helloworld
src/helloworld.cpp
)
//152 行
target_link_libraries(helloworld
${catkin_LIBRARIES}
)


(3)编译和运行

1.编译

ctrl+shift+b进行编译,这种方法会将可执行文件生成在devel。

2.前置准备

运行程序我们需要打开一个ROS MASTER。

(1)第一种方法

打开一个新终端输入roscore即可,如下:

roscore

    (2)第二种方法

    vscode里面可以执行直接执行指令,代替了第一种方法,不需要来会反复切换终端,减少了麻烦。
    执行快捷键ctrl + shfit + p输入ROS:Start,即可打开ROS MASTER,如果想要关闭,执行ROS:Stop即可。

    3.运行
    (1)官方版运行方法

    打开一个新终端输入rosrun 包名 节点名称即可,如下:
    在这里我的包名helloworld,节点名称helloworld

    rosrun helloworld helloworld
    
    (2)vscode内部命令

    执行快捷键ctrl + shfit + p输入ROS:Run a Ros executable,代替了在终端调用rosrun helloworld helloworld指令的操作,依次输入你创建的功能包的名称以及节点名称(即编译成功后二进制文件的名称)

    参考至https://blog.csdn.net/g944468183/article/details/123759886?spm=1001.2014.3001.5506

    然后回车等待即可。

    (3)最终结果

    到此如果没有问题那么ros安装完成。

    八.常见问题解决

    1.未启动ros就运行

    报错代码

    [ERROR] [1743315426.567311745]: [registerPublisher] Failed to contact master at [localhost:11311].  Retrying...
    

    解决办法

    在终端输入roscore启动ros

    roscore
    2.ros路径报错

    问题描述:找不到ros/ros.h头文件

    可能的原因1:你安装的是ros2,ros2的架构和ros1不同,ros2是不存在ros.h文件的,请下载ros1再试。

    可能的原因2:路径出错

    如果安装了ros插件一般是不会有问题的。


    如果还有问题可以留言,有时间会进行更新常见问题解决。

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

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

    相关文章

    PostgreSQL pg_repack 重新组织表并释放表空间

    pg_repack pg_repack是 PostgreSQL 的一个扩展,它允许您从表和索引中删除膨胀,并可选择恢复聚集索引的物理顺序。与CLUSTER和VACUUM FULL不同,它可以在线工作,在处理过程中无需对已处理的表保持独占锁定。pg_repack 启动效率高&a…

    5G_WiFi_CE_射频输出功率、发射功率控制(TPC)和功率密度测试

    目录 一、规范要求 1、法规目录: (1)RF Output Power (2)Transmit Power Control (TPC) (3)Power Density 2、限值: 二、EIRP测试方法 (1)测试条件 (2&#xff…

    扫描线离散化线段树解决矩形面积并-洛谷P5490

    https://www.luogu.com.cn/problem/P5490 题目描述 求 n n n 个四边平行于坐标轴的矩形的面积并。 输入格式 第一行一个正整数 n n n。 接下来 n n n 行每行四个非负整数 x 1 , y 1 , x 2 , y 2 x_1, y_1, x_2, y_2 x1​,y1​,x2​,y2​,表示一个矩形的四个…

    Java项目之基于ssm的简易版营业厅宽带系统(源码+文档)

    项目简介 简易版营业厅宽带系统实现了以下功能: 此营业厅宽带系统利用当下成熟完善的SSM框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的Mysql数据库进行程序开发。实现了营业厅宽带系统基础数据的管理&…

    从入门到入土,SQLServer 2022慢查询问题总结

    列为,由于公司原因,作者接触了一个SQLServer 2022作为数据存储到项目,可能是上一任的哥们儿离开的时候带有情绪,所以现在项目的主要问题就是,所有功能都实现了,但是就是慢,列表页3s打底,客户很生气,经过几周摸爬滚打,作以下总结,作为自己的成长记录。 一、索引问题…

    PDF处理控件Aspose.PDF教程:在Python、Java 和 C# 中旋转 PDF 文档

    您是否希望快速轻松地在线旋转PDF文档?无论您需要修复文档的方向还是只想重新排列页面,本指南都能满足您的需求。有简单的方法可以解决此问题 - 无论您喜欢在线工具还是编程解决方案。 在本指南中,我们将向您展示如何免费在线旋转 PDF&#…

    编译原理:first集和follow

    一、First 集(首符号集) 定义: 对于符号(非终结符或终结符)或符号串,First 集是该符号串能够推导出的所有可能开头的终结符的集合。若符号串可以推导出空串(ε),则 ε 也…

    python实现简单fast-cgi服务,对接到nginx

    python代码 import socket import struct import threading# FastCGI 头格式(8 字节) FCGI_HEADER_FORMAT "!BBHHBx" FCGI_VERSION 1 FCGI_TYPE_BEGIN_REQUEST 1 FCGI_TYPE_PARAMS 4 FCGI_TYPE_STDIN 5 FCGI_TYPE_STDOUT 6 FCGI_TYPE_E…

    vue开始时间小于等于结束时间,且开始时间小于等于系统时间,时间格式:年月日时分

    // 日期配置 export const DATA_CONFIGS [{itemKey: "startDate",startDateKey: "startDate",endDateKey: "endDate",isStart: true,},{itemKey: "endDate",startDateKey: "startDate",endDateKey: "endDate",is…

    PyCharm 下载与安装教程:从零开始搭建你的 Python 开发环境

    PyCharm 是一款专为 Python 开发设计的集成开发环境(IDE),它提供了强大的代码编辑、调试、版本控制等功能,是 Python 开发者的必备工具之一。如果你是初学者,或者正在寻找一款高效的开发工具,这篇文章将帮助…

    Qt线程等待条件QWaitCondition

    Qt 线程等待条件 概念 Qt提供了QWaitCondition类实现“等待条件”式的线程控制方法,它让线程阻塞在等待条件的地方,直到条件满足后才继续执行下去。也就是说,QWaitCondition可以使一个线程在满足一定条件时通知其他多个线程,使它…

    RAG 和 RAGFlow 学习笔记

    一、RAG(检索增强生成) 1. RAG 的定义与核心思想 RAG(Retrieval-Augmented Generation,检索增强生成) 是一种结合 信息检索(Retrieval) 和 文本生成(Generation) 的技术…

    Windows连接服务器Ubuntu_MobaXterm

    通过 SSH 远程连接(命令行方式) 🔧 所需工具: Windows:MobaXterm(强烈推荐)或 PuTTY Ubuntu:已开启 SSH 服务 Ubuntu 开启 SSH 服务(仅需一次) 在 Ubuntu …

    Rust 中的高效视频处理:利用硬件加速应对高分辨率视频

    引言 在视频处理领域,随着4K、8K甚至更高分辨率内容的普及,传统的CPU计算方式逐渐显得力不从心。无论是视频剪辑、直播流处理还是格式转换,高负载场景下CPU占用过高的问题常常让开发者头疼。硬件加速技术通过利用GPU等专用硬件分担编解码任务…

    大模型提示工程中,提示、补全、指令、上下文和样本这几个概念的区别是什么?

    提示 (Prompt) 定义:输入给大模型的完整文本刺激,是与模型交互的主要方式。 特点: 是最广义的概念,包含其他几个元素整体输入的总和,包括指令、上下文和样本等内容决定模型如何理解和处理请求 示例: 分…

    AI的未来演进

    企业数字IP实战:创始人分身如何实现品宣获客双赢? ——从量子化建模到联邦学习的全链路技术拆解 一、行业痛点:品牌信任与获客效率的双重困局 2025年数据显示,73%的企业因传统营销模式效率低下错失市场机遇(家居品牌…

    软件定义无线电39

    13.8 RFSoC上PYNQ的SDR设计流程 本节中详细介绍的设计过程可以分为六个独立的步骤,如图13.16所示,并在接下来的几页中进行讨论。 13.8.1 初始设计过程 。在这里,系统设计人员必须考虑许多因素,例如RFDC接收和/或发送的频率范围…

    ​自动化网络架构搜索(Neural Architecture Search,NAS)

    NAS是一种旨在自动设计神经网络结构的技术。传统上,神经网络的架构设计依赖于专家的经验和大量的试错过程,而NAS通过算法自动搜索网络架构,以发现最适合特定任务的神经网络设计。 NAS的主要组成部分包括: 搜索空间:定…

    Ubuntu 22.04 安装和运行 EDK2 超详细教程

    Ubuntu 22.04 安装和运行 EDK2 超详细教程 适合新手小白,从零开始 🌟 1. 什么是 EDK2? EDK2(EFI Development Kit 2)是一个开源的 UEFI(统一可扩展固件接口)开发环境,主要用于编写和…

    什么是STEP认证

    **什么是STEP认证** STEP认证,全称为“可持续纺织生产认证”(Sustainable Textile Production),是一项由国际环保纺织协会Oeko-Tex提供的权威独立认证体系。这一认证体系犹如纺织和皮革行业的绿色灯塔,为追求可持续发…