基于ROS 2 Galactic Geochelone(银河系象龟)开发机器人

开发环境

  • OS : Ubuntu 20.04.05 LTS (Focal Fossa 专注的狸貓)
  • CE : Visual Studio Code 1.71
  • PL : C++ 11 && Python 3.8

当前可用于Ubuntu(Focal Fossa)系统的Debian包是Ros2 Galactic Geochelone。

设置源

  1. 将下载服务器http://us.archive.ubuntu.com更换为国内源。

  2. 现在将ROS 2 apt存储库添加到你的系统中。首先,使用apt授权我们的GPG密钥。
    gnupg和lsb-release是系统自带的最新版本
    打开/etc/hosts写入域名对应的IP地址“185.199.111.133 raw.githubusercontent.com”
    sudo apt update
    sudo apt install curl
    sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg

  3. 然后将存储库添加到源列表中。
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

安装ROS 2软件包

  1. 设置存储库后,更新apt存储库缓存.
    sudo apt update

  2. ROS 2软件包建立在经常更新的Ubuntu系统上。
    在安装新软件包之前,始终建议您确保您的系统是最新的.
    sudo apt upgrade

  3. 推荐桌面安装:ROS、RViz、演示、教程。.
    sudo apt install ros-galactic-desktop

安装完成

sudo apt-cache search ros-galactic

环境设置

ROS2依赖于使用shell环境组合工作空间的概念。
“工作区”是一个ROS术语,表示您使用ROS 2开发系统的位置。
核心ROS 2工作区称为底层。
后续的本地工作区称为覆盖。
使用ROS 2进行开发时,通常会同时激活多个工作区。

组合工作区可以更容易地针对不同版本的ROS2或不同的包集进行开发。
它还允许在同一台计算机上安装多个ROS 2发行版(或“发行版”,如Dashing和Eloquent)并在它们之间切换。

可以通过在每次打开新shell时source设置文件来实现,或者将source命令添加到shell启动脚本中一次。
如果不寻找安装文件,将无法访问ROS 2命令,也无法找到或使用ROS 2软件包。
换句话说,将无法使用ROS2。

  1. Source the setup files
    您需要在打开的每个新shell上运行此命令,才能访问ROS 2命令,如下所示:
    source /opt/ros/galactic/setup.bash
  2. Add sourcing to your shell startup script
    如果您不希望每次打开新shell时都必须source安装文件(跳过任务1),则可以将该命令添加到shell启动脚本中:
    echo "source /opt/ros/galactic/setup.bash" >> ~/.bashrc
  3. 检查环境变量
    获取ROS 2安装文件将设置操作ROS 2所需的几个环境变量。
    如果您在查找或使用ROS 2软件包时遇到问题,请确保使用以下命令正确设置了您的环境:
    printenv | grep -i ROS

尝试一些例子

If you installed ros-galactic-desktop above you can try some examples.
In one terminal, source the setup file and then run a C++ talker:
source /opt/ros/galactic/setup.bash
ros2 run demo_nodes_cpp talker

In another terminal source the setup file and then run a Python listener:
source /opt/ros/galactic/setup.bash
ros2 run demo_nodes_py listener

安装rosdep2

rosdepROS管理依赖项的实用程序,可以与ROS包和外部库一起工作。
rosdep是一个命令行实用程序,用于识别和安装构建或安装包的依赖项。
sudo apt install python3-rosdep2

关于rosdep update访问超时问题的解决方案:

通过使用代理加速rosdep对github Raw的访问.

  1. 修改下载rosdep数据函数
    sudo vi /usr/lib/python3/dist-packages/rosdep2/sources_list.py
    
    定位函数:/download_rosdep_data
    添加代码:
    url="https://ghproxy.com/"+url
    
  2. 修改常量DEFAULT_INDEX_URL
    sudo vi /usr/lib/python3/dist-packages/rosdistro/__init__.py
    
    修改代码:
    DEFAULT_INDEX_URL='https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'
    
  3. 修改下列文件,为github地址添加代理前缀
    #!36行
    sudo vi /usr/lib/python3/dist-packages/rosdep2/gbpdistro_support.py
    #!72行
    sudo vi /usr/lib/python3/dist-packages/rosdep2/sources_list.py
    #!39行
    sudo vi /usr/lib/python3/dist-packages/rosdep2/rep3.py
    #!68行 119行
    sudo vi /usr/lib/python3/dist-packages/rosdistro/manifest_provider/github.py
    

更新rosdep

rosdep update

posted @ 2021-07-14 16:10  杨孝乾  阅读(503)  评论(0编辑  收藏  举报