Você está na página 1de 290

• LD Mobile

Alex Macabu Nogueira – Engenheiro de Controle e Automação


Robotização

 Países mais robotizados


do mundo;

 Dados de robôs para cada


10 mil trabalhadores.
Crescimento

 Crescimento da robótica
no cenário mundial.
Previsão de Vendas

 Previsão de Crescimento
Exponencial;

 Em 2027, previsão de
receita de $7,5B ;

 Neste mesmo ano


serão responsáveis por
29% do Mercado de
robótica industrial.
LD e HD Mobile
• Payloadsde 90, 250 e 1500 Kg
• Bateria recarregável com autonomia de 15 horas e auto
gerenciamento para recarga
• Programação e navegação simplificada com uso de
mapeamento digital
• Conectividade com softwares de gerenciamento de fábrica
(MES/WMS)
• O software de auto-navegaçãoevita colisão com pessoas e
obstáculos de acordo com as normas de segurança ISO 12100,
ISSO 14121-2 e ISO 13849-1
Aplicação

• Customização da
parte superior do
AIV.

• Possibilidade de
processo 100%
autônomo.
Família de Produtos - Robots
Flow Core e nova versão dos LDs LD250 - Médio Payload

• Novo Entreprise Manager • Payload até 250kg


• Novo Software – Flow Core • Velocidade de 1.2 m/s
• Atualização de Hardware dos LDs – Scanner OS32C • Autonomia de 8 horas
Família de Produtos - Robots
HD 1500 - Alto Payload

• Payload até 1500kg


• Velocidade máxima de 1,8 m/s
• Bateria com até 12,5h de duração
Cronograma

Dia 1 Dia 2 Dia 3


• Robôs Móveis • Teoria dos Robôs • Digital I/O
Omron móveis • Configuração
• Setup inicial • Objetos Avançados • ARCL
• Mobile Planner • Rotas e Tarefas • Comunicação com CLP
• Debug
Documentação Importante
Manuais dos Robôs Colaborativos Móveis série LD
• I611 – LD Platform
• I612 – LD Cart Transporter
• I613 – LD Platform Peripherals
• I614 – Mobile Software Suite
• I615 – Enterprise Manager 1100
• I616 – Mobile Robots Safety Guide
• I617 – Advanced Robotics Command Language (ARCL)
• I618 – ARCL – Enterprise Manager
• Tópico 1 – Robôs Móveis Omron
• Identificar os 2 tipos de Robôs Móveis Omron
• Localizar os componentes externos dos Robôs Móveis Omron
• Localizar os componentes internos dos Robôs Móveis Omron
AMR vs. AGV
AGVs (Automated Guided Vehicles) necessitam de modificações nas
linhas de produção, sendo necessária a instalação de faixas
magnéticas ou trilhos toda a vez que a rota do AGV é alterada,
criando um downtime e custos extras indesejados.
• Necessitam de um caminho pré-definido para seguir:
• Faixas magnéticas ou trilhos
• Lasers ou outros tipos de beacons nas paredes
AMRs (Autonomous Mobile Robots) conseguem navegar de forma
segura, sem a necessidade de instalação de equipamentos adicionais
para auxiliar na sua navegação.
• Os AMR criam um mapa da planta utilizando seus sensores
embarcados.
• Constantemente detectando seus arredores.
º Quando há mudanças no processo, AMRs são capazes de
alterar suas rotas ou trabalhar em novas tarefas, com
facilidade.
Robôs Móveis Omron
• LD 90 Atributos
Omron Mobile Robot Models
• Dois Modelos
• LD OEM
º Payload: 90kg e 250kg

• LD Transporter
º 105kg
º 130kg
LD OEM

A plataforma OEM está disponível para desenvolvedores de aplicações customizadas. Inclui o


software de auto-navegação, ideal para uso em ambientes que o robô terá contato com seres
humanos, corredores estreitos e aplicações onde um robô autônomo compacto possui vantagem.
Nossos parceiros integradores, como a SetSystem, possuem acesso a um confiável sistema de
navegação, fonte de alimentação on-board, sistema de carga automatizada, portas I/O para
integração do hardware na plataforma móvel.

O LD-90 possui capacidade de transporte de cargas de até 90kg com velocidade máxima de
1,35m/s. Sua bateria interna possui autonomia que pode chegar até 15h.

O LD está disponível também em sua versão de proteção contra ESD (Electro Static Discharge). Sua
carenagem visa proteger tanto o robô quanto os dispositivos sensíveis à descargas eletroestáticas
dentro do ambiente de operação do robô.

• Proteção para campos elétricos de aproximadamente 40kV/cm de ar;


• Carenagem desenvolvida para resistir à formação de eletroestática;
LD Transporter
O Cart Transporter foi desenvolvido para se conectar a carts móveis e realizar o transporte de cargas entre o ponto de
carga e descarga. Aplicações incluem reposição de inventário, movimentação de racks móveis, transporte de produtos
entre as etapas do processo de produção, transporte de produtos finalizados para o local de armazenamento. O Cart
Transporter utiliza seu sistema de navegação para encontrar, de forma autônoma, um caminho pelo chão-de-fábrica sem
a necessidade de modificações na planta. Ele é capaz de operar de foram segura com portas e corredores, pois é capaz
de desviar de obstáculos como pessoas, empilhadeiras, transportadoras e outros objetos em seu caminho.

O Cart Transporter está disponível em duas opções:


• LD-105CT com capacidade de carga de 105 kg (velocidade máxima de 1,35 m/s)
• LD-130CT com capacidade de carga de 130 kg (velocidade máxima de 0,9 m/s)

Acessórios chave:
• Kit de lasers laterais: Tecnologia patenteada que fornece maior segurança e capacidade de desvio de objetos;
• Kit de acuidade: Permite que cada robô navegue em ambientes altamente dinâmicos, como em armazéns e chão-de-
fábrica populosos;
• Docking Station: Para carregamento da bateria do robô;
• HAPS (High Accuracy Positioning System): Para aplicações que requerem o alinhamento preciso do robô, como em
sistemas de esteiras de carga/descarga;
• Botão de Chamada: Permite que o operador chame o robô para uma localização específica. Isso inclui I/O digitais
que podem ser utilizadas para abrir portas;
• HMI: Com tela de 7 polegadas para interação com o robô.
Anatomia dos Robôs Móveis Omron
Conhecendo melhor o LD Mobile
Carenagem
A carenagem é fixada através de imãs.
• A única parte da carenagem que não é fixada por imãs é o parachoque dianteiro.
• O painel superior frontal possui imãs mais fortes que os demais.
Painéis Laterais
Os painéis laterais possuem pequenos conectores que alimentam as luzes laterais.
• Esse conector irá se desconectar facilmente ao remover o painel lateral.
Portas de Manutenção
Acima do painel lateral esquerdo você encontrará duas portas.
• Uma para o Joystick
• Uma para conexão Ethernet (Manutenção)
º Essa interface possui IP fixo, acessível
através do endereço 1.2.3.4.
Controle do Joystick para Mapeamento
O joystick possui 4 controles.
• Um botão analógico para direção
• Um botão para ajuste de velocidade
• Um botão para definir um objetivo (Goal)
• Um botão do tipo gatilho

O botão direcional analógico é utilizado para


pilotar o robô, sua velocidade durante esse
processo pode ser controlada através do ajuste
de velocidade. O botão ‘Goal’ pode ser utilizado
durante a criação do mapa para definir os
objetivos. O robô irá se movimentar somente se o
botão de gatilho estiver acionado.
Compartimento da Bateria
O compartimento da bateria está localizado na parte
de trás do robô, abaixo dos sonares traseiros.

Para remover a bateria, desligue o robô, desconecte


os dois cabos e puxe a bateria.
A Bateria
• Fornece alimentação para a toda a
Plataforma, robô e
periféricos.(24VDC)
• Autonomia de até 15h (Sem carga)
• Tempo de carga de 4 horas
• Indicadores de carga presentes no
próprio corpo da bateria.
A Bateria - Indicadores
Sonares Traseiros
Acima da bateria, há um conjunto de sensores
do tipo sonar.
Esses sensores detectam obstáculos atrás do
robô.
• Alcance de 2 metros.
• Robô reduz a velocidade, quando se movimenta para
trás.

O robô móvel se movimenta para trás nas


seguintes ocasiões:
• O parachoque dianteiro é acionado. Desvio de
obstáculos encontrados durante o percurso.
• Durante a docagem para carregamento.
Painel de Operações do Usuário
O painel HMI permite interação básica entre o robô e os seres humanos.
• O display LCD exibe mensagens de status do robô.
Botões para ligar, desligar o LD e para liberar os freios do robô. Além de uma chave,
que serve para desabilitar o botão ‘OFF’,
O painel pode ser utilizado para mover o robô manualmente.
• Pressione o botão E-Stop e mantenha o ‘Breake Release’ pressionado.
• Movimente o robô manualmente apenas quando absolutamente necessário, pois seus sensores
de segurança não irão funcionar.
º Em condições normais, utilize o Joystick conectado na porta de manutenção para movimentar
o robô.
Painel Frontal - Display
Com o robô ligado, o painel do operador exibe informações importantes para o
usuário. Isso inclui seu endereço IP na rede Wi-Fi que o robô está conectado, a
intensidade do sinal Wi-Fi, o nome atribuído ao robô (Robot ID) e o nível de carga da
bateria. É exibido também um texto informando o status atual de operação do robô.
Parachoque Dianteiro
O parachoque dianteiro é um mecanismo de segurança secundário para quando o
robô se movimenta para frente. Se acionado o robô irá parar imediatamente e
aguardar por 2 segundos.
• Força necessária para acionamento = 100N
Laser de Segurança
O laser de segurança atua num ângulo de 240° através da abertura frontal
• É o principal Sistema de navegação do robô.
• Essa área precisa ser mantida limpa e livre de sujeira ou obstáculos.
Rodas de Tração
Rodas devem ser mantidas limpas de poeira em
excesso, óleos e outros contaminantes.
Os motores podem ser substituídos.
• Mais informações no curso de manutenção de robôs
móveis da Omron.
Área de carga
Abaixo da área de carga (Payload Bay), estão os
principais componentes do robô.
• Robot Core – O cérebro do robô
• Dispositivos de Rede
• Conexões I/O
• Fontes de alimentação adicionais
• Periféricos do usuário podem ser armazenados aqui.
Controlador dos Sonares
O controlador dos sonares está localizado na parte da frente da área de carga.
Robot Core
Este é o núcleo computacional, o cérebro do robô
móvel.
Composto por 3 Componentes
• Computador
• Microcontrolador + FPGA
• Amplificadores para os Servos
Robot Core
O Robot Core é o cérebro computacional do robô
móvel.
Robot Core
O Robot Core está localizado no meio da área de carga
(Payload Bay).
• A parte superior contém das conexões para os usuários.
• A parte inferior é utilizada para conexões internas do robô.
º Drive
º Laser
º Sistemas de Segurança
º Dongle de licença
• Conexões disposibilizadas para o usário na área de carga.
º Dispositivos I/O
º Hardware adicional de segurança

A linha azul representa a divisão entre a parte superior e


inferior
Charging Dock – Dock de carregamento

• O rolete guia o LD para dentro


da dock. É possível inspecionar
essa peça para verificar se
precisa de reposição.
• Para substituir o rolete:
• Remova o parafuso localizado no
centro do rolete.
• Remova o rolete antigo e substitua
por um novo.
Tópico 1 - Perguntas
1. Quais os dois tipos de Robôs móveis fornecidos
pela Omron?
LD OEM
LD Transporter

