やあ、
MAVROSを使用して高さを測定する距離センサー(Leddar One Range Finder)からデータにアクセスしようとしています。 QGroundControlを使用してデータを表示できます(フライトコントローラーはPX4であるため)。
ドローン(MAVROSがインストールされている)で、次のコマンドを試しました。
$ roscore
$ rosrun mavros mavros_node _fcu_url:=tcp://127.0.0.1:5760 _system_id:=2
この後、同じエラーが繰り返されます。
DS: no mapping for sensor id: 0, type: 1, orientation: 25
QGCでID、タイプ、向きを確認できるので、これがLeddarOneセンサーであることがわかります。
px4_pluginlists.yamlのブラックリストからdistance_sensorとrangefinderを削除しました。
また、px4_config.yamlファイルのdistance_sensor情報を変更しようとしましたが、うまくいきませんでした(さまざまな方向を試しました:PITCH_270、NONE、25)。
このコードの205行目からエラーが生成されていることがわかりました: distance_sensor.cppですが、原因がわかりません。
私はROSを初めて使用するので、助けていただければ幸いです。
px4_config.yaml
構成を確認しましたか? データにアクセスするためにそれぞれのパラメーターを構成しないと、データを正しく取得できません。 そのため、yamlファイルに適切なマップを追加する必要があります(すでに例があります)。 また、sys_idを2に変更する理由はありますか? また、ブラックリストからrangfinder
を削除する必要はありません。これは、APMとのみ互換性があるためです。
迅速な対応と関連するラベルの追加に感謝します。
もう少し具体的にすることはできますか、それとも変更が必要なpx4_config.yaml
の領域に私を向けることができますか? 私が変更した唯一の部分は距離センサーの下にあります:(ソースコードの133行目)
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}
そして、 id: 1
以降から他のセンサーを削除しました
sys_idを2に変更することを含むIntelAero RTFドローンを使用しているため、このページの指示に従いました。
問題ありません。ブラックリストにrangefinder
を追加します。
質問が多すぎるのではないかと思います。 あなたが知っているリソースがあれば、それを説明する必要はなく、 px4_config.yaml
を修正するのに役立ちます。それで十分かもしれません。
ありがとう
問題を解決しました。 config_yaml引数として「px4_config.yaml」を具体的に渡す起動ファイルを作成しました。 これにより、距離センサーが正しく初期化され、必要に応じてデータがROSトピックに公開されました。
このスレッドは閉じている可能性があります。
明確にするために、LIDARデータを公開するには、「px4_pluginlists.yaml」から「-distance_sensor」にコメントする必要がありました。
最も参考になるコメント
明確にするために、LIDARデータを公開するには、「px4_pluginlists.yaml」から「-distance_sensor」にコメントする必要がありました。