前段时间进行了为期两个月的MATLAB与ROS联合仿真探索开发,现将仿真时,我搭建的虚拟机镜像的具体情况,及使用方法进行介绍说明
一、该虚拟机镜像的具体情况
大家,拿到手后是一个名为Ubuntu20.04的压缩包,大小为7.78GB,如下图所示
![](https://i-blog.csdnimg.cn/blog_migrate/92859dfde1c3951d3f0824c29a9e5b82.png)
解压后为一个同名的文件夹,大小为17.7GB
该虚拟机搭建于VMware16.1.1,为Ubuntu20.04系统,内部已手动安装了ROS Noetic、Visual Studio Code、VMware Tools、net-tools(网络配置工具)、gparted(可视化分区工具)、openjdk-11-jdk(JAVA环境)、lib32z1(32位运行库)、python3(python解析器,并已配置好)、gazebo11、synaptic(软件包管理器)、及一些SLAM建图及导航的必备功能包
此外内部已经添加好了,一些常见的gazebo模型,足足1.1GB,大家无需再去外网下载
当然,里面也配备了我改写的名为ackerman_sim的ROS功能包,可独立进行ROS的仿真,包括SLAM建图及基于move_base的导航等,具体情况可见,我前面发的博客:为期两个月的MATLAB与ROS联合仿真探索总结——因为热爱,所以无所畏惧【点击可跳转】
二、使用方法
大家只需要下载并安装好VMware虚拟机,推荐使用VMware16.1.1及后续版本,下载链接如下:
【获取方式(附安装步骤,提取码:MUYU):请点击此处进行跳转】
安装完成后,大家选择打开虚拟机,找到下载并解压后的虚拟机镜像文件夹
选择Ubuntu20.04.vmx的虚拟机配置文件后,选择打开
然后选择开启此虚拟机
打开虚拟机后,会弹出一个对话框,具体内容不记得了,大概内容是说该虚拟机正在使用,是否获取虚拟机的控制权/使用权,应该有两个选项,一个是T获取控制权/使用权,二是C退出,这里我们选择第一个T获取控制权/使用权
接着又会弹出第二个对话框,大概内容是,检测到虚拟机已经发生了移动,问你是移动了虚拟机,还是复制了虚拟机,这里选择移动了虚拟机
接着会出现名为名为gly的用户,点击一下,输入密码123456,就可以正常打开虚拟机了
(gly何许人也?–吾之舍友,在我的电脑上做配置虚拟机的时候,设置的虚拟机大小为109G(尽管只用了30G),但是压缩陷入死循环,无奈之下,在舍友的电脑上,按照我编写的文档资料,重新搭建了一个虚拟机,并配置好环境,顺便验证了我编写的文档是没有问题的,只用了17.7GB,变成压缩包后7.78GB,传播比较方便)
开机后按Ctrl+Alt+T,打开终端,输入以下指令查看虚拟机地址,如下图所示,我的是192.168.3.129
ifconfig
然后点击左侧的文件夹,打开后,按住ctrl+h显示隐藏的文件,选择.bashrc文件,双击打开,如下图所示:
然后点击左侧的文件夹,打开后,按住ctrl+h显示隐藏的文件,选择.bashrc文件,双击打开,如下图所示,将最后一行的地址修改为之前我们查询到的虚拟机地址,比如我的应该是192.168.3.129,修改后保存退出,然后按住Ctrl+h,隐藏隐藏的文件。
然后在终端中输入roscore,验证一下,如果roscore正常运行,那么恭喜你,可以愉快的开始使用本虚拟机镜像了
如果你对SLAM建图和导航感兴趣,可以尝试运行如下图所示目录下的实验指令汇总文件内的实验指令,去进行愉快的体验了
如果你对SLAM建图和导航感兴趣,可以尝试运行如下图所示目录下的实验指令汇总文件内的实验指令,去进行愉快的体验了
附录:下面对上图中的指令进行简单的说明
1、roslaunch bringup racecar_noworld.launch
运行后 该命令将运行 racecar_noworld.launch 文件,打开 gazebo,并加载阿克曼 小车模型及相关控制器,不加载地图,配合键盘控制指令可实现基本运动
2、rosrun racecar_description keyboard_teleop.py
该命令将运行键盘控制节点,在 ROS 下通过键盘控制小车运动
3、roslaunch bringup racecar_gazebo_rviz_easyworld.launch
该命令运行 racecar_gazebo_rviz_easyworld.launch 文件,打开 gazebo, 并加载阿克曼小车模型及相关控制器,加载仿真环境 map_easyworld,并打开 rviz,用于建图或导航相关的实验
4、roslaunch bringup slam_gmapping.launch
该命令将运行 slam_gmapping.launch 文件,调用 gmapping 开源库,进行 建图仿真,配合键盘控制,实现手动建图
5、rosrun map_server map_saver -f /home/jzx/catkin_ws /src/ackerman_sim/bringup/map/map2
该命令将建好的地图保存为文件,可供后续导航使用,其中后半部分 /home/jzx/catkin_ws/src/ackerman_sim/bringup/map/map2 中最后的 map2 是保存的地图名字,其余的是该文件将要存放的路径,需要根据自己的情况进行 修改
6、roslaunch bringup move_base_easy.launch
该命令将运行 move_base_easy.launch 文件,调用 move_base,并加载地图 map_easyworld,进行导航控制,配合 rviz 中的按钮,可实现手动设定导航点, 并自主导航