2. Como é feita a fixação da carenagem externa no


robô?
Imãs

3. Qual é o endereço de IP padrão da porta Ethernet


de Manutenção?
1.2.3.4
Tópico 1 - Perguntas
4. Qual é o jeito recomendado para movimentar o
robô manualmente?
Utilizando o Joystick

5. Qual é o principal Sistema de navegação do robô


móvel?
O laser de segurança.s

6. Qual é o “cérebro” do robô móvel?


O Robot Core
• Tópico 2 – Setup Inicial
• Identificar o IP fixo da porta de manutenção
• Utilizar a porta Ethernet de manutenção para realizar a configuração da rede
• Determinar a informação necessária para conectar o Robô móvel da Omron na rede Wi-Fi
• Demonstrar como utilizer o SetNetGo para conectar o robô na rede Wi-Fi
Conexão Inicial com o Robô
Porta Ethernet de Manutenção
• Localizar a porta Ethernet dentro da porta de manutenção
Endereço de IP fixo e permanente.
• 1.2.3.4
• Máscara de sub-rede 255.255.255.0
Permite acesso de manutenção/emergência ao robô.
Permite conexão a rede Wi-Fi para facilidade de acesso.

NOTA: Configuração inicial requer um computador com conexão de rede via cabo, com endereço de IP
1.2.3.xx onde ‘xx’ pode ser qualquer valor diferente de 0, 4 ou 255.
Conectando ao Robô
Para conectar via navegador de internet, acesse o endereço 1.2.3.4
• Confirme o aviso de segurança.
• A página do SetNetGo será carregada.
SetNetGo
SetNetGo é a interface de configuração do robô.
Essa página pode ser acessada através da rede wireless para facilidade de utilização.
SetNetGo – Aba Network
• Conecte a rede Wi-Fi
• Atribua um endereço de IP para a rede wireless
Laboratório – Setup Inicial e Conectando a rede Wi-Fi
Tópico 2 - Perguntas
1. Qual o endereço de IP fixo da porta Ethernet de
manutenção?
1.2.3.4

2. Verdadeiro ou Falso: A porta Ethernet de


manutenção é utilizada para acesso ao SetNetGo
para configuração inicial.
Verdadeiro

3. Qual aba no SetNetGO é utilizada para conexão do


robô a rede Wi-Fi?
Aba Network
• Tópico 3 – Mobile Planner
• Identificar as operações básicas do Mobile Planner
• Descrever a função do Dongle
• Conectar o Mobile Planner a um robô e reproduzir o mapa de navegação
• Utilizar o Mobile Planner para comandar o robô para navegar até um objetivo definido pelo usuário ou localização.
Mobile Planner
Mobile Planner é o software de configuração dos robôs móveis Omron
• Configuração dos Parâmetros do Robô
• Geração do Mapa de Navegação
• Configuração do Mapa de Navegação
• Gerenciamento de Rota do Robô
• Gerenciamento de Tarefa do Robô
• Gerenciamento de Frotas de Robôs
Mobile Planner – Hardware Dongle

• Mobile Planner é ativado através do uso do Dongle


USB
• Mobile Planner pode rodar sem o uso do Dongle
porém com funcionalidades limitadas – Modo do
Operador
• Dongle pode ser movido fisicamente entre
computadores para habilitar o uso do Mobile Planner.
Mobile Planner – Conectando ao Robô
Conecte o computador na mesma rede Wi-Fi em que o robô está conectado
• É necessário o endereço IP do Robô
Certifique-se que o dongle está conectado
Abra o Mobile Planner
• Digite o endereço IP do Robô
• Selecione as abas de configuração desejadas
• Clique no botão ‘Connect’.
Mobile Planner – Conectando ao Robô
Existem uma série de check boxes
• Fleet
• Config
• Map
• SetNetGo
Quando conectado a um único robô, apenas Config e Map são necessárias.
A funcionalidade de Frota (Fleet) requer o uso do Fleet manager, e será abordada
posteriormente.
Mobile Planner – Endereço IP do Robô
Caixa de texto para o endereço de IP do Robô ou do Enterprise Manager.

Connect/Disconnect to robot/Enterprise Manager


Mobile Planner – Check Boxes
Exibe a janela da frota, onde são exibidos Abre o mapa que o
todos os robôs gerenciados pelo Robô/Enterprise
Enterprise Manager, bem como tarefas e Manager está utilizando
estatísticas. atualmente.

Abre o SetNetGo, o Sistema


Contém a configuração Operacional do Robô
do Robô ou do
Enterprise Manager
Anatomia do Mobile Planner
Conecte ao Robô
• Mobile Planner possui funcionalidade muito limitada até se conectar ao Robô

Os itens do Menu e abas irão ser preenchidos após conexão com o Robô.
Laboratório – Conectando o Mobile Planner ao Robô
Mobile Planner – Aba de Configuração
Cinco sub abas
• Robot Interface
• Robot Operation
• Robot Physical
• Enterprise
• Debug
Essas sub abas contém os parâmetros para configuração do Robô
Mobile Planner – Aba Mapa
O mapa é utilizado para navegação do Robô
• Configure o mapa
• Monitore a localização do robô em tempo real.
Mobile Planner – O Mapa
• Gerado utilizando o robô
• Editado através da aba Map no Mobile Planner
• Armazenado no Robô e no computador de configuração.
Anatomia da aba Map
A Aba Draw contém
objetos do mapa que você Aba Build, permite que você Show Robot irá exibir a
pode desenhar. Exemplo:
programe o robô utilizando posição do robô e habilitar
Objetivos(Goals), Zonas
Proibidas, etc. tarefas. mais opções.
Criação do Mapa – Primeiros Passos
• O robô é utilizado para criar o mapa
• Deve se utilizer o Joystick para dirigir o robô
• Organize o ambiente de trabalho da mesma maneira que será utilizado com o
robô em operação.
• Processo de criação de mapa é chamado de Scan
Criação do Mapa – Iniciando um Scan
Scan são iniciados a partir do Mobile Planner
• Conecte no Robô
• Robot > Map Creation > Start Scan

Dê um nome para o Scan e clique em OK

NOTA: Certifique-se de incluir a extensão .map


ao final do nome do arquivo. Caso contrário o
programa entrará em erro da próxima vez que
abrir.
Criação de Mapa – Dicas de Scaneamento
Utilize o Joystick para pilotar o robô.
Permaneça atrás do robô e fora do alcance do laser frontal.
Finalize o Scan no mesmo local em que o iniciou.
Pilote tanto no sentido horário quanto no antihorário.
• Feche o circuito tanto no sentido horário quando no antihorário.
• Isso garante que a área inteira foi mapeada da maneira mais precisa possível.
Certifique-se que o robô “veja” pequenos corredores, cantos estreitos e outras áreas
de acesso limitado.
Remova qualquer obstáculo que possa não estar presente durante a operação normal
do robô.
Scanning – Terreno irregular
Algumas superficies podem causar escorregamento nas rodas, adicionando erros no
processo de Scan.
• Superfícies altamente texturizadas, como em Chapas Xadrez
• Superfícies escorregadias como Concreto Polido
• Superfícies como estas podem requerer Scans e múltiplas direções.
Scanning – Fechando o Circuito
Iniciar e finalizer o scan no mesmo local ajuda o
robô a minimizer os erros.
• Crie pequenos loops onde possível
• Finalize o scan na mesma localização inicial
º Procure manter aproximadamente o mesmo
direcionamento.
Scanning – Outras dicas
• Abra todas as portas que possam estar abertas durante a operação normal do
robô
• Faça o mínimo de curvas possível
Scanning – Finalizando o Scan
Interrompa o Scan através do
MobilePlanner
• Robot > Map Creation > Stop Scan
Processando o arquivo de Scan
Arquivos Scan possuem extensão .2d ou .z2d
O arquivo de Scan é processado e
transformado em um arquivo de mapa.
• Reúne todos os dados e os compila para
minimizar os erros.
Abrindo um arquivo de Scan
Clique ‘Open on Robot’ e selecione o robô
desejado
Selecione ‘Scan File’ e escolha o arquivo desejado
• Por padrão, o arquivo de scan mais recenete será
selecionado
Processando o arquivo de Scan em um arquivo de Mapa
Quando um arquivo de scan é aberto, o
caminho que o robô percorreu e todos os
dados coletados são exibidos.

O arquivo de Scan é automaticamente


processado e transformado em um arquivo de
mapa.

Quando o processamento for concluído, o


software irá automaticamente exibir uma
mensagem para salvar.
Salvando o Mapa
• Quando o scan for processado, selecione
‘Save As’ para salvar o novo mapa
• Atribua um nome único ao mapa
• Certifique-se de incluir a extensão .map
ao final do nome do arquivo.
• Meu_mapa.map
Editando o Mapa
Edite o mapa de modo a refletir o ambiente
em que o robô irá trabalhar.
Aba Draw
• Ferramentas para edição do mapa
• Restringe o movimento do Robô
• Direciona o movimento do Robô
Edição do Mapa – Ferramenta Borracha ( Eraser )
• Utilize a ferramenta Eraser para limpar objetos
dinâmicos, como cadeiras, pessoas ou caixas.
• O menu cascata permite ajustar o tamanho da
ferramenta.
• Traços apagados acidentalmente podem ser
desfeitos utilizando Undo (Ctrl+Z)
Edição do Mapa – Ferramenta Borracha ( Eraser )
Edição do Mapa – Área Proibida ( Forbidden Area )
• Não é permitido que o robô entre em uma área
proibida
• Utilize Áreas Proibidas para bloquear lugares
aonde o robô nunca deve ir
• O Robô irá desviar de Áreas Proibidas da mesma
maneira que desvia de obstáculos
• Evite criar Áreas Proibidas pequenas demais,
inclusive que não possam ser observadas no
software.
Isso resultará no robô misteriosamente evitando essa área
ao se movimentar!
Edição de Mapa – Área Proibida ( Forbidden Area )
Reduzindo Tempo de Computação
Toda a área aberta será levada em
consideração na computação, incluindo
áreas inacessíveis ao robô.
Ao bloquear áreas desnecessárias com
zonas proibidas, o tempo de computação
será melhorado.
• Isso inclui salas aonde o robô não irá entrar,
interior de máquinas e equipamentos e
espaços vazios fora do ambiente de trabalho.
Edição de Mapas – Linha Proibida ( Forbidden Line )
• Não é permitido que o robô cruze uma linha
proibida
• O robô irá evitar linhas proibidas do mesmo jeito
que evita obstáculos.
• Pode ser usada para conectar Áreas Proibidas (
Forbidden Areas )
• Evite criar Linhas Proibidas pequenas demais,
inclusive que não possam ser observadas no
software.
Isso resultará no robô misteriosamente evitando essa área
ao se movimentar!
Map Editing – Forbidden Line
Edição de Mapas – Objetivos ( Goals )
• Objetivos (Goals) são lugares no mapa para
onde o robô irá navegar, para interagir com
ferramentas e operadores.
• Objetivos(Goals) representam coordenadas
X, Y, e θ no mapa
• Theta atribui a um ângulo de saída
• Goals estão associados à tarefas e macros.
Edição de Mapas – Objetivos (Goals)
Salvando Mapa no Robô
O mapa precisa ser salvo no Robô antes de
ser utilizado.
• Um mapa está salvo no robô se o endereço de IP
é exibido junto ao nome do mapa, na aba mapa.

