Ubuntu 20.04LTS安装ROS及rosdep初始化问题

一、Ubuntu 20.04LTS安装

1. 设置源

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

2.设置密钥

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

3.安装ROS

最简单的安装方式是用如下的fishros一键安装##

wget http://fishros.com/install -O fishros && . fishros
sudo apt update
sudo apt install ros-noetic-desktop-full

4.测试ROS

开启终端,运行roscore指令,打开Ros Master

roscore

在这里插入图片描述另开启一个终端,运行海龟仿真节点

rosrun turtlesim turtlesim_node

在这里插入图片描述再开启一个终端,键盘控制海龟运动

rosrun turtlesim turtle_teleop_key

在这里插入图片描述再开启一个终端,查看海龟仿真节点

rosrun rqt_graph rqt_graph

在这里插入图片描述

5. 环境变量设置

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

6. 安装依赖包

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

二、ROS及rosdep初始化问题

sudo rosdep init
rosdep update

在默认的安装ROS时,初始化rosdep时,常常因为网络传输时间溢出而失败。尝试很多文献的方式都不行。后来参考完《美解决 ROS 安装 rosdep update(timed out)报错超时问题》完美解决初始化失败问题。具体说就是使用代理服务器,使GitHub Proxy 代理加速。

1. 修改 sources_list.py 文件

sudo nano /usr/lib/python3/dist-packages/rosdep2/sources_list.py

打开上述文件后,download_rosdep_data函数中增加一行代理服务器语句:

url="https://ghproxy.com/"+url # 新添加
def download_rosdep_data(url):
    """
    :raises: :exc:`DownloadFailure` If data cannot be
        retrieved (e.g. 404, bad YAML format, server down).
    """
    try:
        # http/https URLs need custom requests to specify the user-agent, since some repositories reject
        # requests from the default user-agent.

   
**url="https://ghproxy.com/"+url # 新添加**


        if url.startswith("http://") or url.startswith("https://"):
            url_request = request.Request(url, headers={'User-Agent': 'rosdep/{version}'.format(version=__version__)})
        else:
            url_request = url
        f = urlopen(url_request, timeout=DOWNLOAD_TIMEOUT)
        text = f.read()
        f.close()
        data = yaml.safe_load(text)
        if type(data) != dict:
            raise DownloadFailure('rosdep data from [%s] is not a YAML dictionary' % (url))
        return data
    except (URLError, httplib.HTTPException) as e:
        raise DownloadFailure(str(e) + ' (%s)' % url)
    except yaml.YAMLError as e:
        raise DownloadFailure(str(e))

2. 修改 init.py 文件

sudo nano /usr/lib/python3/dist-packages/rosdistro/__init__.py 

添加如下内容,并注释被替换的内容:

#DEFAULT_INDEX_URL = 'https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'

DEFAULT_INDEX_URL = 'https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'

3.rosdep 初始化

sudo rosdep init
rosdep update

在这里插入图片描述

参考文献:

[1]: 如何在Ubuntu20.04中安装ROS Noetic
[2]: 完美解决 ROS 安装 rosdep update(timed out)报错超时问题
[3]: ROS Tutorials
[4]: Ubuntu20.04及18.04的ROS安装教程及各种失败解决方法(终极方法) (sudo rosdep init找不到命令或失败与rosdep update一直timeout,roscore找不到命令)
[6] 如何一行代码安装ROS|2022最新版|一行代码安装ROS2|一行代码解决rosdep|一行代码配置多ROS环境

### Ubuntu 20.04 LTS安装 ROS (Robot Operating System) #### 设置软件源 为了提高下载速度并确保稳定性,在开始之前建议修改系统的软件包镜像地址到国内的服务器。这可以通过编辑 `/etc/apt/sources.list` 文件来完成,或者使用图形界面工具如 Software & Updates 进行设置[^3]。 #### 添加 ROS 软件仓库密钥 打开终端执行如下命令以添加官方 GPG 密钥: ```bash sudo apt update && sudo apt install curl -y curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add - ``` #### 配置 APT 源列表 接着配置 `apt` 来指向 ROS 的存储库。对于 Noetic 版本而言,可以运行下面这条指令: ```bash echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/ros-latest.list ``` #### 更新本地索引并安装桌面全版 ROS-Noetic 更新本地缓存并将所有可用更新应用之后,通过以下命令安装完整的桌面环境版本: ```bash sudo apt-get update sudo apt-get upgrade sudo apt install ros-noetic-desktop-full -y ``` #### 初始化 rosdep 工具 初始化 rosdep 可让其能够找到依赖项的位置,并能自动处理这些依赖关系: ```bash sudo rosdep init rosdep update ``` #### 环境变量设置 为了让 shell 认识新的路径和其他必要的环境变化,需将下列语句加入用户的 `.bashrc` 文件中以便每次登录时加载它: ```bash source /opt/ros/noetic/setup.bash ``` #### 测试安装成果 最后一步是验证安装是否成功。重启计算机或重新启动终端会话后,尝试输入 `roscore` 命令看能否正常工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值