小沐学ROS系列(三)基于ubuntu20.04的ROS安装

好久不见,甚是想念。大家好,我是小沐,新的一年,小沐回来了。

不知道大家的元旦假期是不是很快乐呀,小沐的元旦有一些无聊,小沐放寒假回家了,在学校每天泡在实验室,这一回家放松下来不知道干什么好了,思来想去还是投入到学习中去,哈哈。今天呢,给同学们理一篇丝毫不用动脑子的基于ubuntu 20.04安装ROS1的沉浸式教程,顺便闲聊一下。

(这样的文章我觉得发视频似乎更好,不过我又比较害羞,怕开视频说话大红脸,所以还是写文章吧!ヾ(≧▽≦*)o)


目录

安装正文

卸载ROS

碎嘴时间

答疑

参考

安装正文

怎么安装ubuntu我就不讲了,看我之前的文章安装双系统那篇即可,如果是虚拟机安装ubuntu的话,教程很多,我推荐一篇:https://zhuanlan.zhihu.com/p/111567471
(我比较喜欢virtualBox,其他的虚拟机版本可能就要自己“百度一下”。)

接下来我们进入安装正题,先是沉浸式安装(温馨提示:沉浸式安装直接从打开终端开始)然后进行分解讲解。

沉浸式:

sudo apt update

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.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

sudo apt install ros-noetic-desktop-full

echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc

source ~/.bashrc

sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential

sudo apt install python3-pip -y
sudo pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple rosdepc
sudo rosdepc init
rosdepc update

测试:

  1. roscore

  2. rosrun turtlesim turtlesim_node 此时会出现图形界面

  3. rosrun turtlesim turtle_teleop_key 这个界面可以通过上下左右键控制小乌龟运动

接下来,我们分解步骤:(一、二步骤在沉浸式里面没有写出来)

第一步:打开软件和更新修改镜像源:这里我已经改过了,我用的清华的。

第二步:进入终端,sudo apt update 更新一下配置。这个终端不要关,下面继续用。

第三步:接下来就是我们的ROS安装了。

  1. 这里使用清华源(国内的,快):
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
  1. 密钥:
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
  1. 再次更新apt配置:
sudo apt update
  1. ROS我们安装最全的版本:
sudo apt install ros-noetic-desktop-full

等待安装完成。

5.配置环境变量。

   echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc

   source ~/.bashrc

到此我们完成了ROS的基本安装,这个时候就可以进行roscore了,不过为了我们更好的使用ROS,我们还要安装构建依赖。

6.构建安装依赖。(建议使用6.2的方法)

6.1官方的:

sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential

sudo rosdep init

rosdep update

6.2官方的是需要连接GitHub进行的,很多人并不知道如何科学上网,那怎么办呢?

这个时候呢,不要着急,我们这里使用国内ROS大佬——鱼香ROS提供的ROS依赖工具解决。(古月居也有大佬博客哦,ID:鱼香ROS)

操作如下:

sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential

sudo apt install python3-pip -y

sudo pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple rosdepc

sudo rosdepc init

rosdepc update

接下来我们进行经典测试,掏出我们的大宝贝——小乌龟!我们接下来打开三个终端按照顺序分别输入:

  1. roscore

  2. rosrun turtlesim turtlesim_node 此时会出现图形界面

  3. rosrun turtlesim turtle_teleop_key 这个界面可以通过上下左右键控制小乌龟运动

安装教程就到这里就结束了。

卸载ROS

sudo apt remove ros-noetic-*


碎嘴时间

本来,这次应该是接着上次分享的内容开始整理ROS1的基本编程部分了,但是小沐在自己群里的答疑以及在自己所加入的ROS交流群中的各种交流来看,目前还是有好多人卡在了这个安装上,这些人大部分是刚刚结束考研准备毕设的本科生或者是刚刚上岸不久的研究生,故此写下本篇文章,方便以后统一答疑以及方便自我调试环境的安装。因为还没有进行ROS2的学习所以只更新ROS1的。

答疑随笔

1.ROS怎么学?

本次只谈论系统的学习ROS,贪多嚼不烂,这篇文章可能更多的还是初学者看,所以针对初学者写,我们简单直接些。我个人觉得最开始入门还是看视频跟着一步一步来比较实在。ROS相关教学视频,哔哩哔哩的奥特学园的赵虚左老师的基础课很推荐,安装ROS部分本篇文章帮你们解决了,剩下的就是按照视频一步步来学习了。学习中间结合ROSwiki、古月居、创客智造等网站完善自己的知识体系。

2.学了ROS不知道做什么?

这个问题呢,我曾经也有过,我进入实验室之后,学完C语言这个基础的编程语言之后就直接看ROS的相关学习内容了,刚开始看完基础课之后我也蒙蒙的,我到底学了个什么,全部都是如何配置,ROS的各种操作命令,我学这些是为什么呢?

我从现在往回看,我个人的拙见是ROS就是一个快速的部署工具,ROS本身相当于一个特殊的通信协议,通过它我们把各种机器人的算法或者是各种机器人硬件拼接到一起,它可以帮助我们快速的实现slam、导航、定位、机械臂等相关算法。

这里呢,强调ROS是一个工具,我们学习ROS是为了学习之后的算法而不是单纯的ROS,所以学习一定要快速的把ROS的框架架构了解完毕,ROS呢主要涉及的就是操作配置等,学这些是为了方便学习后面算法,ROS其实并不是很重要,它就是一个运行平台,一个平台能有多重要,重要的是ROS涉及的slam、导航、定位、机械臂等相关内容的算法。

其实,slam、导航、定位、机械臂这些是完全可以脱离ROS而独立运行的,那这时候我们为什么还要用ROS呢,我个人认为是它大大减少了slam、导航、定位、机械臂等算法的开发周期,在ROS这个框架上,我们不需要从头搭建所需要的环境就可以在前人的基础上进行新的创造和开发,这使得我们可以专注于某一个领域深挖下去。

仔细想一想,我们做一个机器人必须需要ROS吗?不是吧,ROS是不必须的,现在市面上很多机器人并没有使用吧,而且学过ROS的人应该都知道ROS系统的整体鲁棒性还是比较差的,需要我们这些开发人员后期进行维护。还有就是ROS的系统框架是十分繁杂的,我们想要做一个自己的机器人其实并不需要那么大的架构,毕竟系统越庞大维护的成本也就越大。这也导致了市面上用ROS的商业化产品并不是很多,大部分都是教育产品。但是我们观察这些商用的产品,我们就可以发现,他们身上都有slam、导航、定位、机械臂等算法的影子,他们没有用ROS,但是他们离不开slam、导航、定位、机械臂这些技术相关的算法。

由此来看,ROS并不重要,重要的还是后面要学的算法,所以不要花费太多的时间在ROS的学习上,快速的学完ROS框架,然后进入后面算法的学习才是对的。


参考

ROSwiki 地址 http://wiki.ros.org/noetic/Installation/Ubuntu

古月老师博客 地址 https://www.guyuehome.com/9154

鱼香ROS一行代码搞定rosdepc系列 地址 https://fishros.com/page/#/tools/install-rosdepc/%E4%B8%80%E8%A1%8C%E4%BB%A3%E7%A0%81%E6%90%9E%E5%AE%9Arosdep

最后

欢迎加入小沐和小格的交流群,QQ的哦~