O ROS pode ser executado em um Raspberry Pi?

28

O ROS pode ser executado em um Raspberry Pi?

O ROS é renunciado para executar em uma rede de máquinas, com máquinas diferentes, até núcleos diferentes na mesma máquina, realizando trabalhos diferentes. Uma dessas máquinas pode ser um Raspberry Pi?

Estou pensando em usar um R-Pi como mestre EtherCAT em um robô móvel, comunicando-me com o PC principal por WiFi, usando um dongle.

  • Um R-Pi pode mesmo executar o ROS?
  • Um R-Pi teria capacidade de processamento suficiente para realizar uma servoagem de 1kHz?
  • Seria possível executar algum servo no host através da conexão WiFi?
Rocketmagnet
fonte

Respostas:

16

O sistema operacional oficial do RaspberryPi é uma versão do Debian, mas também há uma versão do ArchLinux no site deles .

Apesar da alegação do ROS de ser multiplataforma, eles atualmente oferecem suporte oficial ao Ubuntu no momento. No entanto, instalações experimentais foram feitas para os seguintes sistemas operacionais, de acordo com o ros.org :

  • OS X (Homebrew)
  • Fedora
  • Gentoo
  • OpenSUSE
  • Debian
  • Arch Linux
  • janelas

Embora eu não tenha nenhuma experiência em primeira mão (meus dois Pis estão vergonhosamente sentados no canto), o ros.org tem um guia de configuração rápido e sujo .

Existem instruções semelhantes em answers.ros.org .

Caso você encontre algum problema, os fóruns do RaspberryPi também podem ajudar. E, é claro, a SE tem seu próprio PI.SE (obrigado a @Jivings e @ppumkin pelo lembrete).

Caso contrário, basta pesquisar no google "ros raspberry pi" e você deverá encontrar muito mais informações.

ThomasH
fonte
Na IMO, o Debian é a melhor escolha para o Raspberry Pi. Eu acredito que você achará mais fácil e melhor suportado da perspectiva da comunidade, em oposição a outros sabores do Kernel Linux.
dogeatdog
3
@DogEatDog Não concordo, o Arch também é muito bem suportado. Além disso, plugue descarado aqui; Quaisquer problemas com o Raspberry Pi desta pergunta serão recebidos com gratidão no Raspberry Pi , bem como nos fóruns oficiais.
Jivings
@Jivings Eu não posso acreditar que eu esqueci de verificar RaspberryPi.SE ... Apesar de uma busca rápida para ROS não vomitar qualquer resultado até agora ;-)
ThomasH
@ThomasH - Você acha que poderia adicionar à sua resposta um link para acessar o PI.SE? Temos muitas respostas lá e possivelmente algumas soluções. Não quero apenas editar suas respostas, pois estão corretas.
Piotr Kula
Porque o ROS é executado no BSD - Ele não é suportado até a versão mais recente do FreeBSD. E é claro que a fonte do ROS também precisará ser executada no mais novo código do BSD. Tudo para-ver com flutuador duro e algumas atualizações de driver para que a ARM específica feita pela Broadcom (PS - O driver de vídeo do BCM vai opensource que não deverá haver colocar mais apoio no futuro)
Piotr Kula
6

A robótica já é difícil o suficiente quando todas as suas dependências estão funcionando. A última coisa que você precisa são problemas adicionais provenientes de componentes incompatíveis ou combinações não suportadas.

Eu olhei para isso um pouco e aqui estava a minha progressão:

O Raspberry Pi não suporta o Ubuntu porque sua CPU ARM usa um conjunto de instruções mais antigo (ARM v6 eu acredito?) E a equipe do Ubuntu retirou o suporte para isso em 2009.

