1. Introdução
Esta publicação fornece instruções para instalar e executar o sistema operacional do robô (ROS) no robô móvel EduMIP. O EduMiP é um robô auto-balanceado, construído em torno de um BeagleBone Black com um microprocessador integrado e o Beaglebone Black Robotics Cape desenvolvido por James Strawson e pelo professor Thomas Bewley em coordenação com o Laboratório de Robótica Coordenada da UCSD e sua equipe. O BeagleBone Blue, lançado recentemente em meados de 2017, combina os recursos do BeagleBone Black e Robotics Cape em uma única placa. O professor Bewley usa esse robô em seu curso MAE144 - Embedded Control & Robotics, Departamento de Engenharia Mecânica e Aeroespacial, UCSD.
Eu respondo perguntas nos comentários.
Lista de componentes
Observe que você precisa de um Baglebone Blue ou de cada um dos cabos Beaglebone Black e Robotics.
- Beaglebone Blue (BBBL) : Lançado recentemente em meados de 2017, combina os recursos do BeagleBone Black e Robotics Cape em um único computador de placa.

- Beaglebone Black (BBB) : plataformas suportadas pela comunidade de baixo custo para desenvolvedores e entusiastas, com um processador AR33 Cortex AM335x de 1 GHz, 512 MB de RAM DDR3, 4 emmc de 8 bits a bordo.
- Cabo Robotics (BBB-RC) : Beaglebone Black O Robotics Cape é uma placa de E / S para o Beaglebone Black que fornece vários sensores e suporte avançado a hardware, incluindo o seguinte:
- Sensores:
- E / S:
- 4 codificadores quadráticos
- 4 drivers de motor de ponte H
- 8 saídas Servo / ESC
- Interface de Rádio DSM RC Padrão
- I2C UART ADC SPI GPIO PWM
- Controlador de carga da bateria de polímero de lítio
- Kit EduMIP : O kit é composto por motores DC, engrenagens, codificadores, rodas, peças plásticas, fios e elementos de fixação.