No PC No Robô
Salvando Mapa no Robô
Após salvar o mapa, uma caixa de diálogo é exibida perguntando se deseja utilizar
esse mapa.
• Esse será o mapa que será utilizado pelo robô
Laboratório – Criação de Mapa
Mobile Planner – Trabalhando On Line
Mobile Planner pode trabalhar On Line com o Robô
O Robô pode ser comandado através do Software
Configurações e parâmetros podem ser alterados e salvos no robô.
“Show Robot” - Botão no lado direito do Mobile Planner
Mobile Planner – Show Robot
Localização
A confiança que o robô tem na precisão de sua localização dentro do espaço de
operação.
• Medida em porcentagem
• Quando a pontuação cai para um valor muito baixo, o robô irá parar

A Localização é atribuída pelo MobilePlanner


Localização
Manualmente coloque o robô em um local conhecido
• Certifique-se de que a localização possa ser facilmente determinada no mapa do MobilePlanner
Clique no botão ‘Localize Robot’ para abrir a ferramenta.Click on the Localize Robot
button to launch the tool

Utilize o mouse para determiner a posição e orientação do robô


Clique em ‘Localize to Point’ na janela da ferramenta.
Localização
• Clique em ‘Localize to Point’
• Clique em Done para fechar a janela de Localização
• Quanto maior a potuação (score) da localização, melhor
• Qualquer valor acima de 80% é aceitável
Nota: Monitorando os Dados do Robô no MobilePlanner
Pode ser tentador mostrar todos os dados do robô enquanto observamos pelo
MobilePlanner. Porém em alguns casos, mostrar mais informação do que o
necessário pode se tornar confuso.

Mais importante, se mais dados forem exibidos, mais dados serão transmitidos para
o computador, se a conexão estiver lenta, exibir mais informações que o necessário
pode causar lentidão no monitoramento da operação do robô em tempo real.
Comandando o Robô pelo MobilePlanner
• Permite comandar o robô para navegar até um objetivo (Goal) ou coordenada
• Manobrar o robô manualmente

NOTA: Robô precisa estar sendo


exibido no mapa
Mobile Planner – Enviar a um Ponto ( Send to Point )
Clique no botão ‘Send to Point’
Clique no lugar desejado do mapa
• O Robô irá calcular o caminho mais direto para aquele ponto e navegar até ele por essa rota
calculada.
Mobile Planner – Send to Point
Mobile Planner – Enviar a um Objetivo (Send to Goal)
Clique no botão ‘Send to Goal’
Dê um clique duplo no Goal desejado
• O Robô irá calcular o caminho mais direto para aquele Goal e navegar pela rota calculada
Mobile Planner – Send to Goal
Mobile Planner – Drive
Clique no botão ‘Drive’
Uma janela com os controles direcionais irá se abrir
• Velocidade determinada pelo slider ‘Speed’
• Utilize os botões direcionais para controlar o robô
º Botões Esqueda/Direita efetuam a rotação do robô em torno do seu próprio eixo
º Botões Frente e Trás movimentam o robô em linha reta nessas direções
Comandando o Robô a partir do Mobile Planner
• Todos os recursos como Áreas Proibidas (Forbidden Areas) e linhas, obstáculos e
outras recursos, podem ser observados quando comandando o robô através do
Mobile Planner
• Isso se aplica também quando utilizamos as funções: Send to Goal, Send to Point,
e Drive
Laboratório – Comandando o Robô
Tópico 3 - Perguntas
1. Mobile Planner é utilizado para configurar o robô,
criação de mapa, rotas, tarefas e controle de frotas.
Essa afirmação está correta?
Sim, essa afirmação está correta!

2. Mobile Planner requer um Dongle físico para


ativação. Esse dongle pode ser utilizado em diversos
computadores para habilitar o uso do Mobile
Planner?
Sim, o Dongle pode ser transferido de um
computador para o outro, para ativar o
MobilePlanner e utilizá-lo enquanto o
Dongle estiver fisicamente instalado.
Tópico 3 – Perguntas
3. Qual é o método recomendado para pilotar o robô durante
a criação do mapa?
Utilizando o Joystick.

4. Aonde deve permanecer o operador durante o scan para


criação do mapa?
TO operador deve permanecer atrás do robô. Isso
garante que o operador não seja identificado como um
objeto pelo robô, durante a criação do mapa.

5. Qual é a extensão do arquivo de mapa, quando este é salvo


pelo robô?
*.map
Tópico 3 - Perguntas

6. Por favor corrija essa declaração: O robô irá dirigir


dentro das fronteiras das áreas proibidas.
O robô NÃO irá dirigir dentro das áreas
proibidas.

7. Liste 3 maneiras para comendar o robô para nevagar pelo


MobilePlanner.
Send to Goal, Send to Point e Drive
FIM DO PRIMEIRO DIA
• Tópico 4 – Teoria dos Robôs Móveis
• Explicando o Planejamento de Rotas
• Lista de Fatores Comuns que afetam o Planejamento de Rotas
• Identificar Parâmetros-Chave importantes para Planejamento de Rotas
• Ilustrar o conceito de Planejamento de Espaço Livre
Navegação do Robô Móvel – Planejamento de Rotas
Planejamento de rotas é como o robô determina o melhor caminho para que ele
possa chegar à um objetivo (Goal) ou à um lugar a partir de sua localização atual.
• Esse é o Global Path, o melhor caminho do ponto A para o ponto B.
Depois de calcular o Global Path, o robô segue pelo caminho determinado enquanto
desvia de obstáculos não mapeados.
O caminho do robô se altera quando um obstáculo é encontrado.
Se o robô não pode prosseguir, quando por exemplo uma porta está fechada, ele
poderá recalcular o Global Path para encontrar uma rota alternativa.
• Isso é chamado de Re-Planning, replanejamento.
Path Planning – Um Sistema Baseado em ‘Custos’
O mapa está dividido em pequenos
quadrados, formando um grid.
Espaços ocupados possuem um custo
infinito.
Espaços desocupados possuem custo de 0.1
Diversos fatores podem afetar o custo de
um espaço no grid.
• Objetos físicos (Obstáculos)
• Objetos de Mapa (Linhas preferenciais, linhas
proibidas, Zonas de tráfego regulado)
• Configurações do Robô

Nota: O Grid exibido acima ilustra como o software calcula o caminho.


O Grid do Path Planning - AVISO
Aviso para o tamanho do Grid:
• A precisão do planejamento de rotas pode ser melhorada diminuendo o tamanho de cada
quadrado do grid, através do parâmetro
º PlanRes
• CUIDADO: Essa melhoria na precisão é acompanhada de um aumento do tempo de
processamento do robô. Irá demorar mais para planejar rotas com uma resolução menor no
PlanRes.
º Exemplo: Uma mudança no PlanRes de 100mm para 50mm irá aumentar o tempo de
computação em 4 vezes.
‒ O valor padrão é de 70mm², suficiente para a maioria das aplicações.
Parâmetro PlanRes
• Define o tamanho do Grid do Path Planning
• O valor padrão é 70mm²

Nota: O grid do Path Planning NÃO é o mesmo grid exibido no Mobile Planner quando visualizamos o
robô. O grid do Path Planning é muito menor.
Fatores Comuns que afetam o Custo do Movimento
Distância para viajar
• O robô escolhe o caminho mais curto com o menor custo
• O custo do espaço no grid aumenta conforme a distância de um obstáculo diminui.

Parâmetros e Objetos do Mapa que afetam o Custo


• PlanFreeSpace [Parâmetro]
• Preferred Line [Recurso de Mapa]
• Resisted Boundary and Sector [Recurso de Mapa]
• Forbidden Lines and Area [Recurso de Mapa]
• Preferred-Direction Sector [Recurso de Mapa]
• Need-To-Enter Sector [Recurso de Mapa]
Parâmetro PlanFreeSpace
Define a distância preferencial que o robô deve manter dos obstáculos
• A curva de Custo aumenta conforme o robô se aproxima do obstáculo
• É menos desejável que o robô dirija dentro dessa distância
PlanFreeSpace
Neste caso, o robô não está dentro da área
do PlanFreeSpace.
O Robô preferencialmente irá manter esse
espaço.
Qualquer parte do grid que possuir um
obstáculo dentro do PlanFreeSpace terá um
custo atribuído inversamente proporcional à
sua distância do obstáculo.

Os demais espaços ocupados do grid serão


tratados conforme explicado anteriormente.
PlanFreeSpace

• O Robô está dentro da distância especificada no


parâmetro PlanFreeSpace, logo trafegar por esse
espaço é mais custoso.
• O Robô irá planejar o trajeto mais longe possível
da parede.
PlanFreeSpace
• O Robô está dentro da
distância atribuída por
conta das duas paredes.
• O Robô irá trafegar pelo
meio do corridor.
Visando minimizar o
custo nos dois lados.
Laboratório – O Efeito do Path Planning
Tópico 4 - Perguntas
1. Defina Path Planning, o Planejamento de Rotas.
Path Planning é como o robô determina o melhor
caminho para seguir até um objetivo(goal) ou
localização comandada a partir da sua localização
atual.

2. Qual é o custo de um espaço desocupado no Grid?


Os espaços desocupados no Grid possuem um
custo de 0.1.

3. Explique porque não é recomendado atribuir um valor


muito baixo ao parâmetro PlanRes
Quando é atribuído um valor muito baixo ao
parâmetro PlanRes o custo computacional para cálculo do
caminho se torna muito alto, aumentando o tempo para
cálculo da rota a ser seguida.
Tópico 4 - Perguntas
4. Liste as configurações e objetos de mapa que
afetam o custo de uma rota.
PlanFreeSpace [parâmetro]
Preferred Line [Recurso do Mapa]
Resisted Boundary and Sector [Recurso
do Mapa]
Forbidden Lines and Area [Recurso do
Mapa]
Preferred-Direction Sector [Recurso do
Mapa]
Need-To-Enter Sector [Recurso do Mapa]
Tópico 4 - Perguntas
4. Ilustre como o parâmetro PlanFreeSpace pode garantir que
o robô trafegue pelo centro de um corredor.
• Tópico 5 – Objetos Avançados
• Identificar Recursos Avançados de Mapas mais comumente utilizados
• Explicar a operação dos Recursos Avançados de Mapas mais comumente utilizados
• Empregar Objetos Avançados de Mapas para manipular o tráfego do Robô
• Integrar Objetos Avançados de Mapas em um Mapa
Preferred Line – Linha Preferencial
Linha preferencial, ou Preferred Line, é uma
linha que o robô tentará seguir. Ela reduz o
custo dos espaços do grid em que ela cruza.

O custo de cada célula contend a linha será


dividido pelo parâmetro Preference.

O valor padrão do Preference é 2


• O custo para seguir a linha é dividido por 2

Para utilizar o parâmetro Preference, altere o


parâmetro UseDefaultPreference para False
• Atribua um novo valor para Preference
Preferred Line – Linha Preferencial
A Preferred Line à direita é mais longa, porém possui um custo menor

Sem a preferred line Com a preferred line


Resisted Sector
Um Resisted Sector aumenta o custo de toda a célula do grid coberta por ele.
O custo de cada célula coberta pelo setor será multiplicado pelo parâmetro
Resistance.
O valor padrão do parâmetro é 2, fazendo com que essas células custem duas vezes
mais.