O Beaglebone é semelhante a um Raspberry Pi de várias maneiras e possui um conjunto de instruções mais recente para rodar o Ubuntu. No entanto, a 'melhor' distribuição do Ubuntu ARM está saindo do projeto Linaro e eles abandonaram o suporte para o Beaglebone algumas revisões atrás (a última foi Linaro 12.03) porque está usando um processador TI OMAP 3 mais antigo (bem-vindo ao maravilhoso mundo dos smartphones rápidos progresso).

Meu próximo passo foi examinar o TI Pandaboard, que usa o mais recente processador OMAP 4 atualmente suportado, mas custa mais perto da faixa de US $ 200.

Mas agora o Ubuntu foi lançado oficialmente para o Nexus 7. Com 200 dólares, o Nexus 7 oferece tudo o que um Raspberry Pi oferece e muito mais. Lembre-se de que, mesmo com um Raspberry Pi, depois de adicionar o carregador, o adaptador wifi, o cartão de armazenamento e os cabos, você está se aproximando mais de 100 dólares do que 35 dólares, portanto, o Nexus 7 é um negócio muito melhor.

Por fim, não tente emitir um sinal de 1 kHz a partir de um sistema operacional não em tempo real. Anexe um microcontrolador barato como o PJRC Teensy (clone do Arduino) e deixe que ele lide com as tarefas simples em tempo real para você. Dessa forma, você dedica a CPU barata a essas tarefas simples e sensíveis ao tempo. A 16 MHz, com suporte a vários temporizadores, um pequeno AVR MCU pode lidar com meia dúzia de tarefas como essa sem problemas.

Jay Beavers
fonte
1
Executando seu robô com o Ubuntu em um Nexus 7, ótima ideia! Por acaso, você conhece algum projeto de robótica usando o nexo dessa maneira?
bit-pirata
5

Essa pergunta foi bem respondida por ThomasH , mas além disso, só quero sugerir a possibilidade de conectar o quadcopter a um laptop sem fio . Ou seja, basta escrever um protocolo de comunicação sem fio (wifi ?, bluetooth?) Agradável e rápido para o quadcopter e, em seguida, fazer o trabalho pesado da CPU em um laptop, enquanto transmite as instruções e as consultas dos sensores ao R-PI. Tentamos muitas implementações e estabelecemos uma configuração semelhante para todos os nossos pequenos robôs. Além disso, quase toda implementação de quadricóptero de cair o queixo é configurada dessa maneira. Isso facilita a vida e permite que você use as bibliotecas de grande repercussão sem sacrificar a velocidade.

Sejamos honestos aqui, é muito provável que o quadcopter não saia do alcance sem fio do seu laptop.

Josh Vander Hook
fonte
Para ser claro, quando você diz "coisas pesadas sobre a CPU" aqui, você quer dizer controles de alto nível que envolvem muito processamento de números, como SLAM ou visão computacional. O controle de vôo de baixo nível terá que ocorrer em tempo real e em frequências altas o suficiente para que não seja possível em uma conexão sem fio.
Yoos
O controle de vôo, como nas saídas servo, terá que ser gerado pela eletrônica a bordo, sim. Mas os comandos de vôo, como as velocidades desejadas do rotor e outros, podem ser gerados por um PC conectado (o bluetooth é incrível para isso), mas não há razão para que você possa executá-los no R-Pi. Se for esse o caso, então sim, "coisas CPU pesado" refere-se ao planejamento de alto nível, a coordenação multi-veículo, SLAM, CV, etc.
Josh Vander Gancho
4

Sim , mas instalar o ROS no Debian é possível, mas não é trivial.

joq
fonte
4

Um repositório experimental acaba de ser preenchido com pacotes ROS Groovy para Raspbian (wheezy), instruções para usá-lo podem ser encontradas aqui:

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

O repositório possui mais de 350 pacotes e os principais pacotes ROS podem ser instalados em questão de minutos em uma nova instalação do Raspbian.

Paul M
fonte
2

Eu verificaria o projeto rosserial . Basicamente, ele gera algum código para o Arduino para se comunicar via serial com um nó ROS no computador. Aposto que você pode convertê-lo no Raspberry Pi, para poder usar outro protocolo para se comunicar entre o Pi e o computador host.

