1.配置ubuntu的软件和更新

配置ubuntu的软件和更新,允许安装不经认证的软件。
首先打开“软件和更新”对话框,具体可以在 Ubuntu 搜索按钮中搜索。
打开后按照下图进行配置(确保勾选了”restricted”, “universe,” 和 “multiverse.”)

title

2.更换Ubuntu系统源

title

可根据实际情况选择距离你最近的源

3.配置ROS源

  • USTC源

    sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'

    如执行有问题,则:

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

    然后再输入如下命令,信任 ROS 的 GPG Key,并更新索引

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

    若无法连接到密钥服务器,可以尝试替换上面命令中的 hkp://keyserver.ubuntu.com:80 为 hkp://pgp.mit.edu:80 。
    你也可以使用curl命令替换apt-key命令,这在使用代理服务器的情况下比较有用:

    4.安装ROS

    所需类型的 ROS:ROS 多个类型:Desktop-Full、Desktop、ROS-Base。这里介绍较为常用的Desktop-Full(官方推荐)安装: ROS, rqt, rviz, robot-generic libraries, 2D/3D simulators, navigation and 2D/3D perception

    sudo apt install ros-noetic-desktop-full

    安装前记得执行

    sudo apt update

    按需选用full或者是base,base没有图形化界面,适合安装在机器人上;
    按照Ubuntu版本选择ROS版本,kinetic版本适合于Ubuntu 16.04,其他Ubuntu版本各有其相应的ROS版本,不建议混用。

    安装完成后,可以用下面的命令来查看可使用的包
    参考ROS官方安装在Ubuntu上安装ROS Noetic

    5.配置环境变量

    配置环境变量,方便在任意 终端中使用 ROS。

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

    source ~/.bashrc

    如果需要卸载ROS可以调用如下命令:
    sudo apt remove ros-noetic-*

    6.安装构建依赖

    在noetic 最初发布时,和其他历史版本稍有差异的是:没有安装构建依赖这一步骤。随着 noetic 不断完善,官方补齐了这一操作。

    首先安装构建依赖的相关工具

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

    ROS中使用许多工具前,要求需要初始化rosdep(可以安装系统依赖) – 上一步实现已经安装过了。

    sudo apt install python3-rosdep

    初始化rosdep

    sudo rosdep init
    rosdep update
    如果一切顺利的话,rosdep 初始化与更新的打印结果如下:

图片alt

但是,在 rosdep 初始化时,多半会抛出异常。

解决方法

1.先打开资源备份路径:https://gitee.com/zhao-xuzuo/rosdistro,
打开 rosdistro/rosdep/sources.list.d/20-default.list文件留作备用(主要是复用URL的部分内容:gitee.com/zhao-xuzuo/rosdistro/raw/master)。
2.进入”/usr/lib/python3/dist-packages/“ 查找rosdep中和raw.githubusercontent.com相关的内容,调用命令:
find . -type f | xargs grep "raw.githubusercontent"
3.修改相关文件,主要有: ./rosdistro/init.py、./rosdep2/gbpdistro_support.py、./rosdep2/sources_list.py 、./rosdep2/rep3.py。
可以使用sudo vim命令修改文件:
文件中涉及的 URL 内容,如果是:raw.githubusercontent.com/ros/rosdistro/master都替换成步骤1中准备的gitee.com/zhao-xuzuo/rosdistro/raw/master即可。
修改完毕,再重新执行命令:

sudo rosdep init

rosdep update

更新成功打印信息:

Skip end-of-life distro “ardent”
Skip end-of-life distro “bouncy”
Skip end-of-life distro “crystal”
Add distro “dashing”
Skip end-of-life distro “eloquent”
Add distro “foxy”
Skip end-of-life distro “groovy”
Skip end-of-life distro “hydro”
Skip end-of-life distro “indigo”
Skip end-of-life distro “jade”
Add distro “kinetic”
Skip end-of-life distro “lunar”
Add distro “melodic”
Add distro “noetic”
Add distro “rolling”
updated cache in /root/.ros/rosdep/sources.cache

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’

/root/yolov5-6.0/train.py –data ../map_data/data.yaml –cfg models/yolov5n.yaml –batch-size 1 –epochs 100