Escolar Documentos
Profissional Documentos
Cultura Documentos
UTILIZAÇÃO DA
API REMOTA DO
COPPELIASIM
a. Modo de operação
O modo de operação se refere ao mecanismo para executar as chamadas de
função e como a simulação avançará. Os mecanismos principais são:
Chamadas de funções de bloqueio (“simx_opmode_bloking”): é a chamada regular,
em que há a devolução de um dado.
Chamadas de função de não bloqueio (“simx_opmode_oneshot”): Chamada na
qual simplesmente queremos enviar dados ao CoppeliaSim, sem a necessidade de
resposta.
Fluxo de dados (“simx_opmode_striming”): Quando se quer um fornecimento
constante do valor, sem a necessidade de requisição repetitiva do lado do client.
Operação síncrona: Nos outros modos a simulação avança independente do
progresso da API remota. Por padrão, as funções remotas são assíncronas. Esta é
a única, das quatro, que é ativada através de função, a “simxSynchronous()”. A
simulação avançará somente se “simxSynchronousTrigger()” for chamada.
Existem outros modos, mas estes são os considerados principais, de acordo com o
manual do CoppeliaSim. É importante salientar que cada função possui um modo de
operação recomendado, e estes são indicados no manual do software.
b. Código de retorno
O código de retorno representa o status de retorno da função, se esta funcionou
corretamente, ou se não, onde está o erro. Pode-se observar todos os tipos de código de
retorno, e sua representação na tabela 1, a seguir:
Neste caso a variável ClientID está recebendo o retorno da função simxStart, que
basicamente faz uma conexão via soquete, ou seja, procura pela entidade na qual o
endereço de conexão seja “127.0.0.1” e a porta serial “19999”, o primeiro “True” informa
que se deve aguardar até conectar, o segundo “True” informa para que não haja tentativa
de reconexão uma vez desconectado, os outros 2 números estão relacionados aos
tempos dos frames da simulação.
Com estas etapas anteriores o script já poderá comunicar com o CoppeliaSim e as
funções podem ser chamadas normalmente, entretanto, é interessante manter a conexão,
de modo há executar funções várias vezes, para isso, basta inserir uma condição para
que o programa continue conectado enquanto a variável clientID for igual a “-1”, isso
significa que a conexão está ocorrendo e, enquanto isso for verdade, o programa estará
em execução, caso contrário o loop será interrompido.