Установить вещи на Pepper
Как бы я установить вещи на Pepper, так как я не знаю, какой менеджер пакетов он использует. Я обычно использую apt на своей машине с Ubuntu и хочу установить некоторые пакеты на Pepper. Я не уверен, какой менеджер пакетов имеет Pepper (если есть) и хочет установить некоторые пакеты, но также знаю только имя пакета, используя apt (не уверен, что имя пакета совпадает с другими менеджерами пакетов). И если возможно, смогу ли я установить apt на Pepper. Благодарю.
Примечание. Из проведенного мною исследования Pepper использует NaoQi, основанный на Gentoo, который использует portage.
6 ответов
У вас нет root-доступа на Pepper, что ограничивает возможности установки (и, во всяком случае, apt отсутствует на роботе).
Некоторые возможности:
- Включите ваш контент в проекты Choregraphe - при установке пакета устанавливается вся структура каталогов (точнее, то, что указано в.pml); так что вы можете помещать произвольные файлы в своего робота и обычно включать любые зависимости, которые нужны вашему коду.
- Установите пакеты Python с помощью pip.
В NAOqi 2.5 установлена немного более старая версия pip, которая не всегда будет работать из коробки; Я рекомендую обновить его:
pip install --user --upgrade pip
... затем вы можете использовать обновленный pip для установки других пакетов, используя обновленный pip, и всегда --user:
/home/nao/.local/bin/pip install --user whatever-package-you-need
Однако обратите внимание, что если вы сделаете это и будете использовать ваши пакеты в своем коде, работающем на Pepper, этот код не будет работать на других роботах, пока вы не сделаете для них pip, поэтому я обычно делаю это только для тестов; для производственного кода я предпочитаю упаковывать все зависимости в пакет моего приложения.
В качестве обходного пути, если вам нужно установить программное обеспечение (или просто более новые версии программного обеспечения), можно использовать префикс Gentoo.
Gentoo Prefix собирает ОС Gentoo в любом месте (не требуется root, может быть любая папка). Он включает собственный portage (менеджер пакетов) для установки нового программного обеспечения.
Я поддерживаю несколько проектов для работы с Pepper и использую "любое" программное обеспечение, которое захочу. Обратите внимание, что они созданы для 64b (amd64) и 32b (x86), хотя для Pepper имеет значение только 32b.
- gentoo_prefix_ci и gentoo_prefix_ci_32b Которая еженощно создает начальную загрузку системы Gentoo Prefix. Это процесс, который требует времени для компиляции (3-6 часов в зависимости от вашей машины) и время от времени прерывается (по мере обновления исходных пакетов и обнаружения ошибок, Gentoo представляет собой скользящий выпуск). Каждую ночь обновляемые двоичные образы, готовые к использованию, можно найти в разделе "Релизы".
- Для пользователей ROS, которые хотят запустить его на роботе, на основе предыдущей работы я поддерживаю также https://github.com/awesomebytes/ros_overlay_on_gentoo_prefix и https://github.com/awesomebytes/ros_overlay_on_gentoo_prefix. Они предоставляют ночные сборки с бинарными выпусками ROS Kinetic и ROS Melodic поверх Gentoo Prefix с использованием ros-overlay. Вы можете найти готовые к использованию релизы ros_base и desktop.
- Для целей, связанных с лигой платформ социальных стандартов RoboCup@Home, где используется робот Pepper, я также поддерживаю специальную сборку, которая содержит множество дополнительного программного обеспечения. Этот проект называется pepper_os, и он создает 270+ пакетов ROS, множество пакетов Python (250+, включая Theano, dlib, Tensorflow, numpy...) и все необходимые зависимости для их сборки (750+ пакетов). Обратите внимание, что базовый образ (он построен с помощью Docker) является фактическим образом Pepper 2.5.5.5, поэтому его можно использовать для отладки, как если бы он был в реальном роботе (хотя без датчиков и т.п.).
Может быть, этот подход или эти проекты будут полезны.
Избавиться от
InsecurePlatformWarning: настоящий объект SSLContext недоступен.
устанавливать
/home/nao/.local/bin/pip install --user requests[security]
Избавиться от:
CryptographyDeprecationWarning: Поддержка вашей версии Python устарела.
устанавливать
/home/nao/.local/bin/pip install --user cryptography==2.2.2
Чтобы избавиться от ошибки:
Msgst r " SSL3_GET_SERVER_CERTIFICATE: сбой проверки сертификата".
Если вы используете Python и requests
пакет, просто добавьте verify=False
в конце ваших параметров.
r=requests.get(URL,params,header,verify=False)
Работает с моим перцем
Диспетчер пакетов на перце отключен. Но вы можете скопировать файлы в робот и написать свой собственный сервис, который импортирует любой пакет, который вам может понадобиться.
В качестве дополнения к импорту: http://www.about-robots.com/how-to-import-python-files-in-your-pepper-apps.html
Если он основан на Gentoo, возможно, мы могли бы попробовать установить
portage
с участием
pip
.
pip install portage
Просто мысль.