Vs.
Resisted Line

• Resisted Lines possuem funcionamento complementar ao Preferred Lines


• Espaços do Grid cruzados pela Resisted Line custam mais para serem trafegados
• O valor padrão do parâmetro Resistance é 2.
• A linha tracejada representa a menor distância até o local determinado, a Resisted Line
aumenta o custo de determinadas células, tornando menos custoso para que o robô
contorne as células cobertas pela linha.
• Resisted lines são tipicamente utilizadas para criar faixas de tráfego, onde “mudar de
faixa” é menos desejável ou potencialmente perigoso.
Preferred Direction Area – Área de Direção Preferencial

• Setores com PreferredDirection são utilizados para fazer com que o robô se mantenha em ‘pistas
virtuais’ em áreas com tráfego nas duas direções.
• PreferredDirectionRight geralmente utilizados em corredores. O robô dará preferência para se
manter a direita. Será mais custoso trafegar do lado oposto do corredor e menos custoso trafegar
pela direita.
• PreferredDirectionLeft também disponível, possui funcionamento complementar ao
PreferredDirectionRight.
Preferred Direction Area

PreferredDirectionSideOffset = 250 (default)

• O parâmetro PreferredDirectionSideOffset define o quão longe (em mm) o robô deve ficar do lado oposto a área preferencial de
direção.
• O parâmetro UseDefaultSideOffset deve ser alterado para False para que o valor em PreferredDirectionSideOffset faça efeito.
• Configurar um valor muito baixo para esse parâmetro pode causar que o robô saia brevemente do setor, caso não haja uma parede ou
obstáculo prevenindo.
Standby Goals
Standby Goals são lugares para o robô trafegar
e aguardar, quando não está navegando para
um ponto ou Goal.

• Quando um robô está disponível (ocioso), não há


outras tarefas a serem executadas, ele vai até um
ponto de Standby e aguarda até que uma tarefa
seja designada à ele.

• O robô irá selecionar o ponto de Standby mais


próximo para estacionar.
Uma breve explicação sobre os Ícones dos Parâmetros
Todos os parâmetros que necessitam um reboot, são identificados com um ícone de
seta curvada do lado esquerdo do nome do parâmetro.

Outros ícones antes dos parâmetros também possuem significado. Esses são os três
ícones comumente presentes na janela de parâmetros.
Parâmetro para usuários intermediários. Sua alteração pode ser
necessária, mas não devem trazer efeitos colaterais.

Parâmetro para usuários avançados. Sua alteração pode ser necessária, mas não
com frequência. Quaisquer efeitos colaterais são obvios e explicados.

Parâmetro para usuários especialistas. Se alterados, trarão efeitos


colaterais, que podem ou não ser sutís
Habilitar Recusos de Mapa – Parâmetro Standby
Para habilitar o Standby vá em: Robot Operation Settings > Map Features > Standby
Queuing Manager – Parâmetros do Gerenciador de Filas
Para habilitar o Queuing Manager vá em: Robot Operation Settings > Queuing
Manager > Queuing Manager
• Por padrão, os parametros do Queuing Manager não são exibidos.
• Marque a checkbox Show Expert + Parameters para exibí-los
Queuing Manager – Habilitar Parâmetro Parking (Estacionar)
Para habilitar o Parking vá em: Robot Operation Settings > Queuing Manager > Enable Parking
Esse parâmetro permite navegação autônoma para estacionar em um Parking Goal após o
término de um movimento comandado.
• Com QueuingManager habilitado, o parâmetro EnableParking fica disponível para ser
ativado.
• Primeiramente, na lista de parâmetros, desmarque a checkbox Show Expert + Parameters
• Defina True ou False no mesnu cascata do parâmetro EnableParking.
Queuing Manager – IdleTimeUntilResume
IdleTimeUntilResume, é o período ocioso que o robô aguarda após concluir um
trabalho e antes de aceitar outra tarefa ou trafegar até um ponto de Standby. É um
intervalo de tempo (em minutos) entre as tarefas.

Habilite em: Robot Operations > Queuing Manager > IdleTimeUntilResume


Standby Goals - Parking Goals
• Posicione um ponto de Standby em áreas que estão for a do caminho de tráfego e
longe de ferramentas e áreas de interesse.
• Utilize um goal do tipo Standby
• Defina o objetivo como Parking(Standby)
Docks
Estação de carregamento do robô
• Melhores Práticas ditam que devemos posicionar a dock no local desejado antes de criar o mapa.
º Proporciona uma referência para localização da dock no mapa
No menu Draw, adicione LD/Lynx Dock Target na localização da Dock
• Rotacione o Dock Target na mesma orientação da Dock física.
No menu Draw adicione uma LD/Lynx Dock
• Posicione a Dock a 1,5~2,0m de distância do Dock Target
• Rotacione a Dock para facear o centro do Dock Target
Laboratório – Linhas, Áreas e Parking Goals
Tópico 5 - Perguntas
1. Verdadeiro ou Falso: Robôs irão seguir uma linha Linha
Preferencial (Preferred Line) por que o custo de tráfego
é menor sobre o caminho da linha.
Essa afirmação é verdadeiro

2. Descreva como um Resisted Sector afeta o tráfego do


Robô.
O Resisted Sector aumenta o custo de tráfego
para um nível suficientemente alto para
forçar o robô a traçar uma rota que contorne
essa área.
Tópico 5 - Perguntas
3. Áreas com Direção Perferencial, Preferred Direction, forçam
o robô a trafegar pelo centro deste corridor. Essa afirmação
é válida? Explique.
Essa afirmação é INVÁLIDA. Áreas com Preferred
Direction forçam o robô a se manter a esquerda
ou direita, dependendo da orientação
determinada.

4. Que configurações são empregadas com operações


Standby?
Standby
Enable Parking
Idle Time
• Tópico 6 – Rotas e Tarefas
• Explicar e construir uma Rota
• Reconhecer tarefas mais usuais do robô
• Empregar os dois principais tipos de tarefas
• Criar uma série de tarefas para solucionar uma aplicação
Rotas - Routes
Rotas são uma coleção ordenada de objetivos (Goals)
Rotas podem ser utilizadas em aplicações onde uma série de Goals serão atingidos
sempre na mesma ordem.
• Isso é comum em manufaturas levas, onde pequenas peças são entregues em uma série de
postos de trabalho.
Defina na aba Build > Routes no Mobile Planner
Rotas - Routes
Dois métodos para criação de Rotas
• Arraste e solte da lista Sources
• Clique no botão Pick Goals no final da lista Editable Lists e clique em Goals no
mapa para preencher a lista de Rotas.
Rotas - Routes
Um robô pode ser atribuído para patrulhar uma rota por uma única vez ou então de
modo contínuo, em um loop, através do MobilePlanner.
É possível comandar para patrulhar uma rota pelo MobilePlanner, através de uma
tarefa ou comando do ARCL
Laboratório – Rotas
Tarefas do Robô - Robot Tasks
Robot Tasks são atividades pré-programadas que permitem que o robô execute
funções que vão além da navegação de Ponto-a-Ponto.
Exemplos de Tarefas (Robot Tasks)
• Ler entradas I/O
• Acionar saídas I/O
• Comandar que o robô se mova
• Fazer o robô falar
• Diversas maneiras de faze-lo aguardar
Tarefas - Tasks
Atribuído a um Objetivo (Goal)
Incluídas em um Macro
Definidas como Operações Especiais(Special Operation)

Cada tarefa possui parâmetros específicos individuais


• Esses parâmetros são configurados individualmente para cada
instância da tarefa.
Tipos de Tarefas – Non-Instant e Instant
Existem dois principais tipos de tarefas
• Non-Instant e Instant, não instantâneas e instantâneas
• Non-Instant – Tarefas do tipo Non-instant irão ser executadas sequencialmente
na ordem que foram programadas.
• Instant – Tarefas do tipo Instant serão executadas simultaneamente com
outras tarefas.
Para verificar se uma tarefa é Instant ou Non-Instante, clique com o botão direito na
tarefa desejada e selecione Description. O item Class indica o tipo da tarefa.
Tarefas – Non-Instant vs Instant
• Caso 1 – Todas Non-Instant • Caso 2 – Mix de Non- Instant e
• Tarefa A
Instant
• Tarefa B • Tarefa A
• Tarefa C • Tarefa B-Instant
• Tarefa C

• Caso 1 – Todas as tarefas irão esperar a tarefa anterior ser finalizada antes de
começar sua execução
• Caso 2 - A execução das tarefas B e C será realizada em paralelo
Tarefas Comuns - say e sayInstant

• Comanda o robô para falar uma frase


programada.
• Versões Non-instant e Instant dessa
tarefa
• Exemplo: Anexe a tarefa sayInstant à um
Goal; quando o robô chegar a esse Goal
ele irá anunciar a frase pré-programada.
Tarefas Comuns – move
• Movimenta o robô em linha reta
para a distância configurada no
parâmetro distance.
• Definida em mm
• Diversos parâmetros definidos
pelo usuário
• Se configurado com valor 0,
utiliza os valores configurados
no robô
Tarefas - wait
• Comanda o robô para aguardar por
um intervalo específico de tempo,
determinado em segundos.
• Cinco tipos de tarefa wait
disponíveis.
• Wait
• Wait Active
• Wait Cancel
• Wait Indefinitely
• Wait Fail
Tasks – waitActive and waitCancel
WaitActive WaitCancel
Tarefa Non-Instant, chama uma Macro e Tarefa Instant, não requer configuração.
opcionalmente aguarda um determinado Cancela qualquer tarefa ativa quando
número de segundos até ser comandada para acionada.
continuar, por um commando ou controle

• SpecificLength utiliza os
segundos configurados
• MacroLength finaliza a
tarefa quando a macro
termina
WaitActive: • Forever aguarda até ser
Fornece três cancelada por um
dispositivo externo ou
formas de aguardar tarefa waitCancel
Tarefas – waitIndefinitely e waitFail
WaitIndefinitely WaitFail
Tarefa Non-Instant, aguarda até que seja Tarefa Instant, causa a falha de qualquer tarefa
comendado que faça outra tarefa. Apenas um de wait em progresso. Tarefa não possui
parâmetro permite ao usuário configurar que parâmetros para serem configurados.
status chama executa esta tarefa.
Tarefas – Tarefas Custom Input Check
• Diversas tarefas para checagem de inputs
digitais definidas pelo usuário.
• Cada tarefa executa uma operação
lógica diferente.
• customInputCheckAll
• customInputCheckAny
• customInputCheckEach

• Cada uma possui uma versão Instant e


