A verificação de colisão com o RoboDK pode ajudá-lo a evitar colisões em sua configuração real. A verificação de colisões pode ser usada de diferentes maneiras, como verificar visualmente as colisões, evitar automaticamente as colisões em projetos de usinagem com robôs ou gerar um mapa livre de colisões para criar automaticamente programas livres de colisões.
Esta seção aborda os seguintes tópicos:
●Como ativar a verificação de colisão em suas simulações.
●Como definir um mapa de detecção de colisão.
●Como ativar a detecção e a prevenção automática de colisões para projetos de usinagem com robôs.
●Como criar automaticamente programas livres de colisão para vincular diferentes pontos ou outros programas usando um algoritmo PRM.
Selecione Ferramentas ➔
Siga estas etapas para verificar com segurança se há colisões em um programa:
1.Clique com o botão direito do mouse em um programa.
2.Selecione Verificar trajetória e colisões (Shift+F5). Essa opção verifica rapidamente se o caminho é viável (o mesmo que Verificar trajetória - F5) e, em seguida, valida se não há colisões.
Você pode especificar se a interação entre qualquer par de objetos precisa ser verificada quanto a colisões.
Selecione Ferramentas ➔
Por padrão, o RoboDK verifica as colisões entre todos os objetos em movimento na estação, incluindo todos os links, objetos e ferramentas do robô. Como exceção, as articulações do robô não são verificadas quanto a colisões, pois podem estar sempre em contato.
A velocidade de detecção de colisão depende muito de vários fatores.
1.O número de pares de verificações definidas no mapa de colisão. Ter um mapa de colisão com menos verificações será mais rápido.
2.A etapa do robô usada para verificação de colisão. A etapa de colisão pode ser modificada no menu Ferramentas ➔ Opções ➔ Movimentação. Os movimentos lineares usam o passo em milímetros e os movimentos joint usam o passo em graus. Um passo maior proporcionará uma verificação de colisão mais rápida, mas o resultado poderá ser menos preciso.
3.Processamento do computador: mais potência do computador (CPU mais rápida) e mais threads de processamento permitirão que você tenha uma verificação de colisões mais rápida.
4.A complexidade dos arquivos 3D. As geometrias com maior nível de detalhe, como áreas arredondadas, geralmente exigem mais poder de computação. Simplificar essas geometrias e reduzir o número de triângulos ajudará a acelerar a verificação de colisões.
Você deve considerar as seguintes diretrizes para uma melhor verificação de colisões:
1.Escolha os formatos STEP ou IGES em vez dos arquivos STL para obter melhor desempenho e compatibilidade.
2.Simplifique a geometria o máximo possível.
3.Use o add-in Simplificar Malha para simplificar automaticamente a geometria complexa: https://robodk.com/addins.
4.Para identificar recursos agrupados incorretamente, ative as visualizações de caixas delimitadoras em Ferramentas ➔ Opções ➔ Outro ➔ Desenhar caixas delimitadoras (quando a verificação de colisão estiver ativada). Certifique-se de que as caixas delimitadoras não englobem vários elementos separados.
5.Evite usar o recurso "Simplificar Objeto..." encontrado em Ferramentas ➔ Opções ➔ Exibir. Ele consolida todas as superfícies em um único elemento, resultando em uma caixa delimitadora extensa, o que vai contra o ponto anterior.
6.Tenha objetos específicos de colisão no ambiente: duplique os objetos e remova as superfícies que não podem ser alcançadas ou importe uma versão com geometrias mais simples (por exemplo, estruturas convexas). Use o objeto original apenas para fins visuais e exclua-o do mapa de colisão.
7.Usando a API, atualize dinamicamente o mapa de colisão ou defina os itens como invisíveis quando eles não devem fazer parte da detecção de colisão.
Você pode ativar a prevenção automática de colisões para projetos de usinagem com robôs. O RoboDK movimentará automaticamente a ferramenta para encontrar um caminho livre de colisões.
Siga estas etapas para ativar a verificação automática de colisões e a prevenção de colisões para projetos de usinagem com robôs:
1.Selecione Ferramentas ➔ Opções ➔ CAM
2.Clique em Permitir prevenção automática de colisões
3.Clique duas vezes em seu projeto de usinagem com robô, impressão 3D, projeto de seguimento de curva ou seguimento de ponto.
4.Marque Evitar colisões: isso ativará a prevenção automática de colisões, alterando a orientação da ferramenta em torno do eixo Z, conforme descrito nos parâmetros de otimização.
O recurso de planejamento de movimento cria automaticamente trajetórias livres de colisão no espaço de trabalho do robô. No RoboDK, esse recurso usa um algoritmo de planejamento de movimento chamado "probabilistic roteiro s" (PRM).
Primeiro, é criado um mapa do espaço livre no espaço de trabalho do robô. Em seguida, esse mapa é usado para gerar rapidamente trajetórias livres de colisão durante a programação do robô.
Os algoritmos PRM são caracterizados pelas duas propriedades a seguir:
●Probabilística: os pontos no "espaço de configuração" (ou seja, o conjunto de pontos que o planejador usa para saber onde o robô pode se mover em seu espaço de trabalho) são escolhidos aleatoriamente pelo planejador. Isso torna os algoritmos PRM mais rápidos do que outros algoritmos de planejamento de movimento que tentam cobrir todo o espaço de trabalho igualmente.
●Roteiro: Os algoritmos PRM funcionam criando primeiro um "roteiro" de todo o espaço de trabalho do robô.
Para obter uma introdução mais geral ao planejamento de movimento de robôs, consulte esta postagem do blog.
Há duas fases distintas ao usar o planejamento de movimento PRM. Elas são executadas separadamente no RoboDK, o que melhora a eficiência do recurso. A "fase de construção", mais lenta, só precisa ser executada uma vez, enquanto a "fase de consulta", mais rápida, pode ser repetida várias vezes.
As duas fases são:
Para obter mais informações sobre como o algoritmo PRM do RoboDK funciona, consulte esta postagem do blog.
Esta seção mostra como usar essas duas fases em um programa do RoboDK. Um exemplo de configuração de soldagem é usado para demonstrar a funcionalidade.
Para usar o planejador de movimento, é necessário que haja um robô, de preferência com uma ferramenta. Também faz sentido ter pelo menos um objeto dentro do espaço de trabalho, caso contrário, não será necessário evitar colisões. Pode ser útil ter pelo menos dois pontos atribuídos que servirão como locais de início e fim para o caminho sem colisão gerado.
O exemplo de configuração de soldagem pode ser criado usando o seguinte processo:
1.Selecione um robô:
a.Selecione Arquivo ➔
b.Use os filtros para encontrar seu robô. Por exemplo, selecione o ABB IRB 2600-12/1.85 (escolha os seguintes filtros: ABB (marca), carga útil de 10-20 kg e alcance de 1500-2000 mm.
c.Selecione Download e o robô deverá aparecer automaticamente na tela principal.
2.Selecione uma ferramenta:
a.Na mesma biblioteca on-line, filtre por Tipo ➔ Ferramenta (clique em Redefinir filtro primeiro para remover os filtros anteriores)
b.Faça o download de uma ferramenta, por exemplo, a "Tocha de solda".
c.A ferramenta deve ser acoplada automaticamente ao robô
d.Depois que a ferramenta for carregada, a biblioteca on-line poderá ser fechada
3.Adicione um frame de referência:
a.Selecione Programa ➔
b.Selecione o novo frame de referência na árvore e pressione F2 para renomeá-lo para " Referência do Obstáculo"
4.Adicione alguns objetos:
a.Selecione Arquivo ➔
b.Selecione um objeto, como o "Object Table.wrl"
c.Arraste e solte o objeto na Referência de Obstáculo dentro da árvore de estações.
d.Selecione outro objeto, como "box.stl", e arraste-o também para a Referência do Obstáculo.
e.Mova a mesa para a frente do robô fazendo o seguinte:
i.Clique com o botão direito do mouse na referência do obstáculo e escolha "Opções" (ou clique duas vezes na referência na árvore) para abrir o painel Detalhes do Frame
ii.Insira os seguintes valores no painel denominado Posição de referência em relação a: Projeto: 1000, 0, 400, 90, 0, 0
f.Se necessário, aumente o tamanho e a posição do seu objeto (por exemplo, a "caixa") seguindo estas etapas:
iii.Clique com o botão direito do mouse no objeto na árvore da estação e escolha Opções (ou simplesmente clique duas vezes no objeto na árvore) para abrir o painel Detalhes do objeto
iv.Dimensione a caixa clicando em Mais Opções ➔Aplicar escala e digite "4.0" na proporção da escala
v.Mova a caixa para a mesa inserindo os seguintes valores no painel denominado Posição do objeto em relação à referência do obstáculo: 0, 0, 200, 0, 0, 0
5.Criar metas:
a.Selecione o programa ➔
b.Selecione o novo Ponto na árvore de estações e selecione F2 para renomeá-lo como Ponto inicial
c.Mova o ponto fazendo isso:
vi.Clique com o botão direito do mouse no Ponto na árvore da estação e escolha Opções (ou pressione F3) para abrir o painel Ponto Inicial.
vii.Insira os seguintes valores na posição do ponto com relação aos painéis de referência do obstáculo: 500, 0, 0, 90, 0, 180
d.Crie um segundo ponto, da mesma forma, e renomeie como Ponto final. Usando o mesmo método anterior, mova-o para o local: -500, 0, 0, 90, 0, 180
Não é comum que uma tarefa use todo o espaço de trabalho do robô. Ao criar um mapa PRM, geralmente é uma boa ideia restringir os limites de eixos do robô. Isso acelera o processo de geração do mapa e garante que os pontos dentro desse mapa estejam localizados no melhor lugar.
Para robôs de 6 eixos, os dois eixos mais frequentemente restringidas são:
1.Eixo 1 (o eixo da base) - A restrição desse eixo impede que o robô se mova muito para qualquer lado do espaço de trabalho.
2.Eixo 3 (o eixo do cotovelo) - A restrição desse eixo impede que o robô alterne entre as configurações de cotovelo para cima e para baixo.
Altere os limites do eixo usando o seguinte processo:
1.Clique com o botão direito do mouse no ícone do modelo do robô na árvore de estações (por exemplo, ABB IRB 2600-12/1.85) e selecione Opções... para abrir o painel do robô. Como alternativa, basta clicar duas vezes no nome do robô na árvore de estações.
2.Na seção Movimentar eixos, mova os controles deslizantes das articulações do robô que deseja restringir (por exemplo, θ1 e θ3) para encontrar onde deseja que os limites inferiores das articulações estejam.
3.Clique duas vezes em qualquer um dos limites inferiores do eixo dentro do jog do eixo. Por exemplo, se o limite de junta de θ1 for atualmente -180, clique duas vezes no número -180. Isso abrirá o painel Definir limites inferiores do eixo.
4.Defina os limites inferiores do eixo como θ1 = -50 e θ3 = -90.
5.Altere os limites do eixo e clique em OK.
6.Usando o mesmo processo com os limites superiores do eixo, defina θ1 = 50.
Essa alteração pode ser vista ao visualizar o espaço de trabalho acessível do robô. Mostre o espaço de trabalho selecionando a opção Exibir para a ferramenta atual na seção Espaço de trabalho do painel do robô. Isso mostrará apenas a parte do espaço de trabalho que agora pode ser alcançada com os novos limites de eixos.
O algoritmo PRM gera um roteiro de locais acessíveis usando os três parâmetros a seguir:
1.Número de amostras - O mapa consiste em um número de locais colocados aleatoriamente (amostras) em todo o espaço de trabalho acessível do robô. Esse número determina o número de amostras. O padrão é 100 amostras.
2.Bordas por amostra - O algoritmo tenta conectar cada amostra do mapa a várias outras amostras. A linha que conecta duas amostras é chamada de "borda" e indica um caminho livre de colisões entre esses dois locais. Essa propriedade indica o número máximo de bordas que serão criadas por amostra. O padrão é 25 bordas por amostra.
3.Passo do robô (graus) - Ao verificar se uma borda potencial é livre de colisões, o algoritmo para em intervalos regulares ao longo dela para verificar se há colisões. A distância entre esses intervalos é determinada pelo passo do robô. O padrão é 4 graus.
Esses três parâmetros determinam o nível de detalhamento do roteiro gerado. Eles também afetam o tempo necessário para gerar o roteiro durante a fase de construção.
Um número maior de amostras e mais bordas por amostra produzirão um roteiro mais refinado que levará mais tempo para ser gerado. Um passo maior gerará um mapa mais rapidamente, mas poderá não detectar possíveis colisões.
Usando os valores padrão, um roteiro geralmente pode ser gerado em 15 minutos, dependendo da configuração do espaço de trabalho e das propriedades do robô.
Consulte as dicas no final desta seção para obter as práticas recomendadas ao definir esses parâmetros.
A "fase de construção" do planejador de movimento é realizada usando o seguinte processo, que gera um roteiro do espaço de trabalho do robô:
1.Abra o painel Planejador de movimentoS sem colisões acessando o menu Utilitários ➔ Planejador de movimentos sem colisões ➔ Criar mapa sem colisões ou clique na pequena seta ao lado de
2.Insira novos parâmetros ou mantenha os padrões.
3.Clique em Atualizar mapa para gerar o roteiro .
O algoritmo PRM gerará um roteiro usando os parâmetros escolhidos. Quando terminar, o roteiro gerado poderá ser visualizado marcando a caixa Exibir mapa. Clicar em Exibir amostras moverá o robô por todas as amostras dentro do espaço de trabalho.
A "fase de consulta" do planejador de movimento é acessada quando dois pontos ou programas são vinculados.
Para vincular dois pontos, primeiro selecione-os na árvore de estações. Há duas maneiras de selecionar e vincular os pontos:
1.Com a tecla Ctrl:
a.Clique com o botão esquerdo do mouse no ponto que deve iniciar o movimento (no exemplo, o ponto chamado "Ponto Inicial").
b.Mantenha pressionada a tecla CTRL.
c.Clique com o botão esquerdo do mouse no ponto de destino (por exemplo, "Ponto Final")
d.Clique com o botão direito do mouse em um dos dois pontos e selecione Vincular Pontos selecionados. Como alternativa, se o painel do planejador de movimento sem colisão estiver aberto, clique no botão Vincular Pontos/programas selecionados.
2.Com a tecla Shift:
a.Organize os dois pontos um acima do outro na árvore da estação, com o Ponto Inicial acima do Ponto Final. Um Ponto pode ser movido pela árvore arrastando e soltando-o com o botão direito do mouse. Se você soltar o ponto, será exibido um menu para escolher onde o Ponto deve ser localizado.
b.Clique com o botão esquerdo do mouse em um dos Pontos.
c.Mantenha pressionada a tecla Shift.
d.Clique com o botão esquerdo do mouse no outro Ponto.
e.Clique com o botão direito do mouse em um dos dois Pontos e selecione Vincular Pontos selecionados. Como alternativa, se o painel do planejador de movimento sem colisão estiver aberto, clique no botão Vincular Pontos/programas selecionados.
Ambos os métodos geram um novo programa que vincula os dois pontos usando o roteiro salvo. Para criar um movimento na direção oposta, selecione os pontos na ordem oposta, ou seja, selecionando Ponto Final antes do Ponto Inicial usando o método Ctrl ou reorganizando os Pontos na árvore de estações para o método SHIFT.
O planejador de movimento também pode vincular dois programas diferentes de maneira semelhante. Isso cria um caminho livre de colisões entre os dois programas e cria um novo programa principal.
Para o exemplo de soldagem, crie dois programas usando o seguinte processo:
1.Crie quatro pontos vinculados ao frame de referência "Referência do Objeto" (clique com o botão direito do mouse em "Referência do Objeto" na árvore da estação e marque Frame de Referência Ativo). Em seguida, crie quatro pontos selecionando Programa
2.Selecione cada novo ponto na árvore de estações e digite os seguintes nomes e valores. Para alterar o nome do Ponto, pressione a tecla F2 ou clique com o botão direito do mouse no ponto e escolha Renomear. Para alterar os valores do ponto, pressione a tecla F3 para abrir o painel Ponto ou clique com o botão direito do mouse no ponto e selecione Opções. Insira os novos valores na seção marcada Posição do Ponto em relação a: Referência do objeto.
a.Nome: "Ponto esquerdo 1" Valores: 200, 200, 0, 90, 0, -135
b.Nome: "Ponto esquerdo 2" Valores: 200, -200, 0, 90, 0, -135
c.Nome: "Ponto direito 1" Valores: -200, 200, 0, 90, 0, 135
d.Nome: " Ponto direito 2" Valores: -200, -200, 0, 90, 0, 135
3.Criar o primeiro programa:
a.Acesse Programa ➔
b.Renomeie o programa para "Solda Esquerda" selecionando primeiro o programa na árvore de estações e pressionando F2 ou clicando com o botão direito do mouse e selecionando Renomear.
c.Adicione os seguintes pontos como instruções lineares, selecionando primeiro o Ponto na árvore de estações e selecionando Programa ➔
4.Crie o segundo programa chamado "Solda Direita" da mesma maneira, desta vez adicionando os seguintes Pontos: Ponto Final, Ponto direito 1, Ponto direito 2, Ponto Final.
Observe que esses dois programas fictícios não contêm comandos para ativar/desativar a pistola de soldagem. Em um programa real, esses comandos teriam de ser incluídos.
Para vincular dois programas quaisquer usando o planejador de movimento, use o seguinte processo:
1.Selecione os dois programas usando um dos dois métodos descritos na seção anterior (Vincular Pontos).
2.Clique com o botão direito do mouse em um dos programas e escolha Vincular programas selecionados. Se o painel do planejador de movimento sem colisão estiver aberto, o mesmo poderá ser feito clicando em Vincular Pontos/programas selecionados.
Será criado um novo programa chamado "MainSafe" que executa o primeiro programa, faz um movimento sem colisão e, em seguida, executa o segundo programa. Esse programa principal pode ser alterado e renomeado como qualquer outro programa.
Qualquer novo ponto pode ser adicionado ao roteiro do PRM sem a necessidade de gerar novamente o mapa inteiro. Isso significa que o roteiro só precisa ser completamente gerado se novos objetos forem adicionados ao espaço de trabalho ou se os objetos existentes forem movidos.
Quando um novo ponto é adicionado ao roteiro, o algoritmo PRM tentará conectá-lo a um número de pontos existentes já dentro do roteiro com um conjunto de novas bordas. É possível definir um número padrão de bordas para novos pontos diferente do número escolhido para a construção inicial do roteiro.
O número máximo de bordas para novos pontos pode ser definido usando o seguinte processo
1.Abra o painel Planejador de movimento sem colisões acessando o menu Utilitários ➔ Planejador de movimento sem colisões ➔ Criar mapa sem colisões ou clique na pequena seta ao lado de
2.Digite o número de bordas na caixa denominada Novas bordas de amostra. O padrão é 5.
Há duas maneiras de adicionar novas metas ao roteiro:
1.Selecione os pontos na árvore da estação. Vários pontos adjacentes podem ser selecionados de uma vez clicando no ponto mais alto, mantendo pressionada a tecla Shift e, em seguida, clicando no ponto mais baixo. Vários pontos não adjacentes podem ser selecionados mantendo pressionada a tecla Ctrl. Em seguida, clique em Adicionar Pontos selecionados no painel Planejador de movimento sem colisão.
2.Basta usar o mesmo método para vincular pontos selecionados ou vincular programas selecionados descrito nas seções anteriores (Vincular Pontos e Vincular Programas). Qualquer Ponto que ainda não esteja presente no roteiro será adicionado automaticamente.
O planejador de movimento é fácil de usar, mas há algumas práticas recomendadas que melhorarão o fluxo de trabalho de programação.
A fase de construção pode levar muito tempo para ser executada. Isso pode se tornar complicado durante os estágios iniciais da programação, quando o layout da célula do robô está mudando constantemente. Toda vez que um objeto é adicionado ao espaço de trabalho ou movido, o roteiro inteiro precisa ser gerado novamente.
Para reduzir o tempo gasto aguardando a geração do roteiro, é uma boa ideia usar parâmetros menores no início.
Por exemplo, você geralmente pode gerar um mapa sem colisões com o seguinte em 10 a 15 segundos:
1.Número de amostras: 10.
2.Bordas por amostra: 5.
3.Passo do robô (graus): 4.0.
Isso não produzirá o movimento sem colisões mais eficiente, mas permitirá que o design da célula seja alterado muito mais rapidamente.
Quando as localizações de todos os objetos na célula tiverem sido decididas, um mapa maior poderá ser gerado (por exemplo, com os parâmetros padrão de 100, 25, 4.0).
Por fim, antes de gerar o programa do robô, pode ser uma boa ideia gerar um roteiro ainda maior (por exemplo, com parâmetros de 500, 50, 2.0). Isso levará muito tempo para ser gerado, mas produzirá os movimentos mais eficientes.
A definição dos limites das juntas do robô (conforme descrito na seção anterior Restringir os limites dos eixos) tem um benefício duplo. Em primeiro lugar, pode tornar a fase de construção mais rápida em alguns casos. Em segundo lugar, garante que o roteiro realmente contenha locais que serão úteis para o programa do robô. É fácil esquecer essa etapa vital.
Definir adequadamente o mapa de colisão
A detecção de colisão é acionada quando dois objetos colidem. Você pode especificar a correlação entre cada objeto em movimento nas configurações do Mapa de Colisões. Reduzir o número de interações (marcas de verificação verdes) acelerará a verificação de colisão.
O tempo necessário para calcular trajetórias livres de colisão depende principalmente do tempo necessário para verificar se há colisões. Portanto, você deve seguir as práticas recomendadas para acelerar a verificação de colisões descritas na seção de detecção de colisões. Entre outras coisas, você pode aumentar o passo do robô para a verificação de colisões, restringir os limites das juntas ou simplificar a geometria 3D para acelerar a verificação de colisões.
O termo "prevenção de colisões" sugere que o planejador de movimento sempre evitará colisões em todas as situações. Isso certamente é verdade no ambiente de simulação. Entretanto, no mundo real, o robô ainda pode colidir com objetos se chegar muito perto deles. Isso geralmente ocorre devido a pequenas diferenças entre o robô simulado e o robô físico.
Um exemplo comum de tais colisões é quando o robô "pega" a borda de um objeto ao se afastar de uma tarefa. Isso geralmente pode ser evitado com a inclusão de um "offset" no programa. Consulte este artigo do blog para obter mais informações sobre o uso eficaz de offsets.
Nem todas as áreas do espaço de trabalho do robô são iguais. O robô terá mais "acessibilidade" em algumas áreas de seu espaço de trabalho do que em outras. Em áreas com alta capacidade de alcance, o robô poderá acessar pontos a partir de várias orientações. Em áreas com baixa acessibilidade, o robô só poderá acessar os pontos a partir de uma ou duas orientações.
Às vezes, o planejador de movimento não consegue encontrar um caminho entre dois pontos no espaço de trabalho. Muitas vezes, esse problema pode ser resolvido simplesmente aumentando o número de amostras no roteiro, mas nem sempre.
Se o planejador de movimento falhar continuamente em conectar pontos, certifique-se de que a tarefa esteja localizada dentro da área do espaço de trabalho do robô com maior capacidade de alcance. Visualize o espaço de trabalho do robô abrindo o painel do robô (clique com o botão direito do mouse no robô na árvore da estação e escolha Opções) e selecione Mostrar para a ferramenta atual na seção Espaço de trabalho.