Установка Ros Noeti c на Raspbian (Buster) на Raspberry Pi 4 - PullRequest
1 голос
/ 26 мая 2020

Я пытаюсь установить ROS Noeti c на Raspberry Pi 4, и я столкнулся с этой ошибкой при выполнении этой команды из официального руководства :

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 Noeti c поддерживает 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

Есть ли у вас какие-нибудь советы?

Ответы [ 2 ]

2 голосов
/ 11 июня 2020

У меня тоже была эта ошибка, и я ее решил. Это произошло из-за путаницы между python2 и python3 во время сборки. Используйте переменную среды ROS_PYTHON_VERSION для принудительной сборки с указанной c версией python.

Debian Buster ЯВЛЯЕТСЯ поддерживаемой ОС для noeti c, но не основной, а именно Ubuntu Buster. OP не нужно сообщать «Noeti c не следует устанавливать в этой ОС», ему / ей нужна помощь в решении его / ее проблемы. На мой взгляд, решить проблему лучше, чем просто уйти от нее.

Моя установка немного сложнее:

  • оборудование: Raspberry Pi 4
  • ОС: raspbian buster
  • Установка ROS noeti c (в настоящее время 1.15.7) в образ docker, гостевая ОС также является raspbian buster, поэтому она должна быть такой же, как ее установка непосредственно на ОС хоста.
  • Использование 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
0 голосов
/ 27 мая 2020

Думаю, ваш вопрос - это более мета-непонимание ROS. ROS (sofar) сильно связан с версией Ubuntu . Если у вас установлена ​​Ubuntu 20, я настоятельно рекомендую установить ROS Noeti c через apt . Если вы хотите использовать ROS на Pi, вы должны придерживаться версии Ubuntu LTS (16/18/20) для максимальной поддержки.

...