在ubuntu20.4下安装ROS-noetic(全步骤经反复验证成功)

注意:如果有conda环境 conda deactivate推出环境

1-4步骤都是很顺利的(如果下载失败请换源),第5步rosdep比较繁琐,但是根据我的使用情况,发现不按照rosdep也能正常使用。更新于2022.3

安装过程的打印信息可以参考安装noetic的信息

补充:换源方法:打开software&updates 

在里面找到china 然后选择对应的源

1、添加ROS软件源

将以下命令复制到ubuntu的终端执行
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

 2、添加密钥
     将以下命令复制到ubuntu的终端执行

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 

下面是1、2步骤的结果

3、更新软件源

sudo apt update

4、开始安装ROS

sudo apt install ros-noetic-desktop-full

安装过程中发现ros-noetic安装的是python3 

 4.1、设置环境变量

进入bashrc文件添加source /opt/ros/noetic/setup.bash

或者:

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

source ~/.bashrc 让脚本生效

4.2、安装rosinstall等工具

rosinstall 是ROS中一个独立分开的常用命令行工具, 它可以方便让你通过一条命令就可以给某个ROS软件包下载很多源码树。 比如sudo apt install ros-noetic-...

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

4.3、启动ros

roscore

 如果出现了以下的问题说明,之前的安装没有安装全,继续输入下面的命令补全安装包

sudo apt install ros-noetic-desktop-full

最终成功! 小提示:ros-noetic-desktop-full已经包含了opencv4.2 如果后续用到了ros的opencv 要注意版本。

 完成后我们使用海龟节点验证

rosrun turtlesim turtlesim_node

rosrun turtlesim turtle_teleop_key

------------------------------------------下面可以不安装(目前没发现影响使用)----------------------------

如果大家有发现必须用到的情况,请麻烦告诉我。

5、初始化rosdep

rosdep可以方便在你需要编译某些源码的时候为其安装一些系统依赖, 同时也是某些ROS核心功能组件所必需用到的工具。

sudo apt install python3-rosdep2 (这里我选择了这个)

或sudo apt install python-rosdep2

安装完成后继续运行 sudo rosdep init 命令出现下面错误

输入下面命令解决上面错误后再输入sudo rosdep init,

sudo rm /etc/ros/rosdep/sources.list.d/20-default.list

之后成功出现下面的命令 ,如果超时继续sudo rosdep init

  

 6、更新rosdep

rosdep update

正常情况下,会一直出现超时的错误。

 根据此博客的方法(此博客围绕是python2)调整(本博客修改的python3)

        由于近期国内Github Raw的可用IP越来越少,之前都是通过修改hosts文件解决rosdep update超时问题,而现在已经不适用。上面博客介绍可以通过修改rosdep源码中下载资源的函数来解决这一问题。网站https://ghproxy.com/支持github的资源代理,接来下用此代理加速rosdep对Github Raw的访问,进而解决rosdep update超时问题。

        原博客作者定位到rosdep资源下载函数。从报错信息中得知,该函数名为download_rosdep_data,位于/usr/lib/python3/dist-packages/目录下,具体在下面目录中

下面逐一修改下面的文件,通过查找https,添加前面

https://ghproxy.com/

1、sudo gedit /usr/lib/python3/dist-packages/rosdistro/__init__.py

2、sudo gedit /usr/lib/python3/dist-packages/rosdep2/sources_list.py

这里有三个地方: 

调整下超时时间

DOWNLOAD_TIMEOUT = 500.0

下面注意在这里加上

url="https://ghproxy.com/"+url

 剩下的三个和上面的同理:

3、sudo gedit /usr/lib/python3/dist-packages/rosdep2/gbpdistro_support.py 

4、sudo gedit /usr/lib/python3/dist-packages/rosdep2/rep3.py

5、sudo gedit /usr/lib/python3/dist-packages/rosdistro/manifest_provider/github.py

两处68行和119行(83行不用)

最终成功!(如果有一两个错误了,多试几次)

-------------------------------------------------------------------------------------------------------------- 
参考:解决ROS系统 rosdep update超时问题的新方法_leida_wt的博客-CSDN博客_rosdep update 超时

详细介绍如何在ubuntu20.04中安装ROS系统,以及安装过程中出现的常见错误的解决方法,填坑!!!_慕羽★的博客-CSDN博客_ubuntu20.04安装教程

### 安装ROS 1 NoeticUbuntu 20.04 对于希望在Ubuntu 20.04 (Focal Fossa)安装ROS 1 Noetic的用户而言,官方文档提供了详尽指导。此过程涉及设置源列表、密钥以及通过APT包管理器完成软件包的获取。 #### 设置环境变量与仓库配置 为了确保能够顺利从ROS库中下载所需文件,在开始之前需更新系统的apt索引并安装一些辅助工具: ```bash sudo apt update && sudo apt install curl gnupg lsb-release ``` 接着,添加ROS官方GPG密钥至系统以验证后续下载的安性[^2]: ```bash curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo gpg --dearmor -o /usr/share/keyrings/ros-archive-keyring.gpg ``` 随后,向`/etc/apt/sources.list.d/`目录下新增一个名为`ros-noetic.list`的文件用于指定ROS版本对应的Apt源地址: ```bash echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/ros-noetic.list > /dev/null ``` #### 开始安装 当上述准备工作完成后,则可以执行实际的ROS Noetic安装操作。考虑到不同用户的特定需求差异较大,这里提供两种不同的安装方式供选择——仅核心组件或是部桌面版套件。 ##### 安装最小化的核心组件 如果只需要基本功能而不想占用过多磁盘空间的话,可以选择只安装必要的部分: ```bash sudo apt-get update sudo apt-get install ros-noetic-desktop ``` ##### 完整桌面环境部署 而对于那些期望获得更面体验的人来说,推荐采用如下命令来一次性搞定几乎所有常用工具和服务端口: ```bash sudo apt-get update sudo apt-get install ros-noetic-desktop-full ``` #### 初始化rosdep 为了让ROS更好地理解依赖关系表单中的条目,还需要初始化并更新本地缓存副本: ```bash sudo rosdep init rosdep update ``` #### 配置环境变量 每次启动终端会话前都得手动加载一遍ROS路径显然不够便捷高效;因此建议将下面这行指令加入到个人`.bashrc`脚本里去自动生效: ```bash echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc source ~/.bashrc ``` #### 测试安装成果 最后一步便是检验整个流程是否成功结束。可以通过尝试运行经典的Turtlesim模拟实例来进行简单验证[^1]: ```bash roscore & sleep 5 rosrun turtlesim turtlesim_node ```
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值