- Cartão Micro-SD : Um cartão micro-SD de pelo menos 8 GB de tamanho.
- Imagem do Ubuntu 16.04 LTS para BeagleBone Black and Blue : j Imagem cortesia de Robert Nelson, Jeff O'Brian aqui . Esta imagem contém o ROS Kinetic com o ROS pré-instalado, como uma estação de trabalho ros catkin com pacotes básicos do EduMIP ros com os pré-instalados. Aqui estão duas imagens do Ubuntu, verifique se você está usando a imagem correta:
- Use esta imagem para BragleBonbne Blue:
2018_02_03_beaglebone_blue_16p04_Ubuntu_LTS_EduMIP_ROS.img.zip - Use esta imagem para o cabo BeagleBone Black Wireless + Robotics:
2018_02_03_beaglebone_black_wireless_16p04_Ubuntu_LTS_EduMIP_ROS.img.zip
Uma imagem de 8 GB é compactada em um arquivo zip de 2,5 GB. Você não precisa descompactar um arquivo ZIP. O programa (Etcher) pode descompactá-lo rapidamente. - Pendrive : útil para tutoriais no curso de programação de sistemas de robôs. Um bom modelo barato é o Logitech Gamepad F310
Montagem e teste do kit EduMIP (parte do trabalho do curso de programação de sistemas robóticos # 3)
Crie e teste o EduMIP da seguinte maneira. Tome cuidado. Seja gentil.
1.
EduMIP Build : Siga as instruções passo a passo da construção do EduMIP fornecidas
aqui .
Assista ao meu vídeo de montagem em russo:
2.
Algumas notas adicionais:- Documentação adicional está disponível aqui.
- Se você estiver usando o BEAGLEBONE BLACK + ROBOTIC CAPE, NÃO MISTURE ALIMENTAÇÃO + 5V e + 9V: BBB possui um conector de alimentação para + 5V. O Robotics Cape possui um conector de alimentação de balé idêntico para + 9V. Inferno
- Não conecte a fonte de alimentação de + 9V diretamente no conector de + 5V no resultado BBB, pois isso será um BBB morto.
- Desligue a energia quando não estiver usando o robô: quando você não estiver usando o EduMIP ou carregando a bateria:
Desconecte o cabo de carregamento de 12V do EduMIP
Antes de transportar o robô Desconecte a bateria do cabo Robotics. - NÃO danifique os conectores do motor e do codificador : Os conectores da Robotics Cape para codificadores e motores são muito pequenos.
Configurando o Beaglebone Black / Blue e o EduMIP (parte da tarefa do curso ROS # 3)
Configure o seu Beaglebone Blue para uso no EduMIP da seguinte maneira.
1.
Verifique sua placa BeagleBone Blue / Black: antes de montar o edumip, teste sua placa beaglebone blue - ela vem com o Debian Jessie instalado em sua unidade flash interna de 4 GB.
- Siga as instruções aqui . Para instalar as regras do udev no seu PC Linux. Use esta página apenas para descobrir como proteger as regras UDEV no seu PC LINUX, ignore todo o resto.
- Depois de instalar as regras apropriadas do udev no seu computador linux, ele estabelecerá uma conexão Ethernet ao BBB através da conexão USB através do adaptador Ethernet virtual usb0. Seu computador host estará no endereço IP 192.167.7.1 e BBB estará em 192.168.7.2. SSH do computador host para o BBB "ssh debian@192.168.7.2". A senha padrão para "debian" é "temppwd".
- Sempre que você terminar de trabalhar com o BBBL e estiver pronto para desligá-lo, não o desligue - execute o comando “sudo poweroff” para desligar o Linux e desligue a energia da placa. Depois que todos os LEDs na placa se apagam, é normal desconectar o cabo USB.
2.
Instale e teste a imagem do Ubuntu 16.04 LTS Linux de 8GB com suporte a ROS e BBBL / EduMIP no seu BBBL : criamos uma imagem do Ubuntu de 8GB com suporte cinético e BBBL. Seu kit EduMIP possui um cartão Micro-SD em branco de 32GB ou 64GB.
- Download: A imagem pronta do Ubuntu 16.04 para suporte a ARM para BBBL e ROS, veja acima as instruções intituladas “Imagem Ubuntu 16.04 LTS para beaglebone preto e azul”.
- Você não precisa descompactar a imagem arquivada.
- Baixe o Etcher: baixe e instale o Etcher no seu computador com o etcher.io -Etcher é um programa para gravar imagens de disco em cartões SD.
- Grave a imagem do disco no cartão micro-SD.
- Insira cuidadosamente o cartão micro SD: Insira o cartão micro SD no slot para cartão micro SD e no beaglebone. NÃO O SUBSTITUA; FORNECE APENAS UM TOQUE DELICADO PARA INSTALAR.
- Faça o download! Faça o download do BBBL a partir de uma imagem de cartão Micro-SD conectando-o a um computador usando um cabo USB.
- Se o cartão Micro-SD contiver uma imagem de inicialização, o BBBL inicializará a partir dele, e não da unidade flash embutida.
- SSH no BBBL ("ssh ubuntu@192.168.7.2" com a senha "temppwd") e verifique se você está realmente trabalhando em uma imagem de 32GB. O comando df -h deve mostrar pelo menos 2 GB de espaço livre e o comando htop deve mostrar 1 GB do arquivo de paginação ativo.
3.
Teste do EduMIP : verifique o EduMIP efetuando login como um usuário do ubuntu com a senha “temppwd” da seguinte maneira:
- Nota sobre mensagens de erro : a versão mais recente da biblioteca roboticscape, que é carregada na imagem do Ubuntu que estamos usando, possui alguns erros de PRU que exibem a mensagem de erro "ERRO: Driver pru-rproc ausente" ao chamar as bibliotecas do roboticscape para acessar o hardware BBBL Podemos ignorar esse aviso, que será corrigido em uma versão posterior. Espere ver um desses avisos ao executar programas como rc_balance, rc_test_encoders, edumip_balance_ros, etc.
Aqui está um exemplo desta mensagem de erro:
ubuntu@arm:~$ rc_test_imu ERROR: pru-rproc driver missing try 'test_imu -h' to see other options Accel XYZ(m/s^2) | Gyro XYZ (rad/s) | Mag Field XYZ(uT) | Temp (C) 0.23 -3.06 9.72 | 0.0 -0.0 -0.0 | 22.9 -4.1 -54.9 | 37.9
- Teste do codificador : execute o comando rc_test_encoders e gire um pouco as rodas - você verá os codificadores E2 e E3 mostrando a alteração no número de rotações.
- Teste do motor : execute o comando “rc_test_motors-D 0.1” - quando você eleva o EduMIP, as duas rodas devem girar em direções opostas.
- Calibração do giroscópio : Coloque o EduMIP na mesa, imóvel, e execute o comando rc_calibrate_gyro e siga as instruções. Este programa de calibração grava a calibração do giroscópio em /var/lib/roboticscape/gyro.cal
- Teste do giroscópio : execute o comando "rc_test_imu" e verifique se os dados "Gyro XYZ (rad / s)" são iguais a zero (ou quase zero).
- Calibração do magnetômetro : execute o comando "rc_calibrate_mag" e siga as instruções - você será solicitado a segurar o EduMIP na mão e girar ("girar") em todas as orientações. Este programa de calibração grava o arquivo de calibração do magnetômetro /var/lib/roboticscape/mag.cal
- Teste do magnetômetro : Execute o comando rc_test_imu e verifique se os dados do Mag Field XYZ (uT) são diferentes de zero. A magnitude do vetor do campo magnético da Terra em Baltimore e Woods Hole é de cerca de 52uT, mas não se preocupe se o seu magnetômetro parecer estar um pouco desligado.
Você pode descobrir a latitude, longitude e intensidade do campo magnético de Baltimore digitando seu CEP nesta página da web . - Teste de balanceamento do EduMIP : Execute o comando “rc_balance” e coloque o robô. Seu robô deve se equilibrar no lugar.
4.
Teste de ROS no BBBL- Verifique o arquivo .bashrc. No final, o arquivo deve ter os seguintes comandos na seguinte ordem:
Primeiramente, o comando “source /opt/ros/kinetic/setup.bash” para configurar as variáveis de ambiente do ROS.
Em segundo lugar, o comando "source ~ / catkin_ws / devel / setup.bash" para adicionar o espaço de trabalho local catkin ao ambiente do ROS (isso é chamado de "sobreposição de espaço de trabalho"). - Execute o comando "source .bashrc" para configurar as variáveis de ambiente do ROS. Confira-os com o comando printenv / grep ROS.
- Certifique-se de executar o roscore e outros utilitários ROS.
- Certifique-se de poder executar "catkin_make" no espaço de trabalho BBBL ROS.
- Imagem verificada
5.
Atualize e teste o programa de balanceamento ROS EduMip :
- Se você ainda não o fez, calibre o giroscópio EduMIP com o comando “rc_calibrate_gyro” enquanto o robô ainda estiver sobre a mesa.
- Entre no EduMIP com o nome de usuário “ubuntu” e a senha “temppwd”
- Configurar o Wi-Fi no EduMIP: configure o seu Wi-Fi para que você possa clonar pacotes ROS do nosso repositório git.
- Se você instalou a imagem pré-instalada do Ubuntu 16.04 como descrito acima, já terá os pacotes “edumip_msgs” e “edumip_ros_balance” no diretório de origem do catkin worskace, ou seja, ~ / catkin_ws / src / edumip_msgs e ~ / catkin_ws / src / edumip_balance_ros. Atualize o pacote edumip_balance_ros com o comando “cd ~ / catkin_ws / src / edumip_balance_ros” e “git pull” para fazer o download do código mais recente deste pacote. Se você receber a mensagem de erro "erro: suas alterações locais nos seguintes arquivos serão substituídas por mesclagem:
src / edumip_balance_ros.cpp Por favor, confirme suas alterações ou esconda-as antes de mesclar. ”, exclua o arquivo interferente src / edumip_balance_ros.cpp e“ git pull ”novamente. - Se seus edumip_msgs e edumip_balance_ros ainda não estão no diretório src do espaço de trabalho catkin do EduMIP (deve ser ~ / catkin_ws / src ), clone esses dois pacotes ROS em ~ / catkin_ws / src ):
- O pacote edumip_msg define o tipo de mensagem customizada edumip_msf / EduMipState para EduMIP. Este pacote não contém código fonte, apenas a definição de mensagens e comunicação CMakeLists.txt e package.xml. Se o seu computador precisar acessar esse tipo de mensagem, você também deverá clonar o projeto no seu computador. Este pacote é independente da arquitetura. Este pacote pode ser clonado pelo git nesta URL pública .
- O pacote edumip_balance_ros contém o nó ROS.cpp do edumip_ros_node C ++, que é uma versão do programa com permissão de ROS rc_balance. A imagem do linux que fornecemos para você já possui os drivers Robotics Cape e ROS instalados. Este pacote pode ser clonado pelo git nesta URL pública .
- Crie esses dois pacotes usando o comando catkin_make no diretório principal do espaço de trabalho catkin.
- Verifique se o ROS agora conhece as mensagens do usuário definidas no pacote edumip_msgs com o comando: rosmsg show edumip_msgs / EduMipState
- Abra duas sessões ssh remotas no EduMIP:
Primeiro, no primeiro shell, execute "roslaunch edumip_balance_ros edumip_balance_ros"
Em segundo lugar, no segundo shell, consulte os tópicos ros e imprima topics / edumip / state.
Coloque seu robô, ele deve se equilibrar.
6.
Desligue o BBBL corretamente : quando terminar e pronto para desligar o BBBL, não o desligue - execute o comando “sudo poweroff” para desligar o Linux e desligue a alimentação da placa. Depois que todos os LEDs da placa apagarem, você poderá desconectar o cabo USB.
Algumas notas úteis do Linux para BBB e BBBL
- Os editores emacs e nano já estão instalados na imagem BBB linux fornecida para este tutorial.
- O utilitário linux “find” não é instalado por padrão, mas você pode instalá-lo usando “sudo apt-get install find” e inicializar o banco de dados de localização com o comando “sudo updatedb” (leva alguns minutos).
- O servidor de horário NTP é instalado na imagem BBB linux fornecida nesta lição, mas só será sincronizada se o BBB tiver uma rota para a Internet, por exemplo, quando o seu WIFi estiver ligado. A conexão de rede USB para um computador por padrão não é roteada para a Internet. Você pode verificar o status do ntp usando o comando ntpq-p.
Notas sobre como configurar o BeagleBone Black (BBB) e o beaglebone Blue (BBBL) com o Ununtu 16.04 e o ROS
(Eles estão listados aqui apenas para referência e não devem ser necessárias etapas para concluir a tarefa 3).
Conecte seu PC ao BBB via USB- Siga as instruções aqui.
- Depois de instalar os drivers apropriados ou as regras do udev no computador host, ele estabelecerá uma conexão Ethernet com o BBB por meio da conexão USB através do adaptador Ethernet virtual usb0. O computador host estará no endereço IP 192.167.7.1 e BBB será 192.168.7.2. SSH do computador host para o BBB "ssh ubuntu@192.168.7.2". A senha padrão para o ubuntu é temppwd.
Como estabelecer uma conexão Ethernet com o DNS e uma rota para a Internet externaWiFi (BBBL, BBB Wireless, BBB Classic + adaptador WiFi USB):
- WiFi em um instante : siga as instruções para connmanctl listadas nos comentários no arquivo / etc / network / interfaces. Para ler comentários, use o comando cat / etc / network / interfaces.
- Nota : connmanctl não suporta redes corporativas, como hopkins, mas suporta redes WPA / WPA2.
- Nota : ao carregar o adaptador WiFi BBBL nem sempre está correto. Se você não vir “wlan0” na saída do comando ifconfig, tente ativar manualmente BBBL como interface wlan0 usando o comando “ifconfig wlan0 up”. Então você deve ver wlan0 na saída do comando ifconfig.
- Ifconfig : use o comando ifconfig para ver todas as interfaces de rede configuradas (LAN, WiFi, USB etc.) na sua máquina.
- Iwconfig : use o comando “iwconfig” para ver todas as interfaces de rede WiFi configuradas no seu computador.
- Quem sou eu A maneira mais fácil de determinar o endereço IP (ou endereços) de uma máquina Linux é efetuar login e usar o comando ifconfig.
- Dia da Marmota de Wifi! Infelizmente, o BBBL atualmente não se lembra das configurações de WiFi.
A conexão WiFi preferida deve ser como BBBL e seu computador está conectado ao mesmo ponto de acesso Wi-Fi, para que você possa acessar ssh BBBL a partir do seu computador, e sua BBBL tem acesso à Internet para repositórios git, etc.
Você também pode conectar-se diretamente ao BBBL usando-o como um ponto de acesso Wi-Fi, conectando seu computador à rede Wi-Fi BeagleBone-XXXX, onde XXXX é exclusivo do seu BBBL. A senha do WiFi é "BeagleBone". Essa é uma conexão simples, mas nem o BBBL nem o seu computador terão acesso à Internet para repositórios git, etc. Após a conexão, seu computador terá um endereço IP 192.168.XXX.XXX O endereço IP BBBL será 192.168.XXX.1
Atualizando sua distribuição BBBL do UbuntuNo BBB, execute os comandos Linux sudo apt update AND sudo apt dist-upgrade Linux
Instalando o Robotics Cape Software no BBBL- O suporte ao Robotics Cape / BBBL já está disponível na imagem pré-configurada do Ubuntu para BBBL descrita acima, não é necessário reinstalá-lo.
- Instalação binária no Ubuntu 16.04 no ARM: "sudo apt-get install roboticscape"
- Instalação da fonte
Você deseja instalar uma cópia do código-fonte da capa da robótica e do código de amostra no seu BBB. Está disponível
aqui . Instalando uma cópia no diretório inicial:
"Cd ~"
"Clone do Git
github.com/StrawsonDesign/Robotics_Cape_Installer.git "
Agora você pode visualizar o código fonte da capa da robótica e siga as instruções para compilar e instalar a biblioteca da capa da robótica e os programas de amostra.
Instalando pacotes ROS básicos para EduMIPClone esses dois repositórios git no diretório ~ / catkin_ws / src:
cd para ~ / catkin_ws e colete os pacotes "catkin_make".
Para executar o nó edumip_balance_ros, o programa precisa de privilégios de root. Talvez a maneira mais fácil de fazer isso seja alterar as permissões e a propriedade do binário compilado usando estes dois comandos (nessa ordem) depois que você o compilou:
- raiz do sudo chown: root ~ / catkin_ws / devel / lib / edumip_balance_ros
- sudo chmod u + s ~ / catkin_ws / devel / lib / edumip_balance_ros
Execute o nó do ROS edumip_balance_ros "
roslaunch edumip_balance_ros edumip_balance_ros.launch ". O robô equilibrará, receberá mensagens de velocidade de torção do comando topic / edumip / cmd e publicará seu estado no tópico ROS topic / edumip / state
Se você não conseguir encontrar o
arquivo de inicialização
edumip_balance_ros.launch no
diretório ~ / catkin_ws / src / edumip_balance_ros / launch, precisará “git pull” a versão mais recente deste pacote, conforme descrito acima, e recompilar a fonte com “catkin_make”.
Consulte a tarefa da 3ª semana nesta página do curso para obter mais informações sobre o uso desses recursos da ROS: Tarefa da semana 3 de programação de sistemas de robôs
Notas sobre como iniciar o EduMIP com o ROS
Por que estou recebendo erros de permissão ao executar edumip_balance_ros e como corrigi-lo?Leia isto se você receber erros como "não é possível abrir:
/ sys / devices / platform / ocp / ocp: H18_pinmux / state
Pinmux: permissão negada ”ao executar edumip_balance_ros.
Ao compilar o projeto edumip_balance_ros no edumip com catkin_make, compile o arquivo executável:
"~ / catkin_ws / devel / lib / edumip_balance_ros / edumip_balance_ros"
ubuntu @ arm: ~ / catkin_ws $ ls -l devel / lib / edumip_balance_ros /
272 total
-rwxrwxr-x 1 ubuntu ubuntu 278292 18 de fevereiro 18:48 edumip_balance_ros
Observe que o proprietário e o grupo do arquivo são ubuntu: ubuntu e são executáveis ("-rwxrwxr-x").
Ao tentar executar esse arquivo compilado recentemente, você receberá erros de permissão, conforme mostrado abaixo:ubuntu @ arm: ~ / catkin_ws $ roslaunch edumip_balance_ros edumip_balance_ros.launch
... registrando-se em /home/ubuntu/.ros/log/a271dd92-14dc-11e8-b293-dc5360d671c6/roslaunch-arm-2845.log
Verificando o diretório de log para uso do disco. Isso pode demorar um pouco.
Pressione Ctrl-C para interromper
Concluído, verificando o uso do disco do arquivo de log. O uso é <1 GB.
servidor roslaunch iniciado 192.168.10.102 : 37365 /
RESUMO
========
PARÂMETROS
* / rosdistro: cinético
* / rosversion: 12.1.12
NODES
/
edumip_balance_ros_node (edumip_balance_ros / edumip_balance_ros)
ROS_MASTER_URI = http: //192.168.10.101: 11311
processo [edumip_balance_ros_node-1]: iniciado com pid [2874]
[INFO] [1518979862.674565427]: Arquivo /home/ubuntu/catkin_ws/src/edumip_balance_ros/src/edumip_balance_ros.cpp compilado em 3 de fevereiro de 2018 19:38:02.
não é possível abrir: / sys / devices / platform / ocp / ocp: H18_pinmux / state
Pinmux: permissão negada
não é possível abrir: / sys / devices / platform / ocp / ocp: C18_pinmux / state
Pinmux: permissão negada
não é possível abrir: / sys / devices / platform / ocp / ocp: U16_pinmux / state
Pinmux: permissão negada
não é possível abrir: / sys / devices / platform / ocp / ocp: D13_pinmux / state
Pinmux: permissão negada
não é possível abrir: / sys / devices / platform / ocp / ocp: J15_pinmux / state
Pinmux: permissão negada
não é possível abrir: / sys / devices / platform / ocp / ocp: H17_pinmux / state
Pinmux: permissão negada
AVISO: driver PINMUX ausente
Você provavelmente só precisa de um kernel mais recente
Não foi possível abrir / dev / mem
mmap_gpio_adc.c falhou ao inicializar o gpio
[INFO] [1518979862.806645002]: ERRO: falha ao inicializar a capa.
O processo [edumip_balance_ros_node-1] morreu [pid 2874, código de saída 255, cmd / home / ubuntu / catkin_ws / devel / lib / edumip_balance_ros / edumip_balance_ros __name: = edumip_balance_ros_node __log: = / home / ubuntu / dd. 14dc-11e8-b293-dc5360d671c6 / edumip_balance_ros_node-1.log].
arquivo de log: /home/ubuntu/.ros/log/a271dd92-14dc-11e8-b293-dc5360d671c6/edumip_balance_ros_node-1*.log
todos os processos na máquina morreram, o roslaunch sairá
desligando o monitor de processamento ...
... encerrando o monitor de processamento completo
pronto
O problema aqui é que seu executável deve ser executado como root, e não como um usuário comum, para acessar os registros de hardware do BeagleBone.
Após compilar edumip_ros_balance, você pode alterar as permissões executáveis da raiz (sudo chown root: root <nome do arquivo>) e definir seu bit fixo (sudo chmod u + s <nome do arquivo>) executando o seguinte script:
"~ / catkin_ws / src / edumip_balance_ros / scripts / edumip_change_perms.sh"
Se você olhar para este shell script, verá que ele executa estes dois comandos:
raiz do sudo chown: root ~ / catkin_ws / devel / lib / edumip_balance_ros / edumip_balance_ros
sudo chmod u + s ~ / catkin_ws / devel / lib / edumip_balance_ros / edumip_balance_ros
Depois de executar esse script (ele solicitará a senha do sudo), as permissões e os grupos do arquivo executável serão alterados de ubuntu: ubuntu para root: root e seu bit adesivo será instalado (as permissões foram anteriormente "- rwxrwxr-x" e se tornaram "- rwsrwxr -x "):
ubuntu @ arm: ~ / catkin_ws $ ls -l devel / lib / edumip_balance_ros /
272 total
-rwsrwxr-x 1 raiz de root 278292 18 de fev 18:48 edumip_balance_ros
Agora, quando você executa o edumip_balance_ros, ele deve funcionar bem, como mostrado abaixo:
ubuntu @ arm: ~ $ roslaunch edumip_balance_ros edumip_balance_ros.launchubuntu @ arm: ~ $ roslaunch edumip_balance_ros edumip_balance_ros.launch
... registrando-se em /home/ubuntu/.ros/log/a271dd92-14dc-11e8-b293-dc5360d671c6/roslaunch-arm-2099.log
Verificando o diretório de log para uso do disco. Isso pode demorar um pouco.
Pressione Ctrl-C para interromper
Concluído, verificando o uso do disco do arquivo de log. O uso é <1 GB.
servidor roslaunch iniciado 192.168.10.102 : 34253 /
RESUMO
========
PARÂMETROS
* / rosdistro: cinético
* / rosversion: 12.1.12
NODES
/
edumip_balance_ros_node (edumip_balance_ros / edumip_balance_ros)
ROS_MASTER_URI = http: //192.168.10.101: 11311
processo [edumip_balance_ros_node-1]: iniciado com pid [2108]
[INFO] [1518981653.978399507]: Arquivo /home/ubuntu/catkin_ws/src/edumip_balance_ros/src/edumip_balance_ros.cpp compilado em 3 de fevereiro de 2018 19:38:02.
ERRO: driver pru-rproc ausente
[INFO] [1518981654.104574860]: Controlador de loop interno D1:
ordem: 2
timestep dt: 0.0100
-4,9450z² + 8,8620z + -3,9670
- 1.0000z² + -1.4810z + 0.4812
[INFO] [1518981654.107474727]:
Controlador de loop externo D2:
ordem: 2
timestep dt: 0.0100
0,1886z² + -0,3721z + 0,1835
- 1.0000z² + -1.8605z + 0.8605
[INFO] [1518981654.573431369]:
Mantenha o seu MIP na posição vertical para começar o equilíbrio
O ROS não consegue encontrar meu pacote ROSSe em seu ambiente ROS não entender que você possui novos pacotes em catkin_ws / src, tente atualizar seu perfil rospack com o comando rospack profile e atualize o cache do rosdep com o comando rosdep update.
Compilação e vinculação às bibliotecas Robotics Cape "C"A biblioteca do Robotics Cape vem pré-instalada na imagem Ubuntu 16.04, disponível no link fornecido anteriormente nesta página. Foi instalado usando o comando sudo apt-get install roboticscape.
A biblioteca de capas de robótica e os arquivos de cabeçalho relacionados já estão instalados no EduMIP. Link para as bibliotecas /usr/lib/libroboticscape.so e dois arquivos de cabeçalho de nível superior rc_usefulincludes.he roboticscape.h.
Você pode consultar o projeto
edumip_balance_ros para aprender como usar os arquivos de cabeçalho C da capa robótica e a biblioteca de links C com o nó C ++ ROS.
Consulte edumip_balance_ros / src / edumip_balance_ros.cpp para ver como incluir arquivos de cabeçalho C em um programa C ++ com diretiva "C" externa.
Consulte edumip_balance_ros / CMakeLists.txt para saber como vincular seu programa à biblioteca C do roboticscape.
Pacote Edumip_balance_ros- Para compilar o pacote edumip_balance_ros , você também deve instalar o pacote edumip_msgs .
- O pacote edumip_balance_ros não será compilado no seu computador, é apenas para compilação no EduMIP.
Configuração Horizontal EduMIPVárias equipes de estudantes usaram o EduMIP na configuração horizontal com uma roda de rodízio.
Para fazer isso, você precisará substituir o projeto “edumip_balance_ros” pelo seu novo código para controlar motores de roda, bem como para ler e publicar codificadores de roda. E ontem eu examinei na sala de aula um dos pacotes possíveis, você pode usar o pacote ROS diferencial_drive (http://wiki.ros.org/differential_drive). Para usar o pacote diferencial_drive, é necessário escrever um novo nó C ++ para o edumip, que (a) lê codificadores de roda e os publica por tópico e (b) assina os tópicos de comandos do motor e comandos de tensão para motores de roda.


Dispositivos de porta serialPara interagir com sensores em uma porta serial, como um sensor ultrassônico USB demonstrado em classe, você precisará abrir, ler e enviar via portas seriais.



Bom pacote para este
pacote serial do ROS . Você pode instalá-lo "sudo apt-get install ros-kinetic-serial".
Exemplo simples
aquiUma cópia do src pode ser clonada na área de trabalho do ROS usando o comando git clone
github.com/wjwwood/serial.git e compilada usando catkin_make. O diretório examples contém exemplos mais complexos de uso da porta serial com o pacote serial.
Observe que este pacote ros chamado "serial" não é um pacote "rosserial". O pacote "serial" é uma biblioteca leve de uso geral para ler e enviar dados em portas seriais. "Rosserial" é um pacote para emparelhar pequenos dispositivos como o Arduino à medida que os nós cresciam.
Adição do tradutor:Adicionei minhas fotos e vídeos ao artigo, além de fotos dos trabalhos dos alunos. Em geral, apenas esta instrução é suficiente para executar, é desejável ter pelo menos uma experiência mínima em linha de comando Linux e um entendimento básico da arquitetura ROS. Os scripts do robô são escritos em C.
Você pode fazer perguntas nos comentários, eu leio e respondo.