无法在Ubuntu 20.04上安装ROS Melodic

无法在Ubuntu 20.04上安装ROS Melodic,ubuntu,ros,Ubuntu,Ros,我正试图使用这些命令在Ubuntu 20.04上安装ROS Melodic sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BA

我正试图使用这些命令在Ubuntu 20.04上安装ROS Melodic

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt update
sudo apt install ros-melodic-desktop-full
但是我得到了这个错误

E: Unable to locate package ros-melodic-desktop-full
我试图安装不同的版本和Kinetic Kame,但它们都给了我相同的错误。

在您的情况下,这不起作用。Ubuntu20没有ROS版本,只有Ubuntu18有Melodic版本。如果你有选择的话,我建议你安装Ubuntu18

ROS有一个严格的版本控制方案,与。 例:

  • Ubuntu 14(又名Trusty)=ROS Indigo
  • Ubuntu 16(又名Xenial)=ROS动力学
  • Ubuntu 18(又名仿生)=ROS旋律
  • Ubuntu 20(又名Focal)=ROS Noetic
  • Ubuntu 22(不适用)
(您仍然可以手动编译ROS,但出于理智的考虑,我建议您不要使用它,这样可以减少出错的次数)

编辑


我最初是在2020年5月22日写这篇文章的,没有意识到ROS Noetic将于2020年5月22日发布。它应该有完整的官方apt支持,就像其他ROS版本一样。如果你打算使用Ubuntu20和Ubuntu18,现在是正式的方式了

替换第一个命令

sudo sh-c'echo”debhttp://packages.ros.org/ros/ubuntu $(lsb_release-sc)main“>/etc/apt/sources.list.d/ros-latest.list”

sudo sh-c'echo”debhttp://packages.ros.org/ros/ubuntu 仿生主机“>/etc/apt/sources.list.d/ros-latest.list”
#或同等地
sudo echo“debhttp://packages.ros.org/ros/ubuntu bionic main“>>/etc/apt/sources.list.d/ros-latest.list
安装将开始


这是因为
lsb_release-sc
命令向
echo
命令发送
focal
(Ubuntu 20.xx)参数,而它应该是
bionic
(Ubuntu 18.xx),因此,noetic的存储库被添加,而不是melodic,只是想提一下,如果您正在使用Debian,那么在Debian 10(buster)上,您最好使用Noetic。在Buster上使用melodic也会遇到同样的困难

使用与Himanshu Tanwar答案中类似的方法可以解决这个难题,即将“/etc/apt/sources.list.d/ros latest.list”中的
buster
更改为
bionic


我在基于Buster的Raspbian上安装ROS时遇到了这个问题。

ROS Noetic是为Ubuntu 20设计的。Melodic是为Ubuntu18RosNoetic设计的,在回答问题的时候,Noetic还没有出来;我不确定当时网站是否更新了,或者我只是瞎了眼。但是现在它出去了!真的!如果您使用的不是香草Ubuntu,而是Ubuntu的衍生产品,如LinuxMint(我的首选…),这也是一个特别好的观点。在这些情况下,同样地,
lsb_release-sc
也会给出错误的名称,当您确实需要
xenial
/
仿生
/
焦点
时。