·
Engenharia de Controle e Automação ·
Robótica
Envie sua pergunta para a IA e receba a resposta na hora
Recomendado para você
34
Controle de Sistemas Robóticos - Métodos e Avaliações
Robótica
PUC
2
Lista de Exercícios 1 - Controle de Sistemas Robóticos
Robótica
PUC
9
Controle de Força e Coordenação de Múltiplos Manipuladores
Robótica
PUC
2
Lista de Exercícios 2 - Controle de Sistemas Robóticos
Robótica
PUC
25
Introdução aos Sistemas Robóticos: Estruturas, Componentes e Funcionalidades
Robótica
PUC
12
Tarefa - Movimento de Braços Mecânicos - 2023-1
Robótica
UFMT
14
Modelagem Cinemática de Robôs: Sistemas de Referência e Transformação de Coordenadas
Robótica
UNIP
45
Introdução à Notação DH na Robótica
Robótica
IFSP
25
Aula de Robótica: Automação Rígida e Flexível
Robótica
UNIP
28
Definição e Elementos de um Robô Manipulador Mecânico
Robótica
UNIP
Texto de pré-visualização
Aula prática 09 Move robô para posição específica Nesta aula utilizaremos o software CoppeliaSim para simular um robô que deve seguir para uma posição determinada por um marcador Para desenvolver o programa de controle foi utilizado uma máquina de estado conforme a figura a seguir Os estados 1 2 e 3 significam 1 robô parado 3 robô alinhando direção e 2 robô avançando As transições são designadas por s1 s2 e s3 A transição s1 é ativada se o robô está no estado 1 e a distância até o alvo é maior que um valor mínimo A transição s2 é ativada se o robô está no estado 3 e ele está alinhado com o alvo A transição s3 é colocada em 0 se o robô estiver no estado 2 e estiver desalinhado Caso o robô esteja no estado 2 alinhado e a distância até o alvo for menor que uma determinada tolerância então o robô volta ao estado 1 para sobre o alvo Crie uma cena e coloque na mesma o robô móvel Bubble Robot criado anteriormente Insira um dummie em uma posição aleatória e mude seu nome para Target Apague o script do robô e insira o seguinte script function sysCallinit This is executed exactly once the first time this script is executed bubbleRobBasesimgetObjectHandlesimhandleself this is bubbleRobs handle leftMotorsimgetObjectHandlebubbleRobleftMotor Handle of the left motor rightMotorsimgetObjectHandlebubbleRobrightMotor Handle of the right motor noseSensorsimgetObjectHandlebubbleRobsensingNose Handle of the proximity sensor minMaxSpeed50mathpi180300mathpi180 Min and max speeds for each motor backUntilTime1 Tells whether bubbleRob is in forward or backward mode robotCollectionsimcreateCollection0 simaddItemToCollectionrobotCollectionsimhandletreebubbleRobBase0 distanceSegmentsimaddDrawingObjectsimdrawinglines4011010 robotTracesimaddDrawingObjectsimdrawinglinestripsimdrawingcyclic201200110nilnil110 graphsimgetObjectHandlebubbleRobgraph distStreamsimaddGraphStreamgraphbubbleRob clearancem0100 Create the custom UI xml ui titlesimgetObjectNamebubbleRobBase speed closeablefalse resizeablefalse activatefalse hslider minimum0 maximum100 onchangespeedChangecallback id1 label text style marginleft 300px ui uisimUIcreatexml speedminMaxSpeed1minMaxSpeed205 simUIsetSliderValueui1100speedminMaxSpeed1minMaxSpeed2minMaxSpeed1 Associacao de handles target simgetObjectHandleTarget simsetJointTargetVelocityleftMotor0 simsetJointTargetVelocityrightMotor0 printRobo parado Variaveis maxVel03 wheelRadius0027 interWheelDistance0119 estado 1 distdesejada 00002 angtol mathpi3180 erro menor que 3 graus convertido para radianos rodando True xr 0 yr 0 xt 0 yt 0 gama 0 stsimgetSimulationTime velLeft0 velRight0 printRobo parado 2 end function sysCallsensing local resultdistDatasimcheckDistancerobotCollectionsimhandleall if result0 then simaddDrawingObjectItemdistanceSegmentnil simaddDrawingObjectItemdistanceSegmentdistData simsetGraphStreamValuegraphdistStreamdistData7 end local psimgetObjectPositionbubbleRobBase1 simaddDrawingObjectItemrobotTracep Coletar dados do robo e do alvo posicaorobo simgetObjectPositionbubbleRobBase1 posicaoalvo simgetObjectPositiontarget1 orientacaorobo simgetObjectOrientationbubbleRobBase1 xr posicaorobo1 yr posicaorobo2 xt posicaoalvo1 yt posicaoalvo2 gama orientacaorobo3 printgama gama printRobo lendo prosicao e orientacao end function speedChangecallbackuiidnewVal speedminMaxSpeed1minMaxSpeed2minMaxSpeed1newVal100 end function sysCallactuation distatual mathsqrtxt xr2 yt yr2 angatual mathatan2yt yr xt xr mathpi 2 printangatual angatual erroang gama angatual2 Condicoes para transicoes printdistatual distatual printdistdesejada distdesejada printerroang erroang if distatual distdesejada then s1 0 ir para alinhamento else s1 1 ficar parado end if mathabserroang angtol then s2 1 ir para avancar else s2 0 end if mathabserroang angtol then s3 0 voltar para alinhamento else s3 1 end Transicoes if estado 1 and s1 0 then estado 3 end if estado 3 and s2 1 then estado 2 end if estado 2 and s1 1 and s3 1 then estado 1 end if estado 2 and s3 0 then estado 3 end Acoes if estado 1 then comandos para estado 1 printRobo parado velLeft0 velRight0 end if estado 2 then comandos para estado 2 printRobo avancando velLeft 10speed velRight 10speed end if estado 3 then comandos para estado 3 printRobo alinhando if gama angatual 0 then velLeft 05speed velRight 05speed else velLeft 05speed velRight 05speed end end When in backward mode we simply backup in a curve at reduced speed simsetJointTargetVelocityleftMotorvelLeft simsetJointTargetVelocityrightMotorvelRight end function sysCallcleanup simUIdestroyui end Bom trabalho Prof Luiz Carlos Figueiredo
Envie sua pergunta para a IA e receba a resposta na hora
Recomendado para você
34
Controle de Sistemas Robóticos - Métodos e Avaliações
Robótica
PUC
2
Lista de Exercícios 1 - Controle de Sistemas Robóticos
Robótica
PUC
9
Controle de Força e Coordenação de Múltiplos Manipuladores
Robótica
PUC
2
Lista de Exercícios 2 - Controle de Sistemas Robóticos
Robótica
PUC
25
Introdução aos Sistemas Robóticos: Estruturas, Componentes e Funcionalidades
Robótica
PUC
12
Tarefa - Movimento de Braços Mecânicos - 2023-1
Robótica
UFMT
14
Modelagem Cinemática de Robôs: Sistemas de Referência e Transformação de Coordenadas
Robótica
UNIP
45
Introdução à Notação DH na Robótica
Robótica
IFSP
25
Aula de Robótica: Automação Rígida e Flexível
Robótica
UNIP
28
Definição e Elementos de um Robô Manipulador Mecânico
Robótica
UNIP
Texto de pré-visualização
Aula prática 09 Move robô para posição específica Nesta aula utilizaremos o software CoppeliaSim para simular um robô que deve seguir para uma posição determinada por um marcador Para desenvolver o programa de controle foi utilizado uma máquina de estado conforme a figura a seguir Os estados 1 2 e 3 significam 1 robô parado 3 robô alinhando direção e 2 robô avançando As transições são designadas por s1 s2 e s3 A transição s1 é ativada se o robô está no estado 1 e a distância até o alvo é maior que um valor mínimo A transição s2 é ativada se o robô está no estado 3 e ele está alinhado com o alvo A transição s3 é colocada em 0 se o robô estiver no estado 2 e estiver desalinhado Caso o robô esteja no estado 2 alinhado e a distância até o alvo for menor que uma determinada tolerância então o robô volta ao estado 1 para sobre o alvo Crie uma cena e coloque na mesma o robô móvel Bubble Robot criado anteriormente Insira um dummie em uma posição aleatória e mude seu nome para Target Apague o script do robô e insira o seguinte script function sysCallinit This is executed exactly once the first time this script is executed bubbleRobBasesimgetObjectHandlesimhandleself this is bubbleRobs handle leftMotorsimgetObjectHandlebubbleRobleftMotor Handle of the left motor rightMotorsimgetObjectHandlebubbleRobrightMotor Handle of the right motor noseSensorsimgetObjectHandlebubbleRobsensingNose Handle of the proximity sensor minMaxSpeed50mathpi180300mathpi180 Min and max speeds for each motor backUntilTime1 Tells whether bubbleRob is in forward or backward mode robotCollectionsimcreateCollection0 simaddItemToCollectionrobotCollectionsimhandletreebubbleRobBase0 distanceSegmentsimaddDrawingObjectsimdrawinglines4011010 robotTracesimaddDrawingObjectsimdrawinglinestripsimdrawingcyclic201200110nilnil110 graphsimgetObjectHandlebubbleRobgraph distStreamsimaddGraphStreamgraphbubbleRob clearancem0100 Create the custom UI xml ui titlesimgetObjectNamebubbleRobBase speed closeablefalse resizeablefalse activatefalse hslider minimum0 maximum100 onchangespeedChangecallback id1 label text style marginleft 300px ui uisimUIcreatexml speedminMaxSpeed1minMaxSpeed205 simUIsetSliderValueui1100speedminMaxSpeed1minMaxSpeed2minMaxSpeed1 Associacao de handles target simgetObjectHandleTarget simsetJointTargetVelocityleftMotor0 simsetJointTargetVelocityrightMotor0 printRobo parado Variaveis maxVel03 wheelRadius0027 interWheelDistance0119 estado 1 distdesejada 00002 angtol mathpi3180 erro menor que 3 graus convertido para radianos rodando True xr 0 yr 0 xt 0 yt 0 gama 0 stsimgetSimulationTime velLeft0 velRight0 printRobo parado 2 end function sysCallsensing local resultdistDatasimcheckDistancerobotCollectionsimhandleall if result0 then simaddDrawingObjectItemdistanceSegmentnil simaddDrawingObjectItemdistanceSegmentdistData simsetGraphStreamValuegraphdistStreamdistData7 end local psimgetObjectPositionbubbleRobBase1 simaddDrawingObjectItemrobotTracep Coletar dados do robo e do alvo posicaorobo simgetObjectPositionbubbleRobBase1 posicaoalvo simgetObjectPositiontarget1 orientacaorobo simgetObjectOrientationbubbleRobBase1 xr posicaorobo1 yr posicaorobo2 xt posicaoalvo1 yt posicaoalvo2 gama orientacaorobo3 printgama gama printRobo lendo prosicao e orientacao end function speedChangecallbackuiidnewVal speedminMaxSpeed1minMaxSpeed2minMaxSpeed1newVal100 end function sysCallactuation distatual mathsqrtxt xr2 yt yr2 angatual mathatan2yt yr xt xr mathpi 2 printangatual angatual erroang gama angatual2 Condicoes para transicoes printdistatual distatual printdistdesejada distdesejada printerroang erroang if distatual distdesejada then s1 0 ir para alinhamento else s1 1 ficar parado end if mathabserroang angtol then s2 1 ir para avancar else s2 0 end if mathabserroang angtol then s3 0 voltar para alinhamento else s3 1 end Transicoes if estado 1 and s1 0 then estado 3 end if estado 3 and s2 1 then estado 2 end if estado 2 and s1 1 and s3 1 then estado 1 end if estado 2 and s3 0 then estado 3 end Acoes if estado 1 then comandos para estado 1 printRobo parado velLeft0 velRight0 end if estado 2 then comandos para estado 2 printRobo avancando velLeft 10speed velRight 10speed end if estado 3 then comandos para estado 3 printRobo alinhando if gama angatual 0 then velLeft 05speed velRight 05speed else velLeft 05speed velRight 05speed end end When in backward mode we simply backup in a curve at reduced speed simsetJointTargetVelocityleftMotorvelLeft simsetJointTargetVelocityrightMotorvelRight end function sysCallcleanup simUIdestroyui end Bom trabalho Prof Luiz Carlos Figueiredo