hee@HEE:~$ sudo apt install ros-foxy-navigation2
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package ros-foxy-navigation2
安装ROS 2 Foxy Fitzroy的包时遇到了“Unable to locate package”的问题。这个问题通常是因为包源配置或系统版本不匹配导致的。比如使用Ubuntu 22.04(Jammy),但ROS 2 Foxy Fitzroy官方只支持Ubuntu 20.04(Focal)。
可以选择以下两种方法:
方法一:使用ROS 2 Humble Hawksbill
ROS 2 Humble Hawksbill是支持Ubuntu 22.04的ROS 2版本。可以安装这个版本而不是Foxy Fitzroy。
添加ROS 2 Humble的包源:
sudo sh -c ‘echo “deb [arch=amd64,arm64,armhf] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main” > /etc/apt/sources.list.d/ros2-latest.list’
添加ROS 2的GPG密钥:
sudo curl -sSL http://packages.ros.org/ros.key | sudo apt-key add -
更新包列表:
sudo apt update
安装ROS 2 Humble:
sudo apt install ros-humble-desktop
安装Nav2包:
sudo apt install ros-humble-navigation2
sudo apt install ros-humble-nav2-bringup
设置ROS 2环境:
echo “source /opt/ros/humble/setup.bash” >> ~/.bashrc
source ~/.bashrc
方法二:在Docker中使用ROS 2 Foxy Fitzroy
如果必须使用ROS 2 Foxy Fitzroy,可以选择在Docker中运行,以避免系统版本不匹配的问题。
安装Docker:
sudo apt update
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker
拉取并运行ROS 2 Foxy的Docker镜像:
docker pull osrf/ros:foxy-desktop
docker run -it osrf/ros:foxy-desktop
在Docker容器中安装Nav2包:
apt update
apt install ros-foxy-navigation2
apt install ros-foxy-nav2-bringup