Может ли ROS работать на Raspberry Pi?


28

Может ли ROS работать на Raspberry Pi?

ROS скомпонован для работы в сети машин, где разные машины, даже разные ядра на одной машине выполняют разные задачи. Может ли одна из этих машин быть Raspberry Pi?

Я рассматриваю возможность использования R-Pi в качестве мастера EtherCAT для мобильного робота, связывающегося с основным ПК через WiFi с помощью ключа.

  • Может ли R-Pi вообще запустить ROS?
  • Будет ли R-Pi иметь достаточную вычислительную мощность для выполнения сервоуправления с частотой 1 кГц?
  • Можно ли запустить какое-либо серво на хосте через соединение WiFi?

Ответы:


16

Официальная операционная система RaspberryPi является версией Debian, но на их сайте также есть версия ArchLinux .

Несмотря на заявления ROS о том, что они кроссплатформенные, на данный момент они официально поддерживают только Ubuntu. Тем не менее, согласно ros.org , были сделаны экспериментальные установки для следующих ОС :

  • OS X (Homebrew)
  • мягкая фетровая шляпа
  • Gentoo
  • OpenSUSE
  • Debian
  • Arch Linux
  • Windows

Хотя у меня нет никакого опыта из первых рук (мои два Пис позорно сидят в углу), ros.org имеет быстрое и грязное руководство по установке .

Есть аналогичные инструкции на answers.ros.org .

Если у вас возникнут какие-либо проблемы, форумы RaspberryPi также могут вам помочь. И, конечно же, у SE есть свой собственный PI.SE (спасибо @Jivings и @ppumkin за напоминание).

В противном случае, просто гуглите "ros raspberry pi", и вы найдете гораздо больше информации.


ИМО, Debian - лучший выбор для Raspberry Pi. Я полагаю, что вам будет проще и лучше поддерживать его с точки зрения сообщества, чем против других разновидностей ядра Linux.
DogEatDog

3
@DogEatDog Я не согласен, Arch также очень хорошо поддерживается. Также бесстыдная вилка здесь; Любые вопросы Raspberry Pi по этому вопросу будут с благодарностью приняты на Raspberry Pi, а также на официальных форумах.
Jivings

@Jivings Я не могу поверить, что я забыл проверить RaspberryPi.SE ... Хотя быстрый поиск ROS пока не дает никаких результатов ;-)
ThomasH

@ThomasH - Как вы думаете, вы могли бы добавить к своему ответу ссылку, чтобы перейти на PI.SE Мы получили там множество ответов и, возможно, некоторые решения. Я не просто хочу редактировать ваши ответы, так как они правильные.
Петр Кула

Поскольку ROS работает под BSD - он не поддерживается до тех пор, пока новейшая версия FreeBSD - и, конечно, исходный код ROS также не будет работать с самым новым кодом BSD. Все это связано с hard float и некоторыми обновлениями драйверов для этого конкретного ARM, сделанного BroadCom (PS - Видеодрайвер от BCM идет с открытым исходным кодом, поэтому в будущем должно быть предоставлено больше поддержки)
Петр Кула

6

Робототехника достаточно сложна, как и все ваши зависимости. Последнее, что вам нужно, это дополнительные проблемы, возникающие из-за несовместимых компонентов или неподдерживаемых комбинаций.

Я немного посмотрел на это, и вот моя прогрессия:

Raspberry Pi не поддерживает Ubuntu, потому что в его процессоре ARM используется более старый набор инструкций (я полагаю, что ARM v6?), И команда Ubuntu прекратила поддержку в 2009 году.

Beaglebone во многом похож на Raspberry Pi и имеет более новый набор инструкций, поэтому он будет запускать Ubuntu. Однако «лучший» дистрибутив Ubuntu ARM вышел из проекта Linaro, и они отказались от поддержки Beaglebone несколько ревизий назад (последний раз был Linaro 12.03), потому что он использует более старый процессор TI OMAP 3 (добро пожаловать в удивительный мир быстрых смартфонов прогресс).

Следующим моим шагом было посмотреть на TI Pandaboard, которая использует более новый процессор OMAP 4, который в настоящее время поддерживается, но стоит ближе к диапазону 200 долларов.

Но теперь Ubuntu официально выпущен для Nexus 7. За 200 долларов Nexus 7 дает вам все, что предлагает Raspberry Pi, и многое другое. Имейте в виду, что даже с Raspberry Pi, когда вы добавляете зарядное устройство, адаптер Wi-Fi, карту памяти и кабели, вы приближаетесь к 100 долларам, а не к 35 долларам, так что Nexus 7 намного выгоднее.

Наконец, не пытайтесь выводить сигнал с частотой 1 кГц из ОС не реального времени. Подключите себе дешевый микроконтроллер, такой как PJRC Teensy (клон Arduino), и позвольте ему справляться с простыми задачами в реальном времени. Таким образом, вы выделяете недорогой процессор для этих простых задач, чувствительных ко времени. На частоте 16 МГц с поддержкой нескольких таймеров небольшой микроконтроллер AVR может без проблем справиться с полдюжиной подобных задач.


1
Запуск вашего робота с Ubuntu на Nexus 7, классная идея! Случайно ли вам известны какие-либо проекты в области робототехники, использующие нексус таким образом?
бит-пират

5