Non-Instant disponível. Totalizando 6
tarefas disponíveis para utilização.
Tarefas – CustomInputsCheckAll
• Lógica AND ( & )
• Irá realizar a verificação do estado de
on/off de todas as entradas digitais
definidas pelo usuário(input).
• Por padrão o robô irá verificar se uma
entrada digital (input) possui nível
lógico alto(On)
• NOTA: Utilize ! Na frente da input para
verificar se nível lógico é baixo.
Tarefas – CustomInputsCheckAny
• Lógica OR (Ou)
• Irá realizar a verificação do
estado de on/off de todas as
entradas digitais definidas pelo
usuário(input).
• Por padrão o robô irá verificar se
uma entrada digital (input)
possui nível lógico alto(On)
• NOTA: Utilize ! Na frente da input
para verificar se nível lógico é
baixo.
Tarefas – CustomInputsCheckEach
• Irá realizar a verificação do estado de on/off de
todas as entradas digitais definidas pelo
usuário(input).
• Executa macros específicas baseadas nas
condições das entradas
• Por padrão o robô irá verificar se uma entrada
digital (input) possui nível lógico alto(On)
• NOTA: Utilize ! Na frente da input para verificar se
nível lógico é baixo.
Tarefas – waitActive – Forever
• Pode aguardar para sempre, até ser
cancelada.
• Pode ser cancelada por um dispositivo
externo ou pelo comando waitCancel.
• Muito utilizado para fazer um
handshaking com um equipamento.
Tarefas – waitActive – Macro
• Aguarda até uma macro for
concluída.
• Pode aguardar até uma I/O for
acionada, objeto transferido, etc.
• Também pode ser cancelada através
do waitCancel.
Setores de Tarefas - Task Sectors
Comanda o robô para executar uma tarefa do tipo Instant assim que entrar ou sair do
Setor de Tarefas, Task Sector, adicionado no mapa.
Configurada no menu Build, sob a aba Special.
• Adicionada a aba Special quando o Task Sector é adicionado ao mapa.
Criando Task Sectors
Na aba Draw, selecione Advanced Areas e selecione Task Sector no
menu cascata.

Adicione o TaskSector ao mapa

Arraste e solte tarefas(tasks) ou objetivos(goals) para o TaskSector


criado na aba Special na lista Editable List.
Grupos Customizados - Custom Groups
Grupos Customizados, ou Custom Groups, é definido por um grupo reutilizável de
objeto complexos no mapa, como objetivos(goals), setores (sectors), etc. Isso permite
o uso repetitivo de tarefas no seu mapa, de forma rápida e consistente, sem a
necessidade de precisar criar novas tarefas sempre que necessário.

Notas para utilizado de grupos:


• As definições dos Custom Groups não podem ser editadas ou excluídas.
• Itens do mapa originalmente selecionados não são modificados quando
agrupados, e eles não se tornam membros automaticamente de uma nova
instância de grupo.
• Grupos não podem ser incluídos em outros grupos. O software ignora grupos que
já estão na lista de seleção original.
• Grupos não podem ser desagrupados (convertidos em objetos de nível superior).
Criando Custom Groups
Certifique-se que o robô está desligado.
• Selecione todos os objetos do mapa (Goals, Sectors, etc.) que deseja adicionar ao
grupo.
• Clique com o botão direito nos itens selecionados e selecione Create Custom
Group no campo Advanced

Adicionar Custom Group no Mapa


• Selecione o Custom Group no menu Draw
• Expanda a lista, selecione o grupo e ‘desenhe’ no Mapa
Custom Groups Mapeados
Grupos customizados, Custom Groups, identicos ao original
• Todos os components criados são novos, porém com propriedades idênticas
• Evita re-criar goals e etc, quando ações repetitivas são necessárias
Laboratório – Tarefas – Criando Blocos para Interface com uma Máquina
Tópico 6 - Perguntas
1. Liste as maneiras de comandar um robô patrulhar uma
rota.
Mobile Planner
Através de uma tarefa (task)
Através de uma macro
Através de comando ARCL

2. Quais os dois principais tipos de tarefas do Robô?


Os dois principais tipos de tarefas são Non-
Instant e Instant.

3. Qual tarefa comanda o robô para aguardar por um


período de tempo antes de prosseguir para o
próximo trabalho?
Wait
Tópico 6 - Perguntas

4. Descreva como configurar o robô para anuciar sua


presença ao entrar em um corredor..

Use o TaskSector em um corredor. Configure


uma tarefa sayInstant na parte de entrada do
TaskSector.
FIM DO SEGUNDO DIA
• Tópico 7 – Inputs e Outputs Digitais
• Descrever a função do I/O Digital do Robô
• Identificar as configurações de I/O Digitais no MobilePlanner
• Explicar como utilizer as I/O Digitais do Robô
Utilização em Aplicações
Utilizada para interfacear o robô com pessoas, outros equipamentos e sensores.
Fornecer controle de alimentação
Exemplos incluem:
• Luzes de sinalização
• Interfaces de usuário customizadas
• Unidades customizadas para interfacear com outros sistemas e maquinários
• Unidades customizadas para manuseamento e processão de peças ou equipamento
Entradas Digitais - Digital Inputs
Entradas Digitais
• 16 NPN/PNP Inputs Digitais
º 4 Bancos de 4 Inputs
º Sinking ou Sourcing individuais por banco

Sinking inputs (Entradas Dreno) ligadas como Sourcing inputs (Entradas Fonte) ligadas
sensor de entrada PNP onde o conector como sensor de entrada NPN onde o
Comum está ligado como 0 volts DC, conector Comum está ligado com +VDC,
passando pela carga e retornando para um passando pela carga e retornando para um
terminal Input no banco(onde +VDC é terminal Input no banco
aplicada)
Especificações das Entradas Digitais
Ligação das Entradas Digitais
Especificações das Saídas Digitais
Saídas Digitais
• 16 NPN Saídas Digitais
• VBat conexões são conectadas diretamente à bateria
no conector Digital I/O
• GND é o aterramento do chassis não o terra real
º Os rodízios e as rodas isolam o robô

• Corrente máxima de saída: 500mA


Ligação das Saídas Digitais
Configuração das I/O Digitais
Configuradas no MobilePlanner
Configuration > Robot Interface > Core Digital
Inputs
Configuration > Robot Interface > Core Digital
Outputs
Cria nomes de variáveis para cada saída e
entrada
Configuração das I/O Digitais
Tipos customizados são a maneira mais direta.
Eles permitem ligar e desligar quando você
desejar.
Outros tipos são utilizados em casos específicos
(ligações em um sensor de proximidade para
tráfego de alta repetitibilidade, alterando
automaticamente sempre que o robô estiver
trafegando, etc.)
Utilizando Tarefas com I/O Digitais
Utilize tarefas customInput para ler o estado de uma
entrada.
• Tarefas do tipo Instant tasks lê a entrada imediatamente
º Se a condição da entrada for verdadeira, uma tarefa
correspondente será executada
• Tarefas do tipo Non-instant podem utilizer um timout para
aguardar por uma entrada.
º Irá interromper a ação atual
Acione macros para comandar o robô ou alimentar as
saídas digitais.
Utilizando Tarefas com I/O Digitais - AVISO
O aviso é sobre tarefas I/O cascateadas.
Não utilize o mesmo tipo e tarefa dentro de si
mesma.
Isso irá causar um erro de recursividade na tarefa.
Por exemplo: customInputsCheckAll aciona outro
customInputsCheckAll
• MobilePlanner não verifica recursividade na
chamada de tarefas.
• Quando uma tarefa é executada, uma mensagem
de falha será exibida no MobilePlanner
Aplicação de Exemplo – Controle de Esteira Superior
• Unidade LD com uma Esteira Superior (Top
Conveyor) instalada.
Laboratório – I/O Digitais
Tópico 7 - Perguntas
1. Qual é o principal uso para I/O digitais?
Interfacear com pessoas, outros dispositivos e
sensores

2. Quantas entradas e saídas digitais o robô possui?


16 entradas digitais e 16 saídas digitais

3. Qual é a corrente máxima de saída por ponto?


500mA
Tópico 7 – Perguntas
4. Qual o range de tensão operacional das I/O Digitais?
5-30VDC

5. Como você programa o robô para utilizer as I/O Digitais?


O robô utiliza tarefas(tasks) para operar as I/O.
• Tópico 8 – Configuração do Robô
• Explicar como as configurações de distanciamento do robô afetam o planejamento de rotas
• Descrever como o distanciamento do robô se altera de acordo com sua velocidade
• Descrever como as configurações dos objetivos(Goals) interagem com o tráfego do robô
• Expressar como o parâmetro SecToFail permite que o robô permaneça em movimento
Configuração do Robô – O Envelope do Robô
Robot Operations > Path Planning Settings
• Algumas configurações do Path Planning settings ditam o envelope espacial em volta do robô
Distanciamento Frontal - Front Clearance e Front Padding
Path Planning Settings > FrontPaddingAtSlowSpeed
Path Planning Settings > FrontPaddingAtFastSpeed
Determina o quão perto da frente do robô ele pode se aproximar de um obstáculo e
como se comportar para desviar destes.
• Distanciamento é determinado de acordo com as configurações de velocidade do robô

Front
Clearance
Front
Padding…

…At Slow
Speed
…At Fast
Speed

NOTA: A unidade de medida para Distanciamento (Clearence) e Padding é mm


Distanciamento Lateral - Side Clearance at Slow and Fast Speeds
• Path Planning Settings > SideClearanceAtSlowSpeed
• Path Planning Settings > SideClearanceAtFastSpeed
Determina o quão perto da lateral do robô ele pode se aproximar de um obstáculo e
como se comportar para desviar destes.
• Distanciamento é determinado de acordo com as configurações de velocidade do robô

Front Clearance

Front Padding…

Side Clearance…

…At Slow Speed

…At Fast Speed

NOTE: Speed Settings will be discussed shortly


Como o Distanciamento(Clearence) afeta o Planejamento de Rotas (Path
Planning)
• O Sistema trabalha para manter qualquer obstáculo detectado pelo laser fora das
distâncias de Distanciamento (Clearence) e Zona de Segurança(Padding).
• Quando um obstáculo é detectado o robô irá desacelerar para prevenir que o
obstáculo entre nas áreas de distanciamento
• O robô ‘enxerga’ à frente o quanto for determinado no parâmetro CollisionRange

Front Clearance

Front Padding…

Side Clearance…

…At Slow Speed

…At Fast Speed


UseRearFraction
Path Planning Settings > UseRearFraction
A base de um LD é aproximadamente de forma oval
O MobilePlanner utiliza um formato retangular para Planejamento de Rotas (Path
Planning)
UseRearFraction determina o quanto o robô está contido nesse retângulo.
• Começando a partir do ponto mais largo do robô, indo em direção a parte de trás, a parte do robô
é envolvida por esse retângulo.
• Por causa do formato oval do robô, uma vez que a parte mais larga do robô estiver livre do
obstáculo o robô está pronto para se movimentar livremente.

RearFraction = 0.5
Configuração do Robô - Velocidade
• Diversos parâmetros modificam ou determinam a velocidade translacional,
rotacional, velocidade máxima, aceleração e desaceleração.
• Essa seção foca nos parâmetros nas configurações do Robô.
Parâmetros de Velocidade Máxima Absoluta - AbsoluteMax
• Robot Physical > Absolute Movement Maximums
• Parâmetros que afetam as velocidades máximas e acelerações do robô.
• Esses valores não podem ser excedidos

NOTA: Para acessar esses parâmetros a checkbox Show Expert + Parameters precisa estar
marcada.
Parâmetros Disponíveis em Absolute Maximum Speed
AbsoluteMaxTransVel – Velocidade máxima absoluta para movimento Translacional na direção positiva
AbsoluteMaxTransNegVel – Velocidade máxima absoluta para movimento Translacional na direção negativa
AbsoluteMaxTransAccel – Aceleração máxima absoluta para movimento Translacional
AbsoluteMaxTransDecel – Desaceleração máxima absoluta para movimento
AbsoluteMaxRotVel – Velocidade máxima absoluta para movimento Rotacional
AbsoluteMaxRotAccel – Aceleração máxima absoluta para movimento Rotacional
AbsoluteMaxRotDecel – Desaceleração máxima absoluta para movimento Rotacional
Robot Config: Configuração Padrão
• Robot Operation > Robot Config é a seção do arquivo de configuração do robô
que contém valores de referência e outros parâmetros.
• TransVelMax
• TransAccel
• TransDecel
• RotAcel
• RotDecel

