Mavros: A publicação transforma ambas as direções está incorreta

Criado em 20 jul. 2019  ·  5Comentários  ·  Fonte: mavlink/mavros

O comentário de que você precisa para publicar a transformação de outra maneira está incorreto.

https://github.com/mavlink/mavros/blob/bdc5c7386f9451ac244b5a85c087ad620fd3a989/mavros/src/lib/uas_data.cpp#L57

Apenas um destes deve ser usado:

https://github.com/mavlink/mavros/blob/366a9a74847b2e231035b47fa06651527a4556b9/mavros/src/lib/uas_data.cpp#L56 -L58

Eles lutarão entre si e causarão reparações contínuas de modo que a qualquer momento o último recebido vença. Provavelmente, a primeira versão testada causou uma árvore desconectada ao reparar inadvertidamente e adicionar a segunda chamada mascarou-a.

E enquanto estou olhando para este código. É mais limpo e eficiente publicar um vetor de transformações estáticas para aproveitar as vantagens do travamento, em vez de publicar uma sequência de transformações individuais.

bug

Todos 5 comentários

Já mencionamos isso antes: https://github.com/mavlink/mavros/pull/1252#issuecomment -503084522

@ TSC21 FYI

@jkflying @baumanta Vocês podem tentar testar se o problema de carimbo de data / hora existe com o editor duplicado removido?

@tfoote, você estava certo em seu comentário sobre a questão # 388 . O loop tf em mavros parece ser responsável por obter sempre o tf em ros :: Time :: now ().

Eu coloquei um ouvinte tf no código de evitação que recuperou as transformações no timestamp do último pointcloud e em ros :: Time :: now () e imprimiu ambas as transformações. Como o drone estava se movendo, eu esperaria que as transformações fossem ligeiramente diferentes. Usando Mavros 0.29.2. ambas as transformações eram sempre idênticas, mesmo que os carimbos de data / hora não fossem. Usando Mavros PR # 1252, as transformações foram diferentes.

OK, eu suspeito que o código do plugin odom não estava funcionando devido a uma limitação obscura de tópicos travados - você não pode publicar mensagens diferentes em um tópico travado do mesmo processo.

Consulte https://github.com/ros/ros_comm/issues/146 e https://answers.ros.org/question/261815/how-can-i-access-all-static-tf2-transforms/.

A solução alternativa para isso é construir um vetor de todas as transformações e publicá-las de uma vez (passar para a função TF2 especializada http://docs.ros.org/melodic/api/tf2_ros/html/c++/classtf2__ros_1_1StaticTransformBroadcaster.html#a83d0664cb0cc85688b60a22 )

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

Changliu52 picture Changliu52  ·  6Comentários

watakandai picture watakandai  ·  8Comentários

trishantroy picture trishantroy  ·  10Comentários

TSC21 picture TSC21  ·  12Comentários

Phadadev picture Phadadev  ·  4Comentários