ROS-Noetic安装配置教程
系统的配置
系统采用的是Ubuntu20.04系统,之前我用的windows10企业版+VMware16虚拟机,发现Gazebo打开会卡死,后来我就装了双系统,提供一篇目前我觉得最好的教程(没有之一)转载:windows10安装ubuntu双系统教程
安装完之后,正常进入,在安装ROS-Noetic版本之前,需要对ubuntu20.04系统配置(换源)
- 系统设置(就那9个点)–>软件与更新
- <中国的服务器> -->选择源 -->选择服务器 -->输入密码 -->关闭等待重新载入就行了
#阿里源(推荐)
mirrors.aliyun.com
#清华源
mirrors.tuna.tsinghua.edu.cn
#中科大源
mirrors.ustc.edu.cn
配置ROS-Noetic初始环境
1.设置sources.list
设置电脑以安装来自packages.ros.org的软件
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
若下载速度缓慢,推荐就近选择一个镜像源替换上面的命令。例如,Tsinghua University为:
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'
2.设置密钥Keys
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
若无法连接到密钥服务器,可以尝试下面的密钥
sudo apt-key adv --keyserver 'hkp://pgp.mit.edu:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
也可以使用curl命令替换apt-key命令,这在使用代理服务器的情况下比较有用:
curl -sSL 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xC1CF6E31E6BADE8868B172B4F42ED6FBAB17C654' | sudo apt-key add -
安装ROS-Noetic
首先,确保你的Debian软件包索引是最新的,每次更新索引时,都需要输入密码。可以关闭sudo密码
#关闭sudo密码
1、终端输⼊命令 sudo visudo ,打开 visudo;
2、找到 %sudo ALL=(ALL:ALL) ALL 这⼀⾏修改为 %sudo ALL=(ALL:ALL) NOPASSWD:ALL
# Debian 软件包索引更新
sudo apt-get update && sudo apt-get dist-upgrade
如果在更新的时候遇到一些软件问题,可以先试试这个
sudo apt-get -f install
如果更新之后还是不行,就百度搜索一下问题解决问题。
一切准备就绪,现在开始正式安装ROS-Noetic
- 完整桌面版安装(推荐)
【说明】除了桌面版的全部组件外,还包括2D/3D模拟器(simulator)和2D/3D 感知包(perception package)
sudo apt install ros-noetic-desktop-full
- 桌面版(Desktop)
【说明】包括了ROS-Base的全部组件,还有一些工具,比如rqt和rviz
sudo apt install ros-noetic-desktop
- ROS-Base(仅含骨架)
【说明】ROS packaging,build,和communication库。没有图形界面(GUI)工具
sudo apt install ros-noetic-ros-base
初始化rosdep<有坑>
一开始需要安装python3-rosdep
#ROS-Noetic系统
sudo apt-get install python3-rosdep
开始使用 ROS 之前你还需要初始化 rosdep。rosdep 可以方便在你需要编译某些源码的时候为其安装一些系统依赖,同时也是某些 ROS 核心功能组件所必需用到的工具
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.
问题就是raw.githubusercontent.com被打墙了,程序文件无法下载。解决方法:
1.修改hosts文件
sudo vim /etc/hosts
2.在打开的文件末尾一行添加:
151.101.84.133 raw.githubusercontent.com
3.保存退出,输入: sudo rosdep init
更新ROS源代码
rosdep update
这一步即使改完之后假如还出现ERROR
,
这就是网络的问题了,你可以换手机热点的4G网络更新重复上述操作。<大坑>
配置ROS-Noetic环境
打开每一个终端的时候,都需要在使用ROS的每个bash终端中source这个脚本。
source /opt/ros/noetic/setup.bash
但是打开新的Bash终端的时候又需要重新source一下,将指令追加到.bashrc
文件就无需担心这个问题了。它会自动刷新环境。
1.echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
2.source ~/.bashrc
测试ROS-Noetic
在此之前,建议安装rosinstall,这是一个ROS常用的命令行工具,可以给ROS方便下载很多源码树,很方便的一个工具。不过这是单独的工具,所以需要单独安装。
sudo apt-get install python3-rosinstall
到此为止,所有的ROS就都已经安装配置成功,测试一下ROS
roscore
roscore启动成功,我们来试试我们的小海龟
# 运行小海龟Node
rosrun turtlesim turtlesim_node
#键盘控制小海龟运动
rosrun turtlesim turtle_teleop_key