• Utilizado como padrão para outros parâmetros


Velocidades do Planejamento de Rotas (Path Planning)
Robot Operations > Path Planning Settings
• MaxSpeed determina a velocidade máxima linear utilizada durante o Planejamento de Rotas(Path
Planning)
• MaxRotSpeed determina a velocidade máxima rotacional durante o Planejamento de Rotas(Path
Planning)
• TransVelMax será utilizada quando essas configurações estão configuradas para valor 0.
NOTA: Essas configurações não podem exceeder os valores de AbsoluteMaxTransVel e
AbsoluteMaxRotVel configuradas na seção Absolute Movement Maximums.
Velocidade Lenta e Velocidade Rápida - Slow Speed e Fast Speed
• Determina a velocidade utilizada pelo Distanciamento(Clearance)/Zona de
Segurança(Padding) frontal e lateral

Front Clearance

Front Padding…

Side Clearance…

…At Slow Speed

…At Fast Speed


Distanciamento(Clearance) se altera conforme Velocidade
• A Zona de Segurança Frontal (Front Padding) e o Distanciamento Lateral (Side
Clearance) se altera conforme a velocidade do robô, para otimizar a distância de
parada.
• Abaixo da velocidade determinada em SlowSpeed o FrontPadding e
SideClearance usarão os parâmetros definidos em AtSlowSpeed.
• Acima da velocidade determinada em FastSpeed o FrontPadding e SideClearance
usarão os parâmetros definidos em AtFastSpeed.
• Em velocidades intermediárias, entre os valores de AtSlowSpeed e AtFastSpeed,
os valores de FrontPadding e SideClearance se alteram dinamicamente. Esse
cálculo é fixo.
Observação sobre SideClearance
É recomendado configurar o parâmetro SideClearanceAtFastSpeed até
aproximadamente ~50mm maior que SideClearanceAtSlowSpeed.
Se a diferença entre SideClearanceAtSlow e FastSpeed for muito grande o
distanciamento(Clearance) pode crescer até incluir obstáculos.

• Isso fará o robô desacelerar


• Por consequência, o tamanho de SideClearance irá encolher até que o obstáculo não seja mais
incluído.
• O Robô irá aumentar a velocidade até o SideClearance expandir até incluir o obstáculo novamente.

Resultando em uma aceleração e desaceleração repetitiva, como se o robô estivesse


‘engasgando’.
Parâmetros Decel e Distanciamento do Robô
Obstáculos inesperados bem a frente do robô podem fazer com que o robô desacelere a uma
taxa normal ou planeje uma rota que contorne a obstrução.

Conforme o obstáculo entra na Zona de Segurança Frontal (Front Padding) a desaceleração


salta para SuperMaxTransDecel.

Conforme o obstáculo entra na zona de Distanciamento(Clearance) a desaceleração salta


para EmergencyMaxTransDecel
Front Clearance

Front Padding…

Side Clearance…

NOTA: Essas configurações são altamente dependents da aplicação.


Laboratório – Distanciamento do Robô (Clearances)
Campo de Colisão - CollisionRange
• Robot Operation > Path Planning Settings > CollisionRange
• A distância a frente do robô na qual o Sistema se atenta aos obstáculos
• Por padrão o parâmetro CollisionRange está definido em 4000mm
Observação: Exibindo os dados do Robô no MobilePlanner
• É tentador exibir todos os dados do robô no mapa enquanto
observamos no MobilePlanner
• Exibir mais informações que o necessário pode ser confuso
• Habilitar mais dados a serem exibidos requer mais dados serem
transmitidos para o computador que está rodando o MobilePlanner
• Podendo sobrecarregar a conexão de rede, comprometendo o
monitoramento em tempo real do robô no MobilePlanner
Iniciando a Partir de uma Parada
Robot Operation > Path Planning Settings > AlignAngle
and AlignSpeed
Quando estas configurações são aplicadas:
• Quando é dado ao robô um novo destino
• Quando o robô pára de se movimentar a caminho do destino
atual

O robô se alinha em direção ao novo caminho antes de


aplicar as velocidades e acelerações normais de tráfego
AlignAngle – O quão perto(em graus) a orientação do
robô precisa coincidir com a orientação desejada do
caminho a ser seguido
AlignSpeed – O quão rápido o robô se move para se
alinhar na direção do caminho a ser seguido (geralmente
muito lento)
Movimentos para o Goal – Goal-Move
Robot Operations > Path Planning Settings > Goal[…]
• O software calcula automaticamente quando deve utilizar os parâmetros para os movimentos
finais(‘Goal[…]’) a partir da velocidade atual do robô e as desacelerações configuradas.
Movimentos para o Goal (Goal-Move): Tolerância
GoalDistanceTol e GoalAngleTol:
• O robô irá parar o mais precisamente possível em cada goal, até mesmo atém desses valores.
• Se o robô não atingir os valores configurados ele irá continuar se ajustando até atingir os valores
desejados de tolerância ou então falhar.
• Geralmente esses valores representam uma troca entre duração de parada e precisão. É preciso
determinar o que é mais importante, uma parada mais rápida ou mais precisa.
Movimentos para Goal (Goal-Move): Utilizar Encoder
• Após alternar para os parâmetros de movimento para goal (Goal-Move) o robô
pode continuar utilizando seus sensores para melhorar seu posicionamento ou
pode depender estritamente do feedback dos encoders em suas rodas.
• O parâmetro GoalUseEncoder é definido como True por padrão, essa opção extrai
melhor precisão quando o ambiente envolta do objetivo(goal) não aparenta ser
exatamente como era no momento em que o mapa foi criado.
Movimentos para o Goal(Goal-Move): Quando um Objetivo(Goal) está Ocupado

• Robot Operations > Path Planning Settings >


GoalOccupiedFailDistance
• Se o robô detecta que o goal está bloqueado, é permitido que ele vá
até uma distância especificada em GoalOccupiedFailDistance (mm)
antes de declarar que o goal está inacessível (falhando)
Caminho Local / Caminho Global
• Quando o robô é instruído a ir a um goal ele
primeiramente encontra o caminho mais eficiente
baseado no mapa armazenado.
• Esse é o Caminho Global (Global Path)
• Conforme o robô segue o caminho ele modifica o
seu Caminho Local (Local Path) para desviar de
obstáculos não contidos ou diferentes do mapa
armazenado.
• Baseando-se nas informações de seus sensores.
SecsToFail
• Robot Operation > Path Planning Settings > SecsToFail
• Se o robô está bloqueado e não pode se mover, o robô irá esperar por um
determinado período de tempo (em segundos) antes de falhar
• Se o robô pode se mover ele irá tentar procurar por um caminho livre
• O SecstoFail temporizador irá ser resetado
• Esse parâmetro permite que seja dado tempo para que as obstruções sejam
liberadas ao invés de declarar falha imediatamente
LocalPathFailDistance
• Robot Operation > Path Planning Settings > LocalPathFailDistance
• A distância que o robô irá dirigir até um objeto não mapeado em seu caminho
antes de parar.
• Isso permite que obstáculos transitórios se movam ao invés de declarar falha
Laboratório - Falha
Leituras Cumulativas
• O robô mantém uma pequena memória de pontos detectados pelo laser,
chamada de Leituras Cumulativas (Cumulative Readings).
• Essa pequena memória permite que o robô planeje um caminho de forma mais
inteligente.
• Sem as leituras cumulativas o robô irá ‘esquecer’ os obstáculos quando não
fossem mais detectados. Fazendo com que o robô procure uma rota segura de
forma ineficiente ou então tente um caminho bloqueado.
• No MobilePlanner leituras cumulativas aparecem como circulos azuis mais
escuros que as leituras em tempo real. Leituras cumulativas permanecerão
paradas, enquanto leituras em tempo real tendem a se mover levemente.
Leituras Cumulativas do Laser
• Robot Operation > Laser_1 Settings > CumulativeBufferSize
• Determina a quantidade de leituras cumulativas a serem armazenadas
• Robot Operation > Laser_1 Settings > MaxSecondstoKeepCumulative
• Determina por quanto tempo (segundos) o Sistema deve manter as leituras cumulativas

NOTA: Atribuir um valor muito alto para esse buffer ou manter essas informações por muito tempo
pode impactar na performance.
Replanejamento Local : MarkOldPathFactor
• Robot Operation > Path Planning Settings >
• MarkOldPathFactor Impede o robô de ‘mudar de idéia’ sobre o caminho
atual em pouco tempo
• A diferença de custo em ir para a direita ou para esquerda é nominal. Sem
MarkOldPathFactor o robô pode alternar entre caminhos em potencial, sem
se mover.
• MarkOldPathFactor faz com que seja menos custoso permanecer no
Caminho Local atual do que seria para trocar para um caminho alternativo
Replanejamento Global: NumTimesToReplan
• Quando SecsToFail expira sem que o caminho esteja livre o robô irá planejar
uma rota alternativa.
• Isso é chamado de Replanajamento Global
• O robô irá replanejar até um número máximo de vezes, definido nas
configurações de planejamento de rotas no caminho: Robot Operation > Path
Planning Settings > NumTimesToReplan.
• Durante o replanejamento o mapa pode exibir pontos de replajenamento em
azul claro, que agem como pontos mapeados durante a geração de um novo
caminho.
Falha Imediata
Se o robô está instruído a ir para um ponto inalcançável ele irá entrar em falha
imediatamente.
• Por exemplo, se o robô é largo demais para passer com segurança por uma porta ele não irá
passar pela porta e irá declarar falha.
• Caso não exista um caminho para o goal por causa de obstruções no mapa, ou recursos como
linhas/áreas proibidas então o planejamento de rotas irá falhar imediatamente.
Tópico 8 - Perguntas
1. Explique a diferença entre Distanciamento/Zona de Segurança
(Clearance/Padding) em velocidades altas e
Distanciamento/Zona de Segurança em velocidades baixas.
O A tolerância para Distanciamento e Zona de Segurança
(Clearance/Padding) muda dinamicamente conforme a
velocidade do robô. Conforme o robô aumenta a velocidade ele
não pode chegar perto de um objeto..

2. UseRearFraction define o quanto da parte de trás do robô é


levada em consideração pelo planejamento de rotas. Essa
declaração está correta?
Sim, essa é uma declaração correta.

3. Como o MobilePlanner utiliza o parâmetro TransVelMax?


TransVelMax pode ser utilizado por todas as configurações do
Plajenamento de Rotas como velocidade padrão, caso a velocidade do
Planejamento de Rotas não é definida.
Tópico 8 - Perguntas
4. Por padrão, o quão longe o CollisionRange se atenta para
obstáculos a frente do robô?
O valor padrão é de 4000mm(4m) a frente do
robô.

5. Existem configurações para Goals que podem sobrepor as


configurações de Planejamento de Rotas. Verdadeiro ou
Falso?
Essa declaração é verdadeira.

6. Quais os parâmetros que governam a falha de