Chris Mansley
fonte
2

sim. Certo. Estamos fazendo isso há muito tempo.
ROS não é um "SO" e não é grande. É apenas "middleware" que roda bem em "raspbian".
Nós apenas queimamos com o raspbian oficial (então esperamos que ele possa nos fazer trabalhar em um ambiente "estável") e compilamos o ROS com a fonte. aqui está o link passo a passo (para Kinetic):
http://wiki.ros.org/ROSberryPi/Installing%20ROS%20Kinetic%20on%20the%20Raspberry%20Pi,
você pode experimentar o ros_comm ou a área de trabalho.
Tentei o ros_comm e depois adicionei outros pacotes mais tarde.

Nick Qian
fonte
1
Por que você não usa o Ubuntu Mate e simplesmente instala o ROS a partir dos pacotes?
FooTheBar 15/05
porque o Ubuntu Mate fica lento no chip ARM da framboesa, tanto o Pi2 quanto o Pi3. O Raspbian é um debian leve e funciona muito bem no chip ARM. @FooBar
Nick Qian
Alguma fonte para isso? Não tive problemas com a velocidade.
FooTheBar
Não tentei mais depois de escolher o raspbian. talvez agora o Ubuntu Mate dist para framboesa seja melhor e sem problemas. Tenho interesse em tentar novamente, porque no ubuntu o gerenciamento de software é bom. Mas e o GPIO? talvez ubuntu novo bersion também tem suporte GPIO, eu não sei ....
Nick Qian
1
Então, por que você diz que é lento se você não testou?
FooTheBar
1

Existe um projeto chamado ROSpberry Pi que você pode conferir. E uma empresa em Pasadena chamada Acrobotic agora está vendendo imagens SD do ROSpberry pré-instaladas.

Brian Dolan
fonte
1

Em contraste com o que foi dito em outras respostas (em vez desatualizado), já com sucesso tentou executar ROS em ambos Raspbian ou Ubuntu com um Raspberry Pi 2 Modelo B .

Depois de um tempo, continuarei com o Ubuntu: embora não tenha conseguido acessar o módulo de câmera Raspberry no Ubuntu, vejo grandes vantagens em seu gerenciamento superior de pacotes e compatibilidade com o ROS. Você precisa de algum novo recurso estranho do ROS? Apenas sudo aptitude installo pacote e está tudo pronto.

Falko
fonte
0

Tenho experiência em instalar o ROS em um Raspi usando o Ubuntu Mate como sistema operacional. É essencialmente um sistema operacional ubuntu comum, mas em um dispositivo de braço. Ele pode instalar o ROS através de binários pré-criados. Não requer mais configuração do que um laptop Ubuntu normal. Eu sei que existe uma versão do Pi que não é oficialmente suportada (acho que é o 3B +, já faz um tempo desde a instalação, felizmente), mas alguém descobriu como contornar esse problema em um post no fórum que pesquisei no Google.

thatrobotguy
fonte
link para postagem no fórum?
drerD
Eu já criei um link para o site para que você possa baixar o Ubuntu mate. É literalmente tão simples quanto uma máquina ubuntu comum para instalar o ROS. Não sei por que você precisa de um link para postar no fórum ... Era para um projeto de escola em repositórios particulares (portanto, o código-fonte do ROS não é público), mas o Ubuntu mate está disponível publicamente. Aqui está outro link mais específico .
thatrobotguy
-2

sim,

encontre o download aqui:

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

incluindo driver buffer de tela para tela TFT C-Berry

Martin
fonte
Desculpe Martin, mas as respostas apenas para links não são realmente muito úteis no Stack Exchange, se você citar as informações relevantes da página (é licenciada pela CC-BY-SA), sua resposta seria muito mais útil e seus votos negativos poderão ser recebidos. invertido.
Mark Booth