Documentação da biblioteca NAOLIBS
A biblioteca NAOLIBS foi criada com o propósito de facilitar o acesso ao controle das funcionalidades do robô humanoide NAO v6
- Necessita ter o
Python v2.7.14
instalado - Precisa instalar o
Numpy
eOpenCV (cv2)
- Para instalar a biblioteca e as dependencias, é necessário acessar o robô utilizando o protocolo SSH
- Utilizo o
WinSCP v5.15.3
junto com oPutty v0.70
, pois me permite acessar o shell do robô pelo prompt de comando do Putty e transferir os arquivos e pastas no computador para o robô e vice-versa através do WinSCP - Ou utilize o
Snowflake SSH GUI
no lugar doWinSCP
ePutty
, é possível usá-lo em Windows, Linux e macOS
-
Para se conectar ao robô é necessário saber três coisas, o endereço IP do robô, o usuário e a senha. Em meu caso, o IP é
192.168.0.2
, o usuário se chamanao
e a senha também énao
-
No WinSCP selecione o protocolo
SFTP
, preencha o campo host com o endereçoIP
do robo, e os demais campos, após preencher salve as configurações e marque a opção salvar senha, pois ajuda muito quando se está com pressa -
Feito o login, caso apareça uma mensagem de Sim ou Não sobre uma chave de autenticação, sempre clique em sim
-
No WinSCP tem uma opção chamada Putty, ao clicar ele já abre o terminal do Putty, nesse momento será pedido a senha do robô, em meu caso a senha é
nao
-
Quando o computador se conectar ao robô por padrão é feito login no usuário padrão (sem privilégios adminstrativos), para mudar para administrador execute o comando
su
, a senha padrão éroot
-
A pasta padrão de login pelo terminal é
/home/nao/
-
O sistema operacional do NAO v6 por padrão não permite a alteração das configurações do sistema do robô, mesmo sendo usuário
root
, para liberar essa trava é necessário executar o comandomount -w -o remount /
, esse comando remonta a unidade/
(raiz do sistema) com permissão de escrita, lembre-se, este comando só precisa ser executado quando for necessário mexer nas configurações do robô (sistema operacional, NAOqi, etc), se o robô reiniciar ou se hover desconexão do SSH o comando deixa de funcionar, sendo necessário ser executá-lo novamente na nova conexão -
Para instalar o
Numpy
e oOpenCV
é necessário ter opip
, muita das vezes o que já vem instalado no robô pode não funcionar. Recomendo instalar manualmente, para isso, é necessário que o robô esteja em uma rede com acesso a internet. Para baixar o PIP rode o comandocurl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
, feito o download, execute o comandopython get-pip.py
para instalar o PIP -
Com o novo
pip
já instalado basta somente executar os comandos abaixo para baixar e instalar o Numpy e OpenCV -
-
-
É necessário ter seguido as instruções descritas acima em
Dicas para modificar as configurações do sistema operacional do NAO v6
-
Copie a pasta
NAOLIBS
do seu computador para dentro do robô no caminho/home/nao/
, pelo terminal SSH rode o seguinte comando para executar o arquivo que se encontra em/home/nao/NAOLIBS/install.sh
-
-
A mensagem que deve aparecer no terminal é
NAOLIBS - Instalado com sucesso.
-
Pode ser utilizada por meio do interpretador do python (Shell interativo) ou através de um código python
-
Entre no Shell Interativo do
Python
, e importe todas as funcinalidades do NAOLIBS com o comandofrom NAOLIBS import *
ou através do comandoimport NAOLIBS as NL
-
Fazendo o robô falar,
Audio.texto("Olah, meu nome eh NAO")
-
Caso tenha um
arquivo.py
, você pode incluir todas as classes manualmente através da instruçãofrom NAOLIBS import os, time, sys, uuid, AsyncThread, Audio, Camera, Comportamento, Config, Led, Memoria, ModoAutonomo, Motor, Sensor, Sistema
ou importar tudo através do comandofrom NAOLIBS import *
- AsyncThread.py
- Audio.py
- Bateria.py
- Camera.py
- Comportamento.py
- Config.py
- Led.py
- Main.py
- Memoria.py
- MotoAutonomo.py
- Motor.py
- Ouvinte.py
- Print.py
- Sensor.py
- Sistema.py
Cada arquivo citado acima tem em seu contéudo uma classe com o mesmo nome do arquivo, exceto os arquivos Main.py
e Config.py
O arquivo Main.py
é utilizado para escrever um código que deve ser executado após a inicialização do NAOqi. Para funcionar é necessário configurar o carregamento do arquivo em /etc/init.d/main-naolibs.sh
, para isso, escreva nohup sh /etc/init.d/main-naolibs.sh > /dev/null 2>&1
dentro do arquivo /etc/init.d/naoqi
abaixo da linha onde é definida a função start() {
start() {
nohup sh /etc/init.d/main-naolibs.sh > /dev/null 2>&1 &
# A linha com o NOHUP foi adicionada!!!
echo 5 > /proc/sys/vm/swappiness
local bin=$(basename "${BINARY}")
.
.
.
}
stop() {
pkill -f /usr/lib/python2.7/NAOLIBS/Main.py
# A linha com o PKILL foi adicionada!!!
ebegin "Stopping naoqi"
local bin=$(basename "${BINARY}")
.
.
.
}
O arquivo Config.py
é responsável por conter as configurações do robô, por padrão possui uma varíavel chamada ip_addr
que indica o IP do robô, e outra varíavel chamada port_num
contendo o número da porta de acesso para conectar a API NAOqi
O arquivo Config.py
é responsável por conter as configurações do robô, por padrão possui uma varíavel chamada ip_addr
que indica o IP do robô, e outra varíavel chamada port_num
contendo o número da porta de acesso para conectar a API NAOqi
O arquivo AsyncThread.py
é responsável por criar um fluxo de execução de código paralelo, através da utilização de Threads
O arquivo Comportamento.py
é responsável por manusear as opções de comportamentos existentes na memória do robô
A classe Print
contém um único método, que é o __init__
construtor da classe. Esse método recebe como parâmetro o valor que deve ser impresso no console. Exemplo:
Print("Olá meu nome é Matheus")