movimentação do robô?
Parâmetros SecToFail e LocalPathFailDistance
governam a falha de movimentação do robô.
• Tópico 9 – ARCL
• Definir o ARCL
• Descrever funções mais comuns do ARCL
• Reconhecer os commandos mais comuns do ARCL
• Implementar alguns commandos do ARCL
O que é ARCL?
Advanced Robotics Command Language – Linguagem Avançada para Comandos
Robóticos
• Sistema de comunicação baseado em strings de texto de comandos e respostas para interface
com robôs móveis da Omron e também o Enterprise Manager.
• Comandos podem ser enviados a partir de um computador ou PLC através de comunicação
Ethernet.
• Todos os dispositivos precisam estar na mesma rede.
O que o ARCL pode fazer?
ARCL pode enviar e receber comandos para controlar o robô
• Exemplos incluem:
º Leitura de Status do Sistema
º Comandar que o robô se mova
º Resetar erros
º Ler dados críticos
º Executar Tarefas
º Falar
Configurando o ARCL
ARCL é configurado no MobilePlanner
• Configuration Tab > Robot Interface > ARCL Server Setup
• As configurações Padrão podem ser atualizadas de acordo com as especificações do usuário
º Incluindo número da porta e senha.
Conectando ao ARCL
Conectar ao servidor ARCL através da porta de manutenção Ethernet ou conexão
wireless
Conectar via Telnet
• Porta e Senha especificados no MobilePlanner

• Você também pode utilizar qualquer outro utilitário de emulação de terminal, com o PuTTY, para
aqueles que não possuem cliente Telnet. Para maiores detalhes sobre o PuTTY, visite o site do
PuTTY em: http://www.putty.org.
Alguns Comandos ARCL mais Utilizados
Status
• Exibe um relatório do status do robô
º Inclui Status E-Stop (Emergência)
º Nível de Carga da Bateria
º Dados de Coordenadas (Posição física do
Robô)
º Score de Localização
º Temperatura do Core

WaitActive, WaitCancel, WaitFail


• Comanda a Pausa do Robô
º Útil para interface com outros dispositivos
Alguns Comandos Comuns do ARCL
Goto *Goal*
• Comanda o robô para ir à um goal em particular
º Substitua *Goal* pelo nome do goal no mapa
PatrolOnce *Route*
• Comanda o robô para patrulhar uma rota uma única vez
º Substitua *Route* pelo nome de uma rota existente
Patrol *Route*
• Comanda o robô para patrulhar continuamente uma
determinada rota
º Substitua *Route* pelo nome de uma rota existente
Alguns Comandos Comuns do ARCL
Controlar Entradas e Saídas (Inputs e Outputs) Exemplos
• InputQuery *input name* Para receber o status da entrada digital chamada ‘in_one’, digite o
seguinte:
º Substitua *Input Name* pelo nome da variável
de entrada(input)
º Lê o status on/off de uma entrada em O comando retorna

particular(input)
• OutputOn *Output Name*
Para ligar uma saída digital chamada ‘out_one’, digite o seguinte:
º Substitua *Output Name* pelo nome da
variável de saída (output)
O comando retorna
º Alimenta a saída digital (output)
• OutputOff *Output Name*
º Substitua *Output Name* pelo nome da Para desligar uma saída digital chamada ‘out_one’, digite o seguinte:
variável de saída(output).
º Desliga a saída digital (output)
O comando retorna
Usando ARCL no MobilePlanner
Variable Description
Tarefas do Robô podem criar um comando ARCL $g Represents current goal name
e gerar uma resposta. $y Represents the year (2xxx)

• A tarefa ACRLSendText pode enviar strings de $m Represents the month (1-12)

dados do robô para o cliente telnet $d Represents the day (1-7)

$H Represents the hour (0-23)


• Adaptável para aplicações customizadas $M Represents the minute (0-59)
podendo enviar strings customizadas. $S Represents the second (0-59)

• Diversos atalhos para variávels estão $T Represents current heading (deg)

disponívels no comando ARCLSendText $X Represents the current X position (mm)

$Y Represents the current Y position (mm)


Laboratório - ARCL
Janela ARCL
O MobilePlanner possui uma janela ARCL
disponível para comunicação com o robô, sem a
necessidade de um cliente Telnet ou softwares
de terceiros, como PuTTy.
• Abra o menu Robot
• Forneça a senha para conectar ao robô e executar
os commandos ARCL

• No campo Send: Entre com os comandos ARCL


Tópico 9 - Perguntas
1. O ARCL precisa estar habilitado nas configurações do robô
para funcionar?
Sim, o ARCL precisa estar habilitado em Robot
Settings para funcionar.

2. Que tipo de conexão de comunicação o ARCL utiliza?


ARCL utiliza TELNET.

3. Qual é a porta padrão utilizada pelo ARCL?


ARCL utiliza a porta 7171 como padrão.
Tópico 9 - Perguntas
4. Qual comando lê métricas importantes do robô?
O comando Status lê métricas importantes e exibe
um relatório na tela para o usuário

5. Oque o comando InputQuery faz?


InputQuery lê o status on/off da entrada desejada.
• Tópico 10 – Comunicação com CPL
• Explorar o programa exemplo no Sysmac Studio da Omron
• Estabelecer uma comunicação através de Socket TCP no Sysmac Studio
• Estabelecer uma comunicação através dos blocos de comunicação do robô móvel no Sysmac Studio
• Enviar comandos através do CLP
O que é o Sysmac Studio?

• O Sysmac Studio é um ambiente de


desenvolvimento integrado para
automação de máquinas, combinando
configuração, programação, simulação
e monitoramento em uma interface
simples.
O que é o Sysmac Studio?

O Sysmac Studio fornece um ambiente


de programação de última geração com
base no diagrama ladder e linguagens
de programação de texto estruturado,
bem como unidades de organização de
programa, funções, blocos de função,
tipos de dados, e estruturas.
Além disso, as instruções de controle de
movimento são baseadas nos padrões
PLCopen. Fornecer um ambiente de
programação familiar facilita a curva de
aprendizado para um novo software,
permitindo uma adoção rápida.
O que é o Sysmac Studio?
Não há necessidade de perder tempo
aprendendo o mapa da memória
interna do controlador; é um verdadeiro
controlador baseado em tag.
O Sysmac Studio converte
automaticamente as variáveis definidas
pelo usuário em memória da CPU nos
bastidores, promovendo um
desenvolvimento mais rápido e erros
reduzidos. Isso também elimina a
necessidade de um mapa completo da
memória da máquina ou do hardware
antes de iniciar o desenvolvimento do
software.
Hardware e software podem ser
projetados de forma independente e
desenvolvidos em paralelo.
O que é o Sysmac Studio?
O Sysmac Studio fornece funções e
ferramentas abrangentes para
solucionar problemas do programa,
como monitorar valores em tempo
real, definir pontos de interrupção e
fazer alterações online. Ele também
pode simular visualmente o controle
de movimento, exibindo resultados
em 2D ou 3D e exibindo traços em
dispositivos virtuais.
A ferramenta de simulação 3D
oferece aos programadores a
oportunidade de observar
imediatamente o movimento físico
que resulta do código e da
configuração que eles escolheram
implementar.
O que é o Sysmac Studio?
Visite o site da Omron e conheça mais sobre o Sysmac Studio e outros produtos!
https://automation.omron.com/pt/br/products/family/SYSSTDIO
Explorando o Programa Exemplo no Sysmac Studio
No canto esquerdo você verá a árvore do Projeto. Para acessar os
programas do CLP, expanda os menus:

Programming>POUs>Programs

Os programas que usaremos estão dentro de LD_Control, são eles:


• TCP_Conn, para Conexão com o LD Mobile via Socket TCP
• TCP_Cmd, para determinar os comandos que serão enviados
• TCP_SndRcv, para envio dos comandos e recebimento de
informações, quando aplicável
• FB_ARCL, fará as mesmas funções dos programas acima, porém
utilizando a biblioteca de comunicação ARCL da Omron
Explorando o Programa de Exemplo no Sysmac Studio
Ao realizar um duplo-clique sobre qualquer um dos programas, eles serão abertos na
tela central.
Explorando o Programa de Exemplo no Sysmac Studio
No canto direito da tela você verá a
caixa de ferramentas, Toolbox,
contendo todas as bibliotecas
instaladas no Sysmac Studio

Primeiramente iremos utilizar os blocos


do menu Communications para realizar a
comunicação via Socket TCP com o LD
Mobile
Comunicando com LD via Socket TCP
O programa TCP_Conn é o programa que vai estabelecer a comunicação com o LD
Mobile.
Ele é composto por apenas 3 networks
Comunicando com LD via Socket TCP

Na network 0, temos o bloco


SktTCPConnect, responsável por
estabelecer a conexão TCP
através do endereço IP e porta
especificados.
Ele cria um objeto WkSocket de
tipo _sSocket que será utilizado
pelos demais blocos no
programa.
Comunicando com LD via Socket TCP

Em seguida, temos o bloco


SktClearBuf, responsável por
limpar o buffer de recebimento,
para garantir que não haja
informações indesejadas na
conexão
Comunicando com LD via Socket TCP

O último bloco da network 0 é o


SktGetTCPStatus, que verifica o
status da conexão TCP, se disponível
ou ocupada.

Caso a porta não esteja ocupada, o


programa irá ‘setar’ a variável
CommsOpen e colocar LoginButton
em nível alto
Comunicando com LD via Socket TCP

Na network 1, o bloco StringToAry


converte a string ‘omron$R$L’ (senha
para acesso Telnet),para um array de
Bytes, que será enviado ao Robô
para autenticação.
Comunicando com LD via Socket TCP

Esse array de Bytes é enviado para o


LD através do bloco SktTCPSend.

NOTA: O bloco SktTCPSend aceita


apenas array de Bytes para envio
Comunicando com LD via Socket TCP

O bloco SktClose encerra


corretamente a conexão TCP.

O Robô não irá mais receber


comandos até que seja restabelecida
a comunicação.
Comunicando com LD via Socket TCP
O programa TCP_Cmd é responsável por colocar as strings dos comandos em uma
variável chamada EnteredData e então acionar os blocos do programa TCP_SndRcv para
tratar as strings, convertê-las, enviá-las para o LD e por fim receber o feedback
Comunicando com LD via Socket TCP
A primeira network desse programa, possui um bloco CONCAT que realiza a
concatenação das strings ‘Goto ‘ com a variável ‘Goal’ e armazena esse resultado na
variável ‘EnteredData’
O usuário deve alterar o valor da variável ‘Goal’ para o nome do goal que ele deseja que
o robô móvel vá.

Exemplo: Goal = ‘entrada’


A saída do bloco na variável ‘EnteredData’ será ‘Goto entrada’
Comunicando com LD via Socket TCP
A segunda network desse programa, é composta por um bloco MOVE que move a string
‘Dock’ para a variável ‘EnteredData’. Esse comando irá fazer com que o robô vá para a
Dock mais próxima.

O comando ‘Dock’ não requer argumentos.


Comunicando com LD via Socket TCP
Na network 3, o bloco MOVE coloca a string ‘GetRoutes’ na variável ‘EnteredData’. Ao
receber esse comando, o robô irá transmitir uma mensagem, via Socket TCP, com uma
lista de todas as rotas configuradas.

Essa lista pode ser vista em formato de string, na variável ‘RecievedData’ do programa
TCP_SendRcv

Esse comando não requer argumentos


Comunicando com LD via Socket TCP
Na network 4, o bloco CONCAT gera a string com o comando ‘PatrolOnce ’ e o nome da
rota que você deseja que o Robô patrulhe por uma única vez. A rota deve ser
especificada na variável Route.

