文章目录
前言
马上开学,目前学校很多实验室都是人工智能这块,大部分都是和机器人相关,然后软件这块就是和cv、ros相关,就打算开始学习一下。
本章节是虚拟机安装Ubuntu18.04以及安装ROS的环境。
学习教程:【Autolabor初级教程】ROS机器人入门,博客中一些知识点是来源于赵老师的笔记在线笔记,本博客主要是做归纳总结,如有侵权请联系删除。
视频中的案例都基本敲了遍,这里给出我自己的源代码文件:
链接:https://pan.baidu.com/s/13CAzXk0vAWuBsc4oABC-_g
提取码:0hws
所有博客文件目录索引:博客目录索引(持续更新)
前提条件
硬件要求:
- Intel i5及以上(i7最佳)
- 8GB内存以上
- 60GB硬盘存储以上。
操作系统:Ubuntu18.04版本操作系统
ROS版本:ROS Melodic
开发工具Clion
一、ROS版本介绍
针对于ROS安装的环境:官方-ROS安装选择
二、VirtualBox安装Ubuntu18.04.6
安装virtualbox教程:虚拟机安装及使用Linux,看这一篇就够了!
Ubuntu18.04.6链接:https://pan.baidu.com/s/1E60edg4BYt_vnRa4AeKxZw
提取码:dr40
1、新建
2、设置内存大小为8GB
3、选择【创建虚拟硬盘】,默认【VDI】=>【动态分配】,分配空间90GB
此时空间创建完成,接着来选择虚拟盘,最后来进行系统启动安装。
点击注册-选择ubuntu18.04版本,点击选择即可:
回到初始虚拟机界面,右击-正常启动,来进行安装阶段:基本都是默认操作,只有在选择地区指定【shanghai】即可,中间详细选择过程直接可见:在VirtualBox上安装Ubuntu18.04虚拟机。
安装Ubuntu18可能你需要进行一些配置,如主机与虚拟机的双向复制、xshell连接ubuntu、分辨率调整等,可见我整理好的一篇博客,直接看里面的版本18对应问题及解决方案即可:Ubuntu系统环境一系列问题解决方案
三、安装ROS环境
Ubuntu18.04对应的ros版本为ROS Melodic
3.1、设置镜像源
选择连接最快的服务器:
这是我经过自动测试来进行选择的:
3.2、设置ROS的下载源
①添加中科大源:
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
②设置公钥:
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
③更新可用软件列表
sudo apt update
3.3、安装ROS
sudo apt install ros-melodic-desktop-full
- 若是出现not found之类,那么回到2中执行更新软件列表命令【我就是没有做那步操作】。
- 命令说明:这个命令将安装完整的ROS软件,包括ROS,rqt,rviz,机器人通用库,2D / 3D模拟器,导航和2D / 3D感知等等的全套基础组件。
安装完成后,我去看了下大小,整个软件包大概有11G。
3.4、设置环境变量
执行如下命令:
# 将source命令写入到~/.bashrc文件末尾
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
# 执行当前用户名home目录下的.bashrc文件
source ~/.bashrc
第二条是刷新该文件,刷新完之后bash终端以后可以识别roscore,rosrun等命令。
如何判断生效?可以执行一下roscore命令。
roscore
3.5、下载ros的其他功能组件
sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
说明:这些组件可以构建和管理开发者自己的ROS工作空间,强烈建议安装。
3.6、初始化与更新rosdep包(可跳过)
认识rosdep包
从ROS fuerte开始,rosdep称为是一个独立的工具,可以单独下载和使用,对于克隆了一些仓库源代码,并且想手动编译所有的包或者开发跨平台应用时就需要使用到rosdep。
- 具体使用场景:开发跨平台应用,源码编译安装功能包场景。参考:rosdep不初始化到底行不行
原本rosdep的初始化与更新命令如下:
sudo rosdep init
rosdep update
执行不了的原因与命令本质介绍
第一条命令本质:下载了一个20-default.list
文件到 /etc/ros/rosdep/sources.list.d
文件夹下,内容如下:
# os-specific listings first
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml osx
# generic
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml
gbpdistro https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml fuerte
# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead
问题:对应目标的网址由于外网或者其他原因是访问不了,自然就会执行失败,该文件也不会成功下载下来。
第二条命令本质:根据20-default.list
文件中的网址链接("raw.githubusercontent.com"
)去下载相应的文件
注意看上面文件的内容同样是国外的,我自己访问了下还是404,是有问题的,自然第二条命令都执行不了。
- 上面实际上指向的都是一个仓库的rosdep文件夹下的几个文件,其实我们可以将其克隆到自己的gitee仓库中,然后改下url地址即可,不过还是很麻烦,有人已经给我们提供了一个解决方案,可见终极解决方案。
- 五个文件的github地址: ros仓库,rosdep文件夹。
终极解决方案
该方案并不是常规的方案,有一个python大佬写了一个包并提交了上去,我们去使用pip安装那个包,然后执行对应包命令,就可以去实现上面两条原本命令的效果。
ubuntun18本身没有带pip,所以我们需要自己安装一个pip:ROS Melodic的默认环境是python2
# 使用pip来尝试安装rosdepc
# 如果显示没有pip可以试试pip3:sudo pip3 install rosdepc
# 如果pip3还没有:sudo apt-get install python3-pip
sudo pip3 install rosdepc
初始化rosdep:
sudo rosdepc init
更新rosdep:
rosdepc update
出现以下内容表示更新成功:
测试ROS
打开三个命令行窗口来执行ROS自带的一些小程序
命令行一:
# 启动系统自带的节点,实现通信
roscore
命令行二:
# 弹出图像化界面
rosrun turtlesim turtlesim_node
命令行三:
# 读取键盘上下左右移动信息控制乌龟行动
rosrun turtlesim turtle_teleop_key
参考资料
[1]. ROS学习(1):ROS介绍与安装
[2]. Ubuntu18.04安装Ros(最新最详细亲测)
[3]. ubuntu18安装python pip_关于Ubuntu18.04 如何安装pip
[5]. 本文之后,世上再无rosdep更新失败问题!如果有…小鱼就…
文章出处登录后可见!