Oi,
Estou tentando acessar dados de um sensor de distância (Leddar One Range Finder) medindo altura usando MAVROS. Consigo visualizar os dados usando QGroundControl (pois meu controlador de vôo é PX4).
No drone (com MAVROS instalado), tentei os seguintes comandos:
$ roscore
$ rosrun mavros mavros_node _fcu_url:=tcp://127.0.0.1:5760 _system_id:=2
Depois disso, recebo o mesmo erro repetido:
DS: no mapping for sensor id: 0, type: 1, orientation: 25
Consigo verificar a ID, o tipo e a orientação no QGC, o que me garante que este é o sensor Leddar One.
Removi distance_sensor e rangefinder da lista negra em px4_pluginlists.yaml.
Também tentei alterar as informações do distance_sensor no arquivo px4_config.yaml, mas não tive sorte (tentei várias orientações: PITCH_270, NONE e 25).
Descobri que o erro é gerado a partir da linha 205 neste código: distance_sensor.cpp, mas não consigo descobrir o que está causando isso.
Eu sou apenas novo no ROS, então qualquer ajuda seria muito apreciada.
Você verificou a configuração dele no px4_config.yaml
? Se você não configurar os respectivos parâmetros para acessar os dados, não poderá obter os dados corretamente. Portanto, você precisa adicionar um mapa adequado para ele no arquivo yaml (você já tem exemplos lá). Além disso, há algum motivo para alterar o sys_id para 2? Você também não precisa remover rangfinder
da lista negra porque é compatível apenas com APM.
Obrigado pela resposta rápida e por adicionar rótulos relevantes!
Você pode ser um pouco mais específico ou me indicar a área de px4_config.yaml
que precisa ser alterada? A única parte que alterei está sob o sensor de distância: (linha 133 no código-fonte )
leddar1_pub:
id: 0
frame_id: "leddar1_laser"
orientation: PITCH_270 # RPY:{0.0, 270.0, 0.0} - downward-facing
field_of_view: 0.0 # XXX TODO
send_tf: true
sensor_position: {x: 0.0, y: 0.0, z: -0.1}
E eu removi os outros sensores de id: 1
diante
Eu segui as instruções nesta página, pois estamos usando um drone Intel Aero RTF, que incluiu alterar sys_id para 2.
Não há problema, irei adicionar rangefinder
volta à lista negra.
Eu entendo que posso estar pedindo demais. Se houver algum recurso que você conheça que possa me ajudar a corrigir px4_config.yaml
vez de você precisar explicá-lo, isso pode ser suficiente.
Obrigado
Eu resolvi meu problema. Eu criei um arquivo de inicialização que passou especificamente em "px4_config.yaml" como o argumento config_yaml. Este sensor de distância inicializado corretamente e publicou os dados em um tópico ROS conforme desejado.
Este tópico pode ser encerrado.
Só para esclarecer, eu tive que comentar "- distance_sensor" do "px4_pluginlists.yaml" para os dados LIDAR serem publicados.
Comentários muito úteis
Só para esclarecer, eu tive que comentar "- distance_sensor" do "px4_pluginlists.yaml" para os dados LIDAR serem publicados.