ΠΡΠΈΠ²Π΅Ρ,
Π― ΠΏΡΡΠ°ΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π΄Π°Π½Π½ΡΠΌ Π΄Π°ΡΡΠΈΠΊΠ° ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΡ (Π΄Π°Π»ΡΠ½ΠΎΠΌΠ΅Ρ Leddar One), ΠΈΠ·ΠΌΠ΅ΡΡΡΡΠ΅Π³ΠΎ Π²ΡΡΠΎΡΡ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ MAVROS. Π― ΠΌΠΎΠ³Ρ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ 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, ΡΡΠΎ Π΄Π°Π΅Ρ ΠΌΠ½Π΅ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎΡΡΡ, ΡΡΠΎ ΡΡΠΎ Π΄Π°ΡΡΠΈΠΊ Leddar One.
Π― ΡΠ΄Π°Π»ΠΈΠ» distance_sensor ΠΈ rangefinder ΠΈΠ· ΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ° Π² px4_pluginlists.yaml.
Π― ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠΏΡΡΠ°Π»ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ distance_sensor Π² ΡΠ°ΠΉΠ»Π΅ px4_config.yaml, Π½ΠΎ ΠΌΠ½Π΅ Π½Π΅ ΠΏΠΎΠ²Π΅Π·Π»ΠΎ (ΠΏΡΠΎΠ±ΠΎΠ²Π°Π» ΡΠ°Π·Π½ΡΠ΅ ΠΎΡΠΈΠ΅Π½ΡΠ°ΡΠΈΠΈ: 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
Π΄Π°Π»Π΅Π΅.
Π― Π²ΡΠΏΠΎΠ»Π½ΠΈΠ» ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π½Π° ΡΡΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π΄ΡΠΎΠ½ Intel Aero RTF, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΊΠ»ΡΡΠ°Π» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ sys_id Π½Π° 2.
Π₯ΠΎΡΠΎΡΠΎ, Ρ Π΄ΠΎΠ±Π°Π²Π»Ρ rangefinder
ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² ΡΠ΅ΡΠ½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ.
Π― ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, ΡΡΠΎ ΠΏΡΠΎΡΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎΠ³ΠΎ. ΠΡΠ»ΠΈ Π΅ΡΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ Π²Π°ΠΌ ΡΠ΅ΡΡΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ ΠΌΠ½Π΅ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ px4_config.yaml
Π° Π½Π΅ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΡΡΡΠ½ΡΡΡ ΡΡΠΎ, ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ
Π― ΡΠ΅ΡΠΈΠ» ΡΠ²ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. Π― ΡΠΎΠ·Π΄Π°Π» ΡΠ°ΠΉΠ» Π·Π°ΠΏΡΡΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π» Π² Β«px4_config.yamlΒ» Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° config_yaml. ΠΡΠΎΡ Π΄Π°ΡΡΠΈΠΊ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π» ΠΈ ΠΏΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠ΅ΠΌΠ΅ ROS.
ΠΡΠ° ΡΠ΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΊΡΡΡΠ°.
Π§ΡΠΎΠ±Ρ ΡΡΠΎΡΠ½ΠΈΡΡ, Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΠ» ΠΏΡΠΎΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ "- distance_sensor" ΠΈΠ· "px4_pluginlists.yaml" Π΄Π»Ρ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ Π»ΠΈΠ΄Π°ΡΠ°.
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
Π§ΡΠΎΠ±Ρ ΡΡΠΎΡΠ½ΠΈΡΡ, Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΠ» ΠΏΡΠΎΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ "- distance_sensor" ΠΈΠ· "px4_pluginlists.yaml" Π΄Π»Ρ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ Π»ΠΈΠ΄Π°ΡΠ°.