【问题标题】:Installing Ros Noetic on Raspbian (Buster) on Raspberry Pi 4在 Raspberry Pi 4 上的 Raspbian (Buster) 上安装 Ros Noetic
【发布时间】:2020-09-13 18:09:40
【问题描述】:

我正在尝试在 Raspberry Pi 4 上安装 ROS Noetic,但在从 official guide 执行此命令时遇到此错误:

userk@dopamine:~/development/ros_catkin_ws $ ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release
[...]
File "~/development/ros_catkin_ws/build_isolated/rosbash/catkin_generated/generate_cached_setup.py", line 12, in <module>
    from catkin.environment_cache import generate_environment_script
ModuleNotFoundError: No module named 'catkin'

Ros Noetic 支持 Ubuntu Focal 和 Debian Buster。

userk@dopamine:~/development/ros_catkin_ws $ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 10 (buster)
Release:    10
Codename:   buster

你有什么建议吗?

【问题讨论】:

  • 您必须使用本身不支持apt install'ing ROS 的操作系统吗?我知道它在技术上并不能回答您的问题,但 ROS 通常非常挑剔和关键,以至于我们使操作系统符合 ROS,而不是 ROS 符合操作系统。
  • 另外,我看到 2 个不同的 ros_catkin_ws 文件夹:~/ros_catkin_ws~/development/ros_catkin_ws。你确定你没有把它们弄混吗?
  • 另外,请检查您是否在 vcs 导入后成功将所有文件放入您的 src/ 目录;柳絮应该在那里。如果不是,那么下面的 rosdep install cmd 也会失败。
  • 我正在为 rpi4 尝试不同的操作系统和 ros 版本组合。修复了 ~/development/ros_catkin_ws 拼写错误。写题时手动修改路径
  • catkin 文件夹在 src/.您为 Ros Noetic 推荐哪种操作系统? Ubuntu 20.04?

标签: raspberry-pi installation ros catkin


【解决方案1】:

我也遇到了这个错误并解决了。它来自构建过程中python2和python3之间的混淆。使用 ROS_PYTHON_VERSION 环境变量强制使用特定版本的 python 构建。

Debian Buster 是 noetic 支持的操作系统,但不是 Ubuntu Buster 的主要操作系统。 OP 不需要被告知“不应在此操作系统上安装 Noetic”,他/她需要帮助来解决他/她的问题。在我看来,解决问题比逃避问题要好。

我的设置有点棘手:

  • 硬件:树莓派 4
  • 操作系统:raspbian buster
  • 在客户机操作系统也是 raspbian buster 的 docker 映像中安装 ROS noetic(当前为 1.15.7),因此应该与直接在宿主操作系统上安装一样。
  • 使用python3安装ROS

以下说明。我希望它会有所帮助。

mkdir ~/catkin_ws && cd ~/catkin_ws
export ROS_DISTRO="noetic"
# I very strongly advise to set Python version used by ROS
# otherwise the packages will mix up python2 and python3 during build
# finally leading to the error you encountered (just like me before)
export ROS_PYTHON_VERSION="3"
# disable languages that I don't need
export ROS_LANG_DISABLE="geneus:genlisp:gennodejs"
sh -c 'echo "deb http://packages.ros.org/ros/ubuntu buster main" > /etc/apt/sources.list.d/ros-latest.list'
apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
apt-get update
apt-get install python3-rosdep python3-rosinstall-generator python3-vcstool build-essential
apt-get install -y ca-certificates && rosdep init && rosdep update
# Remove/add packages to get an installation covering your needs.
rosinstall_generator --rosdistro noetic --deps --tar \
        ros_comm             \
        actionlib            \
        sensor_msgs          \
        image_common         \
        vision_opencv        \
        > noetic-computervision.rosinstall
mkdir ./src && vcs import --input noetic-computervision.rosinstall ./src
rosdep install --from-paths ./src --ignore-packages-from-source --rosdistro noetic -y
python3 ./src/catkin/bin/catkin_make_isolated --install --install-space /opt/ros/noetic -DCMAKE_BUILD_TYPE=Release

【讨论】:

  • 感谢您的回答!我将设置 Raspbian Buster 并尝试安装 Noetic。
  • 干得好,+1。特别是因为 Noetic 是第一个/唯一一个支持/使用 python3 的 ros,所以混淆应该不太常见...... FTR,我发现大多数 ros 安装问题往往是用户为自己创造不必要的问题,偶然。这是一个足够困难的学习曲线,没有无法安装它的痛苦。
【解决方案2】:

我认为您的问题是对 ROS 的更多误解。 ROS(到目前为止)是strongly linkedUbuntu version。如果您安装了 Ubuntu 20,我强烈推荐 installing ROS Noetic via apt。如果你想在树莓派上使用 ROS,你应该坚持使用 Ubuntu LTS 版本(16/18/20)以获得最大支持。

【讨论】:

  • 我仍然认为这是一个合理的答案,因为我经常目睹 ROS 新手的安装问题变成了几天的努力或 hacky 工作,这可以通过重新快速简单地解决安装不同的操作系统。在我对绝大多数提出这个问题的人的回答中,对于没有经验的学习者/初学者来说,切换操作系统是最快且影响最小的解决方案。如果您在基于非 apt 的安装上浪费了一个多小时,请减少损失并更改您的操作系统。 否则,我喜欢上面的答案,但知道你在做什么。
猜你喜欢
  • 2019-11-14
  • 1970-01-01
  • 2020-07-30
  • 1970-01-01
  • 2023-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多