Índice:
Vídeo: Roomblock: uma plataforma para aprender navegação ROS com Roomba, Raspberry Pi e RPLIDAR: 9 etapas (com imagens)
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
O que é isso?
"Roomblock" é uma plataforma de robô composta por um Roomba, um Raspberry Pi 2, um sensor a laser (RPLIDAR) e uma bateria móvel. O quadro de montagem pode ser feito por impressoras 3D. O sistema de navegação ROS permite fazer um mapa dos quartos e utilizá-lo para chegar ao destino de forma autónoma.
Quem precisa disso?
Qualquer pessoa que queira aprender as tecnologias de ponta de navegação robótica, mapeamento e direção autônoma. Este robô pode ser construído facilmente e com custo menor do que outras plataformas comerciais. ROS é agora um sistema de software padrão de fato para o campo de pesquisa robótica. Este filme mostra o que é possível com o sistema de navegação ROS.
Etapa 1: O que você precisa
Cabo USB serial
Se você não tiver um cabo serial USB para Roomba, poderá montá-lo facilmente com este produto.
- FTDI: TTL-232R-5V
- Akiduki Denshi: TTL-232R-5V
Observe que a inerface do Roomba é TTL (5V).
Conector
Você precisa de um conector mini-DIN de 8 pinos para a interface serial do Roomba. Na verdade, o conector do Roomba é mini-DIN de 7 pinos, no entanto, é muito mais fácil comprar um conector de 8 pinos do que de 7 pinos.
- Digikey: conector mini-DIN de 8 pinos
- Kyoritsu: conector mini-DIN de 8 pinos
De solda
Solde o cabo serial no conector de 8 pinos. Verifique a conexão pela imagem em anexo e o documento de especificação da interface aberta do Roomba.
Especificação de interface aberta do Roomba
Observe que é seguro conectar Vcc (vermelho) e RTS (verde) para evitar o problema de fluxo de hardware.
Etapa 4: configurar o módulo da câmera Raspberry Pi (opcional)
Se você tiver um módulo de câmera Raspberry Pi, poderá conectá-lo ao Raspberry Pi. Isso é opcional para aprender a navegar, no entanto, é divertido obter uma visão do robô.
A peça de montagem da câmera também está incluída nos dados do quadro no Thingiverse. O módulo da câmera pode ser fixado com quatro parafusos M2.
Etapa 5: configurar o PC local
Instale o Ubuntu
Instale Ubuntu 16.04 desktop seguindo a página oficial
Página oficial do Ubuntu
Instale ROS
Por favor, consulte a página oficial da ROS. Instale pacotes completos de desktop Kinetic.
Instruções de instalação ROS Kinetic
Instale o pacote Roomblock ROS
O pacote para roomblock já está lançado no Kinetic. Você pode instalá-los pelo comando apt.
$ sudo apt install ros-kinetic-roomblock
É isso.
Se você deseja modificar e construir o pacote do código-fonte, você pode obtê-los no GitHub.
GitHub - bloco de quarto
Siga as instruções em README.md.
Se você tiver qualquer problema ou dúvida em relação ao software, faça um problema no GitHub Issues para que possamos rastrear os problemas de forma eficiente. Por favor, evite publicá-los no Instructables.
Etapa 6: configurar o Raspberry Pi
Instale o Ubuntu
Instale o Ubuntu 16.04 no Raspberry Pi seguindo o guia de instalação:
Ubuntu Wiki: RaspberryPi
Instale ROS
Instale o ROS Kinetic seguindo o guia de instalação:
Instalação do Ubuntu do ROS Kinetic
Instale o pacote Roomblock ROS
Você precisa instalar o pacote roomblock do código-fonte. O código-fonte do pacote está no GitHub.
GitHub - bloco de quarto
Siga as instruções em README.md.
Se você tiver qualquer problema ou dúvida em relação ao software, faça um problema no GitHub Issues, para que possamos rastrear os problemas de forma eficiente. Por favor, evite publicá-los no Instructables.
Módulo de câmera Raspberry Pi (opcional)
Se você tiver um módulo de câmera Rasberry Pi, precisará instalar libraspberrypi-dev. Consulte README.md no Github.
Etapa 7: Tele-operação
Abra o sistema básico no Raspberry Pi
Em primeiro lugar, você precisa abrir o sistema. No terminal Raspberry Pi, inicie o sistema básico como:
$ export ROS_IP = IP_ADDRESS_OF_RASPBERRY_PI
$ roslaunch roomblock_bringup roomblock.launch
O RPLIDAR começa a girar e agora você pode se conectar ao robô mestre ROS do seu PC local.
Teleoperação do PC local
Você pode usar um joypad para operar o robô. Se você tiver um joypad do XBox, poderá usar este arquivo de inicialização. Caso contrário, você pode precisar modificar o arquivo de inicialização para caber no seu joypad. Por favor, consulte as páginas wiki do ROS para detalhes.
Wiki ROS - teleop_twist_joy
$ export ROS_MASTER_URI = https:// IP_ADDRESS_OF_RASPBERRY_PI: 11311 $ roslaunch roomblock_bringup teleop.launch
Agora você pode controlar o Roomba com joystick.
Em vez disso, você pode usar um teclado.
$ export ROS_MASTER_URI = https:// IP_ADDRESS_OF_RASPBERRY_PI: 11311 $ rosrun teleop_twist_keyboard teleop_twist_keyboard.py
Consulte as páginas wiki do ROS para obter detalhes.
Wiki ROS - teleop_twist_keyboard
Etapa 8: iniciar o software de mapeamento
Abra o software de mapeamento no PC local
Abra o software de mapeamento para criar o mapa ao redor do robô.
$ export ROS_MASTER_URI = https:// IP_ADDRESS_OF_RASPBERRY_PI: 11311 $ export ROS_IP = IP_ADDRESS_OF_LOCAL_PC $ roslaunch roomblock_mapping gmapping.launch
Agora você pode ver o Rviz (software de visualização). Opere o robô ao redor da sala para criar um mapa da sala.
Você pode consultar a página wiki ROS para o sistema de mapeamento.
- Wiki ROS - gmapping
- Wiki ROS - map_server
Etapa 9: iniciar a navegação autônoma
Traga um software de navegação autônomo
Agora você pode iniciar o sistema de navegação autônomo no PC local como:
$ export ROS_MASTER_URI = https:// IP_ADDRESS_OF_RASPBERRY_PI: 11311 $ export ROS_IP = IP_ADDRESS_OF_LOCAL_PC $ roslaunch rolomblock_navigation amcl.launch
Você pode usar Rviz para especificar o objetivo. O robô deve ir para o gol de forma autônoma.
Consulte a página wiki ROS para o sistema autônomo.
- Wiki ROS - navegação
- Wiki ROS - amcl
Divirta-se
Se você tiver dúvidas gerais ou problemas sobre ROS, consulte o wiki do ROS. Não podemos responder a perguntas gerais sobre ROS.
Wiki ROS - Suporte
Se você tiver qualquer problema ou dúvida em relação ao software Roomblock, faça um problema no GitHub Issues para que possamos rastrear os problemas de forma eficiente. Por favor, evite publicá-los no Instructables.