基于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。
设置源
-
将下载服务器http://us.archive.ubuntu.com更换为国内源。
-
现在将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
-
然后将存储库添加到源列表中。
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软件包
-
设置存储库后,更新apt存储库缓存.
sudo apt update
-
ROS 2软件包建立在经常更新的Ubuntu系统上。
在安装新软件包之前,始终建议您确保您的系统是最新的.
sudo apt upgrade
-
推荐桌面安装: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。
- Source the setup files
您需要在打开的每个新shell上运行此命令,才能访问ROS 2命令,如下所示:
source /opt/ros/galactic/setup.bash
- Add sourcing to your shell startup script
如果您不希望每次打开新shell时都必须source
安装文件(跳过任务1),则可以将该命令添加到shell启动脚本中:
echo "source /opt/ros/galactic/setup.bash" >> ~/.bashrc
- 检查环境变量
获取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
rosdep是ROS管理依赖项的实用程序,可以与ROS包和外部库一起工作。
rosdep是一个命令行实用程序,用于识别和安装构建或安装包的依赖项。
sudo apt install python3-rosdep2
关于rosdep update访问超时问题的解决方案:
通过使用代理加速rosdep对github Raw的访问.
- 修改下载rosdep数据函数
定位函数:/download_rosdep_datasudo vi /usr/lib/python3/dist-packages/rosdep2/sources_list.py
添加代码:url="https://ghproxy.com/"+url
- 修改常量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'
- 修改下列文件,为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