Exemplo: Route = ‘rota1’


A saída do bloco na variável ‘EnteredData’ será ‘PatrolOnce rota1’
Comunicando com LD via Socket TCP
Conforme nas demais networks, o bloco MOVE coloca a string ‘status’ na variável
‘EnteredData’

O status do robô pode ser visto em formato de string, na variável ‘RecievedData’ do


programa TCP_SendRcv
Comunicando com LD via Socket TCP
O comando ‘GotoPoint’ envia o robô até as coordenadas em Y, Y com orientação Theta,
conforme especificado na variável X_Y_Theta.
Comunicando com LD via Socket TCP
O comando ‘stop’ interrompe qualquer movimento que o robô esteja realizando.

Esse comando não possui argumentos


Comunicando com LD via Socket TCP
O comando ‘OutputList’ recebe uma lista com os nomes das saídas digitais configuradas
no robô.

Essa lista pode ser vista em formato de string, na variável ‘RecievedData’ do programa
TCP_SendRcv
Comunicando com LD via Socket TCP
Os comandos ‘OutputOn ‘ e ‘OutputOff ‘ ligam e desligam a saída digital especificada na
variável ‘Output_Name’.

Da mesma maneira que nas networks anteriores, o bloco CONCAT une as strings
referentes ao comando e ao nome da saída especificada.
Comunicando com LD via Socket TCP
O comando ‘say’ faz o LD falar a mensagem escrita na variável ‘Mensagem’. A
mensagem será falada no idioma e nas configurações feitas no MobilePlanner.
Comunicando com LD via Socket TCP

A última network faz com que todos os


comandos acima coloquem a variável
booleana ‘Command’ em nível alto.

Essa variável irá ativar o bloco SktTCPSend


no programa TCP_SndRcv, que irá
efetivamente enviar o comando para o
robô
Comunicando com LD via Socket TCP
O programa TCP_SndRcv é responsável por tratar todas as strings dos comandos do
bloco TCP_Cmd e enviá-las para o robô. O programa também recebe o feedback e o
converte em string
Comunicando com LD via Socket TCP
A primeira network adiciona os caracteres de ‘Carriage Return ($R)’ e ‘Line Feed ($L)’
à string EnteredData e armazena o resultado na variável SendData.
Esses dois caracteres ao final da string são necessários para que o robô entenda os
comandos.

Exemplo:
EnteredData = goto Parada1
SendData = goto Parada1$R$L
Comunicando com LD via Socket TCP
Converte a string já tratada , SendData, em um Array de Bytes chamado
SendSocketDat, os dados serão armazenados a partir da posição 0, especificada
entre colchetes ‘[0]’.

Isso é necessário para que a mensagem seja enviada pelo bloco SktTCPSend, pois ele
envia apenas Array de Bytes.
Comunicando com LD via Socket TCP

Calcula o comprimento da string tratada,


SendData, e armazena na variável
SendDataSize.
Essa variável será utilizada como
parâmetro necessário no bloco
SktTCPSend
Comunicando com LD via Socket TCP
Envia os comandos tratados e convertidos em Array de Bytes para o Robô. Esse bloco
recebe como parâmetros as variáveis:
WkSocket – Criada no bloco SktTCPConnect do programa TCP_Conn
SendSocketDat[0] – Array de Bytes com a mensagem convertida
SendDataSize – Tamanho da string tratada
Comunicando com LD via Socket TCP
Após o envio da mensagem, o bloco Send1 (SktTCPSend) ativa o bloco
Recieve1(SktTCPRcv), que recebe a mensagem de feedback do Robô.
Essa mensagem é um Array de Bytes, armazenado na variável RcvSocketDat a partir
da posição [0].
Esse bloco também recebe o objeto WkSocket criado no bloco SktTCPConnect, e um
parâmetro ‘Size’ que determina o tamanho máximo da mensagem.
Comunicando com LD via Socket TCP
E por último o bloco AryToString que converte a mensagem de feedback recebida em
Array de Bytes para uma string, RecievedData, que pode ser tratada para melhor
visualização.
Comunicando com Function Blocks ARCL
Uma das inúmeras vantagens de se trabalhar com CLPs da Omron, especialmente a
linha Sysmac, é que existem bibliotecas específicas para comunicação com os robôs
móveis da Omron.

A Omron disponibiliza a biblioteca ARCL_Comms_Lib que pode ser instalada no Sysmac


Studio. Essa biblioteca facilita bastante a comunicação com o LD, pois possui Function
Blocks (FB) específicos para vários comandos. Simplificando o seu programa e
simplificando o trabalho de programação.

Essa biblioteca já está instalada no programa de exemplo, mas se precisar utilizá-la em


outros projetos, você deverá instalá-la manualmente.
Comunicando com Function Blocks ARCL
Instalar a biblioteca é muito
simples, basta ir em:
Project>Library>Show References

A janela Library Reference irá


se abrir e nela basta clicar no
ícone ‘+’, no canto inferior
esquerdo.
Comunicando com Function Blocks ARCL

• Navegue até a pasta aonde está o


arquivo de instalação da biblioteca.
• Esse arquivo possui extensão .slr
• E então clique em ‘Abrir’
Comunicando com Function Blocks ARCL
Pronto! A biblioteca está instalada! Você verá uma
seção chamada ARCL_Comms_Lib na Toolbox à direita.

Lá você encontrará vários Function Blocks (FB) com


diversos comandos ARCL para o LD.
Comunicando com Function Blocks ARCL
O programa FB_ARCL demonstra a utilização dos FB ARCL para comandar o LD muito
mais facilmente.
Os FB enviam o comando diretamente para o robô, sem a necessidade de tratamento
e conversão da string, nem mesmo um bloco separado para envio
Comunicando com Function Blocks ARCL
A primeira network possui o FB ARCL_Connect que realiza a conexão com o LD sem a
necessidade de blocos para limpeza de Buffer, verificação de Status da porta ou mesmo criar
uma lógica para autenticação, pois ele possui um parâmetro Password que recebe a senha da
conexão Telnet.
O bloco ainda retorna algumas informações interessantes como Data da Última Mensagem e
Hora
Comunicando com Function Blocks ARCL
O bloco ARCL_StatusNoOneline envia o comando ‘status’ para o LD e exibe as
informações separadas em várias variáveis. Não sendo mais necessário realizar o
tratamento da string para melhor compreensão.
Comunicando com Function Blocks ARCL
O bloco ARCL_Goto envia o comando ‘goto’ para enviar o LD ao objetivo especificado
na variável ‘Goal’
Comunicando com Function Blocks ARCL
• O bloco ARCL_Dock envia o robô
para a dock mais próxima

• O bloco ARCL_Undock comanda o


robô para sair da dock
Comunicando com Function Blocks ARCL
Envia o comando ‘EnableDriveMotors’ para restabelecer o funcionamento do Robô
após uma parada de emergência (E-Stop)
Comunicando com Function Blocks ARCL
Caso você precise enviar um comando que não esteja entre os FB criados, você
pode utilizar o FB ARCL_SendCmd e enviar o comando que desejar através do
parâmetro ‘Cmd’.
A figura abaixo mostra o envio do comando patrolOnce através do ARCL_SendCmd
Comunicando com Function Blocks ARCL
Como o FB ARCL_StatusNoOneline separa a mensagem de status em diversas
variáveis, é possível utilizar esses valores facilmente para realizar outras funções.

Como no bloco ARCL_GotoPoint que está incrementando em 100 pontos a posição X e


Y do LD e enviando o robô para as novas coordenadas.
Comunicando com Function Blocks ARCL
Também é possível interromper o movimento do robô utilizando o FB ARCL_Stop
Comunicando com Function Blocks ARCL
Com o FB ARCL_OutputQuery é possível verificar o estado de uma determinada saída
digital, especificada no campo OutputName. O FB retorna o estado da saída no campo
OutputValue, que pode ser atribuído a uma variável.
O valor 0 corresponde ao nível lógico baixo e o valor 1 corresponde ao nível lógico alto.
Comunicando com Function Blocks ARCL

• O FB ARCL_OutputOn coloca a
saída, determinada no campo
OutputName, em nível lógico
alto.

• O FB ARCL_OutputOff coloca a
saída, determinada no campo
OutputName, em nível lógico
baixo
Comunicando com Function Blocks ARCL
O FB ARCL_Say faz com que o LD fale a mensagem especificada na variável ‘Mensagem’.
Comunicando com Function Blocks ARCL
O FB ARCL_InputQuery verifica o estado lógico da entrada digital especificada no campo
InputName.
O estado da entrada é exibido na variável configurada no campo InputValue.
• Tópico 11 – Debug
• Reconhecer que tipo de informação está contida nos arquivos DebugInfo
• Demonstrar como utilizer os arquivos DebugInfo para restaurar as configurações do robô e o mapa.
O que é o DebugInfo?
DebugInfo contém informações úteis para resolução de problemas
DebugInfo inclui:
• Configuração do robô
• Mapa que o robô está usando
• Registro de Desligamento
• Registros do Robô (Logs)
Como gerar o DebugInfo?
Gerado através do SetNetGo
• Não pelo Mobile Planner

Abra o browser (Firefox) e acesse o endereço IP do robô em questão


• Faça Login no SetNetGo, da mesma maneira que a configuração inicial.
• Status Tab > Debug Info > Download Debug Info
Quando o DebugInfo deve ser Gerado?
• Quando criar uma unidade para manter backups do mapa e configuração
• Quando o robô está apresentando desligamentos inesperados, comportamentos
inesperados ou problemas com periféricos
• Quando substituir o Robot Core, o arquivo DebugInfo do Core antigo pode ser
utilizado para reproduzir a configuração inicial para o novo Core.
Estrutura de Pastas

Configuration from the “Config” tab

Robot logs and shutdown log


Localização do arquivo de Mapa
DebugInfo\home\admin\
Localização do Arquivo Config
DebugInfo\usr\local\aramConfig\

Configuração Padrão

Configuração Atual
\debugInfo\var\robot\logs\
Log mais recente

O log antes do desligamento mais recente

Ordene pelo tamanho


do arquivo para
encontrar logs mais
antigos

Log de desligamento
Log de Desligamento – Shutdown Log
Exibe quando o robô desligou e porque.
Pode ajudar a resolver uma falha
• Exemplo: “Desligou porque não conseguiu docar”,
deve-se verificar se a dock está instalada
corretamente.
O que posso encontrar no log.txt?
• Status do Robô
• Dados do E-Stop (Emergência)
• Alguns dados solicitados
• Muito mais!
Status
• Inclui informação de status, semelhante ao digitar ‘status’ no ARCL
• É possível detector se o robô está se perdendo ou a bateria está se esgotando
Laboratório – Gerando Debug Data/Backup
Tópico 11 - Perguntas
1. O arquivo DebugInfo contém o arquivo de Mapa?
Sim, ele contém.

2. DebugInfo pode ser gerado através do Mobile Planner.


Essa declaração está certa?
Não, essa declaração está incorreta. O
DebugInfo deve ser criado através do
SetNetGo.

3. As informações de status reunidas a partir do DebugInfo


são as mesmas que as exibidas através do comando ARCL
status.
Sim, a informação é a mesma.
Muito
Obrigado!
Contato: Alex Macabu Nogueira
Telefone: (11) 3380-6633
thank
Email: automacao@setsystem.com.br
you LinkedIn: SetSystem Automação e Robótica

Você também pode gostar