ROS开发

如何选择ROS版本

在选择ROS(Robot Operating System)的版本时,需要考虑以下几个方面:

  1. 功能需求:不同的ROS版本支持的功能和包可能会有所不同,因此需要根据项目需求选择适合的版本。一些较老的ROS版本可能不支持最新的硬件或操作系统,而较新的版本则可能会包含新的功能和改进。
  2. 维护周期:ROS有两种类型的版本,即长期支持(LTS)版本和非LTS版本。LTS版本通常会有5年的维护周期,而非LTS版本则只有1年。因此,如果您需要长期支持和稳定性,可以选择LTS版本,如果需要较新的功能,则可以选择最新的非LTS版本。
  3. 硬件平台:在选择ROS版本时还要考虑使用的硬件平台。某些ROS版本可能只支持特定的硬件或操作系统,因此需要确保选择的版本与您使用的硬件和操作系统兼容。
  4. 社区支持:ROS拥有活跃的社区和支持,因此选择较受欢迎的版本可能会获得更好的社区支持和文档资源。

总之,选择ROS版本需要综合考虑多个因素,包括功能需求、维护周期、硬件平台和社区支持等,以确保选择的版本能够满足项目需求并提供良好的支持和稳定性。

安装ROS noetic

Ubuntu20.04推荐安装noetic版本的ROS

sudo apt update
sudo apt upgrade
# 设置sources.list
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
# 如果下载速度较慢,使用以下命令替换上面的命令
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
# 如果依然遇到连接失败问题,请尝试换源https://developer.aliyun.com/mirror/ubuntu
# 设置密钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
# 若无法连接到密钥服务器,可以尝试替换上面命令中的 hkp://keyserver.ubuntu.com:80 为 hkp://pgp.mit.edu:80 。
sudo apt update
sudo apt install ros-noetic-desktop
sudo apt install python3-rosdep
sudo rosdep init
rosdep update
# 设置环境
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc

进行环境测试

按照以下步骤进行环境验证:

echo $ROS_DISTRO
如果成功设置ROS环境变量,终端应该输出ROS版本号,如noetic

roscore
如果终端没有报错信息,说明ROS Master节点已经成功启动。

rosrun turtlesim turtlesim_node
如果一切正常,应该会看到一个小海龟图形界面弹出来。

rosrun turtlesim turtle_teleop_key
如果一切正常,你应该可以通过按下键盘上的方向键来控制小海龟的移动。
若以上步骤都能够成功运行,那么说明你的ROS环境已经安装成功,并且可以正常工作。

安装ROS2 foxy

确保您有一个支持UTF-8,如果您处于最小环境中(例如 docker 容器),则语言环境可能是最小的,例如POSIX。 我们使用以下设置进行测试。但是,如果您使用不同的 UTF-8 支持的语言环境,应该没问题。

locale  # check for UTF-8

sudo apt update && sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF--ro8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8

locale  # verify settings

您需要将 ROS 2 apt 存储库添加到您的系统。首先,通过检查此命令的输出确保启用了 Ubuntu Universe 存储库。
apt-cache policy | grep universe
这应该输出如下一行:

500 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 Packages
release v=20.04,o=Ubuntu,a=focal,n=focal,l=Ubuntu,c=universe,b=amd64

如果您没有看到像上面那样的输出行,请使用这些说明启用 Universe 存储库。

sudo apt install software-properties-common
sudo add-apt-repository universe

现在将 ROS 2 apt 存储库添加到您的系统。

sudo apt update && sudo apt install curl gnupg2 lsb-release
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

设置存储库后更新您的 apt 存储库缓存。

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

sudo apt install ros-foxy-desktop
如果您没有安装 rosdep 且未初始化,请执行以下步骤:

sudo apt install python3-rosdep
sudo rosdep init
rosdep update