因为写的文章比较少,目前没有使用目录插件,我尽量写的比较明白有层次,希望你能够成功操作
本文章将从使用VMware创建虚拟机Ubuntu18.04开始,知道安装完成ros并运行测验程序(小海龟)
默认已经安装好VMware,版本在VMware® Workstation 16 Pro左右,作者采用的是VMware® Workstation 16 Pro工作平台,请自己寻找VMware资源!
本文将从1.安装虚拟系统 2.安装ros 3.检验ros来讲述
一:安装完成VMware及虚拟机系统
1.1
乌班图18系统iOS文件下载链接
Ubuntu 18.04.6 LTS (Bionic Beaver)
请下载Desktop image
1.2
打开VMware创建虚拟机
下一步
这里面的16.x以外的我没有试过,如果你们没有可以尝试更低级的版本序号
找到原来刚刚下载的ISO文件,单击点击打开
提前设置好我的用户名,你们可以设置其他的,但是后来操作的时候需要你们针对自己的用户名进行一定程度的修改命令行代码!
名字就随意啦,但是’位置’需要选择合适的盘区以及比较大的空间的位置,这个自己找电脑上的位置吧。
我这个多分配一点性能了,大家随意,如果电脑强多弄点。
演示的我就默认了,你们看情况,不影响,但是不要太小!
第一个第二个选项都可以,但是我感觉第一个网速快一点,你们可以默认选第二个,能联网就行。
我就默认了毕竟用来演示的。
然后忽略一些提示,进入系统。
这个可能需要一点时间,请耐心等待!
然后我就等了10分钟,说是下载语言包。
二:安装ros
2.1换源
输入之前预设置的密码
搜索upda
点击第一个程序,不升级20的系统
点击setting
在download from里面选择中国的服务器就行
choose serve,输入密码,close,reload
等待完成后关闭界面即可
2.2安装ros
搜索terminal,打开终端。
测试一下主机与虚拟机之间的剪切板是不是共享的,如果不是需要你进行单独设置,请在网上搜索相应的教程,关键词:VMware与主机共享剪切板
2.2.1设置安装源
避免后面会出现无法定位软件包的错误,这里ROS提供了国内的安装源,添加国内安装源命令
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'
2.2.2设置密钥
- 若密钥服务器hkp://ha.pool.sks-keyservers.com:80无法添加成功,则可以尝试
hkp://pgp.mit.edu:80
或者hkp://keyserver.ubuntu.net:80
- 我使用的是下面这句命令是执行成功了的
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
2.2.3更新Ubuntu 18.04 LTS的最新可用软件包列表
期间如果有需要同意的,直接y就行
sudo apt update
如果出现如下错误
W: GPG 错误:http://mirrors.ustc.edu.cn/ros/ubuntu bionic InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY F42ED6FBAB17C654
E: 仓库 “http://mirrors.ustc.edu.cn/ros/ubuntu bionic InRelease” 没有数字签名。
N: 无法安全地用该源进行更新,所以默认禁用该源。
N: 参见 apt-secure(8) 手册以了解仓库创建和用户配置方面的细节。
解决办法,执行如下命令
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654
2.2.4安装桌面完整版
sudo apt install ros-melodic-desktop-full
2.2.5设置环境
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
2.2.6构建包依赖关系
rosinstall是一个常用的命令行工具,使您可以通过一个命令轻松下载ROS软件包的许多源代码树。
安装rosinstall:
sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
2.2.7安装rosdep
sudo apt install python-rosdep
初始化rosdep
sudo rosdep init
如果出现错误:
ERROR: cannot download default sources list from:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Website may be down.
执行如下命令
cd /etc
sudo gedit hosts
先去What Is My IP Address? Free IP Lookup网站,查找一下raw.githubusercontent.com查询到真实IP地址
例如我查到的目前的是185.199.108.133
就是将
185.199.108.133 raw.githubusercontent.com
添加到这个位置!!
CTRL+s保存退出
重新sudo rosdep init
就好了!!(如果这样失败了可以再试几次)
如果出现错误(我觉得这个错误是我在网上搜解决办法的时候自己手动新建了/etc/ros/rosdep/sources.list.d目录,并且还在这个目录下编辑了20-default.list的相关内容,我通过上面的方法正确解决了之后,产生了相同的文件20-default.list,二者发生冲突。嗯…就是需要删掉以前强制新建的。)
ERROR: default sources list file already exists:
/etc/ros/rosdep/sources.list.d/20-default.list
Please delete if you wish to re-initialize
执行命令:
sudo rm /etc/ros/rosdep/sources.list.d/20-default.list
应该就行了!
2.2.8将相关文件下载到本地
注意!下面的ren替换为你原来设置的用户名
git clone https://github.com/ros/rosdistro.git /home/ren/robot
如网络不好无法Git下载可以在下面我分享的百度网盘链接下载压缩包然后解压提取到主目录下,源自:((7条消息) rosdep update错误失败一直timeout解决方法_Iamsonice的博客-CSDN博客_rosdep update出错timeout)
链接:https://pan.baidu.com/s/1ZjMcvqOvLRa_iTdXis8ufg
提取码:01e2
2.2.9改去rosdep update获取文件的网址换为本地地址
终端输入(注意:下面代码以Ubuntu18.04为例,20将下面代码中python2.7改为python3即可)
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/rep3.py
输入后回车会弹出rep3.py文件将原来文件中的 REP3_TARGETS_URL = ‘https://raw.githubusercontent.com/ros/rosdistro/master/releases/targets.yaml’ 替换成 REP3_TARGETS_URL = ‘file:///home/ren/robot/releases/targets.yaml’(此处ren改为你的用户名因为此处的具体地址为你下载到本地的文件的地址。)
ctrl+s保存,关闭文件,返回到终端
终端输入(注意:下面代码以Ubuntu18.04为例,20将下面代码中python2.7改为python3即可)
sudo gedit /usr/lib/python2.7/dist-packages/rosdistro/__init__.py
输入回车后会弹出init.py文件将原来文件中的 DEFAULT_INDEX_URL = ‘https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml’替换成 DEFAULT_INDEX_URL = ‘file:///home/ren/robot/index-v4.yaml’(此处ren改为你的用户名因为此处的具体地址为你下载到本地的文件的地址。)
ctrl+s保存,关闭文件,返回到终端
2.2.10修改/etc/ros/rosdep/sources.list.d/20-default.list中的网址为本地地址
终端输入(注意:下面代码以Ubuntu18.04为例,20将下面代码中python2.7改为python3即可)
sudo gedit /etc/ros/rosdep/sources.list.d/20-default.list
输入回车后会弹出20-default.list文件将原来文件中的所有 raw.githubusercontent.com开头的网址替换成对应文件在本地的路径(可将下面代码更换20-default.list中的代码注意:代码中的ren全部更换为你的用户名)
# os-specific listings first
yaml file:///home/ren/robot/rosdep/osx-homebrew.yaml osx
# generic
yaml file:///home/ren/robot/rosdep/base.yaml
yaml file:///home/ren/robot/rosdep/python.yaml
yaml file:///home/ren/robot/rosdep/ruby.yaml
gbpdistro file:///home/ren/robot/releases/fuerte.yaml fuerte
# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead
rosdep update
几乎100%成功,如果还不行那就请另找他法吧,要么请看看参考资料下面列举的,或许对你有帮助!
三:测验ros
3.1打开终端
输入运行
roscore
3.2打开第二个终端,输入命令
rosrun turtlesim turtlesim_node
见到一只小海龟
3.3如果希望小海龟能够移动,打开第三个终端,利用Ctrl+Shift+T快捷键再打开一个新的终端,启动turtlesim的键盘控制节点turtle_teleop_key,运行如下命令
rosrun turtlesim turtle_teleop_key
电脑太差劲卡死了呜呜呜呜
如果有问题请联系rcx@learn-coding.cn
参考文献及资料:
(7条消息) Ubuntu18.04安装ROS Melodic(详细,亲测安装完成,有清晰的截图步骤)_爱跑步的mango的博客-CSDN博客_ubuntu1804安装ros
(7条消息) rosdep update错误失败一直timeout解决方法_Iamsonice的博客-CSDN博客_rosdep update出错timeout
(7条消息) Ubuntu18.04安装ROS_PanJie_的博客-CSDN博客_ros安装教程 ubuntu18
(7条消息) sudo rosdep init报错的解决方式_PuerAloe的博客-CSDN博客
(7条消息) 解决ROS系统 rosdep update超时问题的新方法_leida_wt的博客-CSDN博客_rosdep超时
(7条消息) sudo rosdep init报错的解决方式_PuerAloe的博客-CSDN博客
(7条消息) Ubuntu18.04安装ROS Melodic(详细,亲测安装完成,有清晰的截图步骤)_爱跑步的mango的博客-CSDN博客_ubuntu1804安装ros