VMware+Ubuntu+ROS完整部署流程

VMware+Ubuntu+ROS完整部署流程

本文是自己整理的完整的部署ROS的流程,欢迎大家沟通与交流,才疏学浅,有不对的地方欢迎大家与我交流。

注:本文章只适合Windows电脑用户

1.下载需要用到的资料

首先下载虚拟机软件VMware,win10系统选择下载1,win11系统选择下载2,以下是我自己的百度网盘链接:

下载1:

链接:https://pan.baidu.com/s/1d9lAB3OH2LkbmXXNXTmI3A? 提取码:pwd=6cdm

下载2:

链接:https://pan.baidu.com/s/1cgU_tzzkaOaPML0VMbisrA?pwd=m7vs 提取码: m7vs

然后根据你想学习的内容,选择你要下载的Ubuntu镜像,链接对应的镜像版本以及镜像可安装的ROS版本如下:

链接1:(Ubuntu18.04+ros1+melodic)

链接:https://pan.baidu.com/s/1ECwlTxKPgyyvgQ0oGN_nUg?pwd=nbm2 提取码: nbm2

链接2:(Ubuntu20.04+ros1+noetic或Ubuntu20.04+ros2+foxy)

链接:https://pan.baidu.com/s/15ICNQQDCuBCtBt4A5phJFQ?pwd=gmjz 提取码: gmjz

链接3:(Ubuntu22.04+ros2+humble)

链接:https://pan.baidu.com/s/1jpAS2-O3CRkqmfOcJSa_Hg?pwd=bqm3 提取码: bqm3

2.安装虚拟机软件VMware

win11的同学下载后,直接安装即可,win10的同学只是多了解压这一步。大家需要注意的是,部分电脑因为权限存在问题,所以在安装时尽量右击安装包文件,使用管理员权限运行。

运行后会弹出页面,选择“下一步”:

选择后,会弹出自定义安装,我们可以选择安装的位置:

完成这一步后,后面直接全部默认“下一步”即可,所以这里跳过几步,直到安装,安装好以后出现下图画面,不要点击完成,而是点击“许可证”,这里不小心点了完成也没事,后续在软件内输入密钥也可以:

点击“许可证”后,出现下图画面:

密钥大家在网上找一下即可,直接浏览器搜索,别用百度,不然可能一堆广告

3.创建虚拟机

打开VMware workstation软件,来到主页,选择创建新的虚拟机

选择后出现下图界面(图片粘贴到ZEEKLOG里面画质莫名其妙被降低了,大家凑合着看吧):

按照图中选择,出现下图界面,保证第一步为你的VMware所支持的最高版本即可,所以操作时可能会与下图内容有出入:

选择“下一步”后会出现下图界面:

选择“下一步”后会出现下图界面:

选择“下一步”后会出现下图界面,第一步是让自己命名虚拟机的名称,第二步是让选择虚拟机安装的位置,这里需要自己挑选一个位置来存放安装的虚拟机:

选择“下一步”后会出现下图界面,直接默认即可:

选择“下一步”后会出现下图界面,直接默认即可:

选择“下一步”后会出现下图界面:

选择“下一步”后会出现下图界面:

选择“下一步”后会出现下图界面:

选择“下一步”后会出现下图界面,第一步,根据自己电脑空间大小进行选择

选择“下一步”后会出现下图界面,直接默认即可:

选择“下一步”后会出现下图界面:

选择“自定义硬件”后,会出现下图界面:

除了已经配置过的部分,还需要对“镜像”与“USB控制器”进行配置,首先选择“新CD/DVD(SATA)”,然后进行第二步操作,找到上述过程中下载的镜像(我以22.04为例,大家安装其他的过程也是一样的):

选择后,选中“USB控制器”,将USB改为3.1,然后关闭此页面:

接着在下图界面中选择“完成”

会显示下图页面,选择开启此虚拟机:

会显示下图页面,鼠标选中后,回车:(18.04和20.04不会出现哦)

下方会出现一个引导,直接关掉即可:

经过等待后,会出现下图界面

这时我们选中左侧,滑动滚轮,选中简体中文,然后选择“安装Ubuntu”,选择后会来到下图的界面,注意此时的画面,一直是小屏,此时使用20.04的同学会很难受,发现没办法继续了,没关系,联系我即可,20.04需要点特殊手段。

选择继续后,出现下图界面,其中第一步与第二步应该都是默认的

选择继续后,出现下图界面,此时屏幕开始放大,第一步中的清除整个磁盘,不必害怕,这个是前面操作中分给它的20G,不会动自己电脑里的东西

选择“现在安装”后,会出现下图的界面,弹出一个小框,选择继续

选择“继续”后,会出现下图的界面,直接选择“继续”

选择“继续”后,会出现下图的界面,输入自己的姓名与计算机名,以及密码后,选择继续即可,计算机名与密码不推荐太长

然后等待安装进程,大概10分钟左右,根据自己的网速快慢会有变化,网速慢多等会

安装好以后,重启虚拟机即可。(重启后,注意看桌面,需要按一下"回车"按键哦),至此,我们算是创建好虚拟机了。

4.在虚拟机中安装ROS

安装之前,需要和大家说,虚拟机会提醒你往更高的镜像版本升级,不要升级

安装ROS,我们选择小鱼大佬的一键安装

打开ubuntu终端,输入:

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

回车后会出现下图界面:

输入密码后会出现下图的界面:

输入“1”后回车,会出现下图界面:

输入“1”后回车,会出现下图界面:

输入“2”后回车,会出现下图界面:

输入“1”后回车,会出现下图界面:(这里大家要选对自己的版本哦,版本对应关系前面下载资料时已经说过了)

输入“1”后回车,会出现下图界面

输入“1”后回车,等待进程跑完并且出现下图页面,就安装好了ros。

5.几个注意事项

注1:18.04的同学,需要安装插件将屏幕放大,运行代码

sudo apt-get install open-vm-tools-desktop

注2:18.04的同学,gazebo虽然在安装ros时被配套下载下来了,但是会闪退,它的解决办法如下

报错:

VMware: vmw_ioctl_command error Invalid argument

解决办法:

第一步:

echo "export SVGA_VGPU10=0" >> ~/.bashrc

第二步:

sudo gedit ~/.ignition/fuel/config.yaml

第三步:

将https://api.ignitionfuel.org替换为https://fuel.ignitionrobotics.org

注3:22.04在安装ros时不会配套下载gazebo,所以需要自己手动下载,下载代码如下

sudo apt install ros-humble-gazebo-ros-pkgs ros-humble-gazebo-ros-control

6.测试ros是否安装成功

小乌龟测试

ros1的测试办法如下:

打开第一个终端:

roscore

打开第二个终端:

rosrun turtlesim turtlesim_node

会出现一只小乌龟,就代表你安装成功了。

ros2的测试方法如下:

打开第一个终端:

ros2 run turtlesim turtlesim_node

会出现一只小乌龟,就代表你安装成功了。(这里没偷懒,ros2里面运行时,弹出来的也是这一个)

Read more

从零起步学习MySQL 第三章:DML语句定义及常见用法示例

从零起步学习MySQL 第三章:DML语句定义及常见用法示例

上一章我们学习了DDL语句,掌握了数据库和表的“创建、修改、删除”等结构定义操作,相当于搭建好了数据存储的“容器”。今天我们进入更核心的学习——DML语句,它是操作“容器”中数据的关键,学会DML,你才能真正实现数据的增、删、改、查,解锁MySQL的核心使用场景。 一、什么是DML?新手必懂的核心定义 DML 的全称是 Data Manipulation Language(数据操作语言),它与上一章的DDL(数据定义语言)核心区别在于:DDL操作的是“数据库对象的结构”,而DML操作的是“表中的数据”,不改变表的结构本身。 简单来说,DDL是“建房子”(搭建表结构),DML就是“住人、装修”(操作表中数据)。在MySQL中,DML语句的核心作用是对表中的数据进行增、删、改、查,也是我们日常开发中使用频率最高的SQL语句。

By Ne0inhk

Spring Boot 自定义错误页面:404/500 页面定制与 ErrorController

Spring Boot 自定义错误页面:404/500 页面定制与 ErrorController 一、引言 当用户访问一个不存在的链接或服务器内部发生错误时,他们会看到一个冰冷、晦涩的默认错误页面(如 Whitelabel Error Page)。这不仅是一个糟糕的用户体验,还可能暴露不必要的服务器内部信息。在生产环境中,提供一个定制的、友好的错误页面是至关重要的。 Spring Boot 为此提供了一套强大且灵活的错误处理机制。这套机制的核心是 BasicErrorController,它是一个默认的 MVC 控制器,专门用于处理 /error 路径的请求。开发者可以通过多种方式来定制这套机制: 1. 自定义错误页面:对于使用 Thymeleaf、FreeMarker 等传统视图技术的 Web 应用,可以简单地在静态资源或模板目录下放置错误页面文件(如 404.html)。 2. 自定义 ErrorController:当需要更精细的控制,例如为

By Ne0inhk
Rust异步编程的错误处理艺术

Rust异步编程的错误处理艺术

Rust异步编程的错误处理艺术 一、异步错误的本质与分类 1.1 异步错误与同步错误的区别 💡在Rust同步编程中,错误通常是通过Result<T, E>类型返回的,Err变体包含了错误信息,程序会阻塞线程直到操作完成。而在异步编程中,操作的结果是一个Future<Output = Result<T, E>>,程序会暂停任务直到操作完成,Err变体可能是IO错误、超时错误、取消错误等异步场景特有的错误。 同步错误示例: usestd::fs::File;usestd::io::Read;// 同步读取文件,阻塞线程fnread_file_sync()->Result<String,std::io::Error>{letmut

By Ne0inhk
【MySQL】第八节—表的增删改查,吃透这篇就够了(下)

【MySQL】第八节—表的增删改查,吃透这篇就够了(下)

Hi,我是云边有个稻草人-ZEEKLOG博客个人主页,今天结束表的增删改查,继续! 《MySQL》本篇文章所属专栏—持续更新中!   目录 三、Update 3.1【将孙悟空同学的数学成绩变更为 80 分】 3.2【将曹孟德同学的数学成绩变更为 60 分,语文成绩变更为 70 分】 3.3【将总成绩倒数前三的 3 位同学的数学成绩加上 30 分】 3.4【将所有同学的语文成绩更新为原来的 2 倍】 四、Delete 4.1 删除数据 【删除孙悟空同学的考试成绩】 【删除总分倒数第一的同学信息】 【删除整张表数据】 4.2 截断表 五、去重数据表,插入查询结果 六、

By Ne0inhk