Этот вопрос хорошо ответил ThomasH , но кроме того , я просто хочу , чтобы предложить возможность беспроводного модема Quadcopter к ноутбуку. То есть, просто напишите хороший и быстрый протокол беспроводной связи (wifi ?, bluetooth?) Для квадрокоптера, затем выполняйте тяжелую загрузку ЦП на ноутбуке, передавая инструкции и запросы датчиков в R-PI. Мы перепробовали много реализаций и остановились на аналогичной настройке для всех наших маленьких роботов. Также почти каждая реализация потрясающего квадрокоптера настроена таким образом. Это облегчает жизнь и позволяет вам использовать библиотеки большого нападающего, не жертвуя скоростью.

Давайте будем честными, этот квадрокоптер, скорее всего, не выйдет за пределы беспроводной связи вашего ноутбука.


Чтобы быть ясным, когда вы говорите «тяжелые ресурсы процессора» здесь, вы имеете в виду высокоуровневые элементы управления, которые включают в себя множество перебора чисел, таких как SLAM или компьютерное зрение. Низкоуровневое управление полетом должно происходить в режиме реального времени и на достаточно высоких частотах, что будет невозможно по беспроводному соединению.
yoos

Да, управление полетом, как и в серво выходах, должно осуществляться бортовой электроникой. Но команды полета, такие как желаемая скорость вращения ротора и тому подобное, могут генерироваться привязанным ПК (для этого прекрасно работает Bluetooth), но нет никаких причин, если вы можете запускать их на R-Pi. Если это так, то да, «тяжелая загрузка ЦП» относится к высокоуровневому планированию, координации нескольких транспортных средств, SLAM, CV и т. Д.
Джош Вандер Хук


4

Экспериментальный репозиторий только что был заполнен пакетами ROS Groovy для Raspbian (wheezy), инструкции по его использованию можно найти здесь:

http://www.ros.org/wiki/groovy/Installation/Raspbian

Хранилище содержит более 350 пакетов, и основные пакеты ROS могут быть установлены за считанные минуты при новой установке Raspbian.


2

Я бы проверил проект rosserial . По сути, он генерирует некоторый код для Arduino для связи через последовательный порт с узлом ROS на компьютере. Могу поспорить, что вы можете конвертировать его в Raspberry Pi, чтобы вы могли использовать какой-то другой протокол для связи между Pi и хост-компьютером.


2

да. Конечно. Мы занимаемся этим давно.
ROS - это не ОС, и она не большая. Это просто "middleware", который хорошо работает в "raspbian".
Мы просто сгораем от официального raspbian (поэтому надеемся, что он может заставить нас работать в «стабильной» среде) и компилируем ROS с исходным кодом. вот пошаговая ссылка (для Kinetic):
http://wiki.ros.org/ROSberryPi/Install%20ROS%20Kinetic%20on%20the%20Raspberry%20Pi, которую
вы можете попробовать ros_comm или на рабочем столе.
Я попытался ros_comm, а затем добавить другие пакеты позже.


1
Почему бы вам не использовать Ubuntu Mate и просто установить ROS из пакетов?
FooTheBar

потому что Ubuntu Mate работает медленно на чипе ARM на малине, и Pi2 и Pi3. Raspbian является облегченным Debian и отлично работает на чипе ARM. @FooBar
Ник Цянь

Любой источник для этого? У меня не было проблем со скоростью.
FooTheBar

Я не стал больше пробовать после того, как выбрал распбиан. может быть, теперь Ubuntu Mate dist для малины лучше и удобнее в использовании. У меня есть интерес попробовать еще раз, потому что в Ubuntu управление программным обеспечением хорошо. Но как насчет GPIO? может быть, Ubuntu New Bersion также имеет поддержку GPIO, я не знаю ....
Ник Цянь

1
Так почему вы говорите, что это медленно, если вы не тестировали?
FooTheBar


1

В отличие от того , что было сказано в других (а устаревшее) ответы, я успешно попытался запустить ROS на любом Raspbian или Ubuntu с Raspberry Pi 2 модели B .

Через некоторое время я буду придерживаться Ubuntu: хотя мне не удалось получить доступ к модулю камеры Raspberry с помощью Ubuntu, я вижу основные преимущества в превосходном управлении пакетами и совместимости с ROS. Вам нужна какая-то странная новая функция ROS? Просто sudo aptitude installпакет и все готово.


0

У меня есть опыт установки ROS на Raspi с использованием Ubuntu Mate в качестве операционной системы. По сути, это обычная операционная система Ubuntu, но на ручном устройстве. Он может установить ROS через предварительно созданные двоичные файлы. Это требует не более настройки, чем обычный ноутбук Ubuntu. Я знаю, что есть одна версия Pi, которая официально не поддерживается (я думаю, что это 3B +, к счастью, прошло некоторое время с момента установки), но кто-то выяснил, как обойти эту проблему в сообщении на форуме, которое я нашел в Google.


ссылка на пост форума?
drerD

Я уже ссылался на сайт, чтобы вы могли скачать Ubuntu Mate. Для установки ROS буквально так же просто, как на обычной машине с Ubuntu. Я не знаю, зачем вам нужна ссылка на пост на форуме ... Это было для школьного проекта на частных репозиториях (так что исходный код ROS не публичный), но Mate Ubuntu общедоступен. Вот еще одна, более конкретная ссылка .
тотроботгуй


-2

да,

найти загрузку здесь:

http://answers.ros.org/question/200504/raspbian-jessie-ros-indigo-download-image/

включая драйвер кадрового буфера для T-дисплея C-Berry


Извините, Мартин, но ответы только по ссылкам не очень полезны в Stack Exchange, если вы процитируете соответствующую информацию со страницы (она лицензирована CC-BY-SA), ваш ответ будет гораздо более полезным, и ваши отрицательные голоса могут получить наоборот.
Марк Бут
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.