ΠΠΎΠΆΠ΅Ρ ΠΊΡΠΎ ΠΏΡΠΎΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΡΠ΅Ρ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅? Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Ρ ΠΌΠ΅Π½Ρ Π½Π΅Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΏΡΠΎΡΠΌΠΎΡΡ ΠΊΠΎΠ΄Π°, Π½ΠΎ Ρ Π±ΡΠ» Π±Ρ ΡΠ°Π΄ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΡΠ°Π½ΡΡΠΎΡΠΌΠ°ΡΠΈΠΈ.
@LorenzMeier Π‘ΠΌ. PR β208.
@LorenzMeier ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΡΡΠΎ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ:
ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π² ΡΠ΅Π»Π΅ NED β ROS ENU: (xyz) β (x -y -z) ΠΈΠ»ΠΈ (wxyz) β (x -y -zw)
Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ NED β ROS ENU: (xyz) β (yx -z) ΠΈΠ»ΠΈ (wxyz) β (yx -zw)
Π― Π½Π΅ ΠΌΠΎΠ³Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΡ ΡΡΠΎΠΉ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ, Π½ΠΎ Ρ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΡΡΠΎ ΡΠΎ, ΡΠ΅ΠΌ ΠΌΡ ΡΠ΅ΠΉΡΠ°Ρ Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΡΡ.
ΠΠ° ΡΡΠΎ ΠΌΠΎΡ ΡΡ Π΅ΠΌΠ°. Π― ΠΌΠΎΠ³Ρ ΡΡΠΎ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡΡ, ΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΠΈ ΠΎΠ±ΡΡΡΠ½ΠΈΠ» ΡΡΠΎ Π² ΡΠ²ΠΎΠ΅ΠΉ Π΄ΠΈΡΡΠ΅ΡΡΠ°ΡΠΈΠΈ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΡΡΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ - ΡΡΠΎ ΡΠΎ, ΠΎ ΡΠ΅ΠΌ ΠΌΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΡΡΠ΅Π² Π½Π°Π·Π°Π΄, ΠΈ Ρ ΡΠΌΠΎΠ³ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡΡ ΡΡΠΎ Π½Π° Rviz.
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π½Π΅ Π² ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΈ, Π° Π² ΡΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅.
Π― ΡΠΌΠΎΡΡΡ Π½Π° ΡΡΠΎ:
http://wiki.ros.org/geometry/CoordinateFrameConventions ΠΈ
http://www.ros.org/reps/rep-0103.html
ΠΡΡΡ ΡΡΠ΄ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ Π³ΡΠ°ΡΠΈΠΊΠΎΠΉ (ΠΈ Π΅ΡΠ»ΠΈ ΠΎΠ½Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΡΠΈΠ΅Π½ΡΠ°ΡΠΈΡ, ΠΊΠΎΠ΄):
Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π½Π΅Ρ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ°Π΄ΡΠΎΠΌ ΡΠ΅Π»Π° ΠΈ ΠΌΠΈΡΠΎΠ²ΡΠΌ ΠΊΠ°Π΄ΡΠΎΠΌ ΠΏΡΠΈ Π½ΡΠ»Π΅Π²ΠΎΠΌ Π²ΡΠ°ΡΠ΅Π½ΠΈΠΈ, ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ NED ΠΈ ENU ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ Π΄Π»Ρ ΠΎΠ±ΠΎΠΈΡ ΠΊΠ°Π΄ΡΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ / Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΡΡΡΠ»ΠΊΡ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.
Π― Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΡΠΊΠ°Π·Π°Π» @LorenzMeier . ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ Ρ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΠΎΡΠΈΠ±Π°ΡΡΡ, Π²ΡΠ΅ ΠΊΠ°Π΄ΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ Π½Π° ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΡΠΈΡΡΠ½ΠΊΠ΅, ΠΊΡΠΎΠΌΠ΅ ΠΏΡΠ°Π²ΠΎΠ³ΠΎ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ, ΡΠ²Π»ΡΡΡΡΡ Π»Π΅Π²ΠΎΡΡΠΎΡΠΎΠ½Π½Π΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ. ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ, Π²Ρ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΠΈΠ»ΠΈ ΠΎΡΠΈ x ΠΈ y Π² Π»Π΅Π³Π΅Π½Π΄Π΅ Π³ΡΠ°ΡΠΈΠΊΠΈ?
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Ρ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π½Π΅ΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ ENU Π² NED ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π»ΠΈ ΡΡΠΎ Π΄Π»Ρ Π½Π°Π·Π΅ΠΌΠ½ΠΎΠΉ ΡΠ°ΠΌΡ ΠΈΠ»ΠΈ ΠΊΠΎΡΠΏΡΡΠ°. ΠΠ° ΠΊΠΎΡΠΏΡΡΠ΅ ΡΠ΅Π»Π° ΠΈΠΌΡ ENU ΠΈΠ»ΠΈ NED Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΎΡΠΎΠ±ΠΎΠ³ΠΎ ΡΠΌΡΡΠ»Π°, Π½ΠΎ Π²ΡΠ΅ ΠΆΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ· ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ½ΠΎΠ³ΠΎ ΠΊΠ°Π΄ΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ Π² ROS, Π² FCU, Ρ Π΄ΡΠΌΠ°Ρ, Π²ΡΠ΅Π³Π΄Π° Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌ.
Π― Π΅ΡΠ΅ Π½Π΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΠ» ΠΌΠ΅ΡΠΎΠ΄ ΠΊΠΎΠ½Π²Π΅ΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ @mhkabir ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» Π²ΡΡΠ΅. ΠΡΠΌΠ°Ρ, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΠΎΠ»ΡΡΠΈΡΡ Π³ΡΠ°ΡΠΈΠΊΡ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π΄Π΅Π»Π°ΡΡ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΡ
@thedinuka ΠΠ΅
Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ°ΠΉΠ», Ρ ΠΌΠΎΠ³Ρ Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ, Π° Π·Π°ΡΠ΅ΠΌ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π½ΠΎΠ²ΡΠΉ (Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ paint @mhkabir). Π’ΠΎ, ΡΡΠΎ ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΠΏΡΠ°Π²ΠΎΠΉ ΠΈ Π»Π΅Π²ΠΎΠΉ ΡΡΠΊΠ΅, ΠΊΠ°ΠΆΠ΅ΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌ. ΠΠΎ Ρ ΠΌΠ΅Π½Ρ Π²ΡΠ΅ Π΅ΡΠ΅ Π΅ΡΡΡ ΡΠΎΠΌΠ½Π΅Π½ΠΈΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π°Π»ΠΈΡΠΈΡ Π΄Π²ΡΡ ΡΠ°Π·Π½ΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ, ΠΈ ΠΊΠΎΠ³Π΄Π° Ρ ΡΠΎΠ³Π΄Π° Π΄Π΅Π»Π°Π» ΡΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΎΠ½ΠΈ Ρ ΠΌΠ΅Π½Ρ ΡΠΎΠΆΠ΅ Π±ΡΠ»ΠΈ. Π’Π°ΠΊ ΡΡΠΎ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΊΠΎΠ΄, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ ΠΏΠΎΠΌΠ½Ρ, Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π²ΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ.
Π ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΠΈΡΡΠ½ΠΊΠ° ΠΎΡ @ TSC21 Ρ ΠΏΠΎΠ΄ΡΠΌΠ°Π» ΠΎΠ± ΡΡΠΎΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»ΡΡΠ΅, ΠΈ ΡΡΠΎ ΠΊΠ°ΠΆΠ΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΌ, ΡΠ΅ΠΌ Ρ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π΄ΡΠΌΠ°Π». Π― Π²ΡΠΎΠ΄Π΅ ΠΊΠ°ΠΊ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ Ρ @ TSC21. ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ ΠΎ Π΄Π²ΡΡ ΡΠ°Π·Π½ΡΡ ΠΏΠ°ΡΠ°Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ.
1) ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ ROS ΠΎ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΊΠ°Π΄ΡΠ΅ ΠΊ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ Pixhawk ΠΎ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΊΠ°Π΄ΡΠ΅.
2) ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ· ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ ROS ΠΎ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΊΠ°Π΄ΡΠ΅ ΠΠ΅ΠΌΠ»ΠΈ Π² ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ Pixhawk Π΄Π»Ρ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°Π΄ΡΠ° ΠΠ΅ΠΌΠ»ΠΈ.
Π₯ΠΎΡΡ Π΅ΡΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΊΠ°ΠΊ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ROS, ΡΠ°ΠΊ ΠΈ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ Pixhawk ΠΎ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΌ Π΄Π»Ρ ΠΊΠ°Π΄ΡΠ° ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ Ρ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠ΅Π»ΠΎΠΌ, Ρ Π½Π΅ ΡΠΌΠΎΠ³ Π½Π°ΠΉΡΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΌ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ Pixhawk ΠΎΠ± ΠΈΠ½Π΅ΡΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ (ΠΈΠ»ΠΈ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π½Π° ΠΠ΅ΠΌΠ»Π΅) ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ. ΠΡΠ»ΠΈ Π±Ρ ΠΌΠ½Π΅ ΠΏΡΠΈΡΠ»ΠΎΡΡ Π³Π°Π΄Π°ΡΡ, Ρ Π±Ρ ΡΠΊΠ°Π·Π°Π», ΡΡΠΎ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ Pixhawk, Π² ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ GPS, ΡΠ°ΠΌΠΊΠ° ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ Earth Fixed ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ Ρ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΎΡΠΈΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΉ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΠ°ΠΌΠΊΠΈ ΡΠ΅Π»Π°, Π½ΠΎ Ρ Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½ Π½Π° 100%, Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅. ΠΠΎΡΡΠΎΠΌΡ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ Π½Π΅Π΄ΠΎΡΠ°Π·ΡΠΌΠ΅Π½ΠΈΠΉ, Ρ ΠΏΠΎΠΊΠ° Π±ΡΠ΄Ρ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ΠΏΠΎΠ΄Π²ΠΈΠΆΠ½ΡΡ ΡΠ°ΠΌΡ ΠΊΠΎΡΠΏΡΡΠ°.
Π‘ΡΡΠ»Π°ΡΡΡ Π½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ [1] Π΄Π»Ρ ROS ΠΈ [2] Π΄Π»Ρ Pixhawk, Ρ ΡΠ΄Π΅Π»Π°Π» ΡΠ»Π΅Π΄ΡΡΡΡΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ.
ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Ρ Π½Π°Ρ Π΅ΡΡΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ Π΄Π»Ρ ΠΎΠ±ΠΎΠΈΡ (1) ΠΈ (2), ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΡ , ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½Π½ΡΡ ΠΈ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΡΡ , ΡΠΎΠ³Π΄Π° ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠ° Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ mavros ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎΠΉ.
[1] http://www.ros.org/reps/rep-0103.html
[2] https://pixhawk.org/dev/know-how/frames_of_reference
Π‘ΠΌ. Π’Π°ΠΊΠΆΠ΅ β 148 (ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ²Π°ΡΠΈΠ°ΡΠΈΠΈ).
Π ΡΡΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ ros-Infrastructure / rep # 95
ΠΡ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΠΈ Ρ ΡΡΠΈΠΌ? ΠΡΠ°Π²ΠΈΠ»ΡΠ½Ρ Π»ΠΈ ΡΠ΅ΠΊΡΡΠΈΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ· ENU / NED, ΡΠ΅Π»Π° / ΠΌΠΈΡΠ°? Π― ΡΠΏΡΠ°ΡΠΈΠ²Π°Ρ ΠΎΠ± ΡΡΠΎΠΌ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ
@vooon , @mhkabir , @tonybaltovski , @thedinuka ping!
@thedinuka ΠΠ½Π΅ Π½ΡΠ°Π²ΠΈΡΡΡ .
ΠΡΠ»ΠΈ Π±Ρ ΠΌΠ½Π΅ ΠΏΡΠΈΡΠ»ΠΎΡΡ Π³Π°Π΄Π°ΡΡ, Ρ Π±Ρ ΡΠΊΠ°Π·Π°Π», ΡΡΠΎ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ Pixhawk, Π² ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅> GPS, ΡΠ°ΠΌΠΊΠ° ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ Earth Fixed ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ Ρ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΎΡΠΈΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΉ ΡΠ°ΠΌΠΊΠΈ> body-fixed.
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π΅ Π½ΡΠΆΠ΅Π½ GPS. Π£ Π½Π°Ρ ΡΠΆΠ΅ Π΅ΡΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½Π°Ρ ΡΠΏΡΠ°Π²ΠΊΠ° ΠΏΠΎ ΡΡΡΠΊΠ°Π½ΡΡ ΠΈΠ· ΠΆΡΡΠ½Π°Π»Π°. ΠΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΠ·Π½Π°ΡΠ°ΡΡ, ΡΡΠΎ ΡΠ°ΠΌΠ° EF ΠΏΠΎΠ²Π΅ΡΠ½ΡΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠ³ΠΎ ΡΡΡΠΊΠ°Π½ΠΈΡ.
ΠΡΠΈΠ²Π΅Ρ,
Π― ΠΏΠ΅ΡΠ΅Π½Π°Π·Π½Π°ΡΠ°Ρ ΡΠ΅ΠΌΡ Ρ mocap_optitrack Π½Π° vision_pose / pose Π² mavros. ΠΎΠ΄Π½Π°ΠΊΠΎ mav Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π»Π΅ΡΠ°ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ Ρ ΠΌΠ΅Π½ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄
vision_position_estimate (ΡΡΠ°ΠΌΠΏ.toNSec () / 1000,
position.y (), position.x (), -position.z (),
roll, -pitch, -yaw); // ??? ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅!
ΠΊ
vision_position_estimate (ΡΡΠ°ΠΌΠΏ.toNSec () / 1000,
position.y (), position.x (), -position.z (),
roll, -pitch, -yaw + 1,57);
Ρ.Π΅. ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ -yaw Π½Π° -yaw + 1.57.
ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ ΠΊΠΎΡΠΏΡΡΠ° ΠΈΠ· ENU Π² NED, mavros ΡΠ΅ΠΏΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ
(xyz) -> (x, -y, -z)
(w, x, y, z) -> (x, -y, -z, w), ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ
ΠΠΠ£ ---> ΠΠΠ
ΡΡΠ»ΠΎΠ½ ----> ΡΡΠ»ΠΎΠ½
ΡΠ°Π³ -----> - ΡΠ°Π³
ΡΡΡΠΊΠ°Π½ΡΠ΅ -----> - ΡΡΡΠΊΠ°Π½ΠΈΠ΅.
ΠΎΠ΄Π½Π°ΠΊΠΎ Ρ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΠΌΡ ΠΎΡΠΈΠ±Π°Π΅ΠΌΡΡ, ΡΡΠΎ ΡΡΡΠΊΠ°Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΎ Π½Π° ΠΎΡΠΈ x Π² ΠΌΠΈΡΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΎΡΡΡΠ΅ΡΠ° (ΠΊΠΎΠ³Π΄Π° x Π² ΠΊΠ°Π΄ΡΠ΅ ΡΠ΅Π»Π° Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ x Π² ΠΌΠΈΡΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΎΡΡΡΠ΅ΡΠ°, ΡΡΡΠΊΠ°Π½ΠΈΠ΅ ΡΠ°Π²Π½ΠΎ 0) ΠΈ ΠΈΠΌΠ΅Π΅Ρ ΠΏΠΎΠ²ΠΎΡΠΎΡ Π½Π° 90 Π³ΡΠ°Π΄ΡΡΠΎΠ². ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ΄Π΅Π»Π°ΡΡ -yaw + 1.57. Ρ.Π΅.
ΠΠΠ£ ---> ΠΠΠ
ΡΡΠ»ΠΎΠ½ ----> ΡΡΠ»ΠΎΠ½
ΡΠ°Π³ -----> - ΡΠ°Π³
ΡΡΡΠΊΠ°Π½ΠΈΠ΅ -----> - ΡΡΡΠΊΠ°Π½ΠΈΠ΅ + 1,57.
ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ Π΅Π³ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΠ», mav ΠΌΠΎΠΆΠ΅Ρ Π»Π΅ΡΠ°ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ. ΠΏΠΎΡΡΠΎΠΌΡ Ρ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ ΡΠΎΠΆΠ΅ ΠΏΠΎΡ
ΠΎΠΆ Π½Π° ΡΡΠΎΡ.
@congleetea, ΠΊΠΎΡΠΎΡΡΠΉ ΠΊΠ°ΠΆΠ΅ΡΡΡ Π·Π°ΠΊΠΎΠ½Π½ΡΠΌ. ΠΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π²Ρ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΡΠ΅ ΠΆΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΏΠ»Π°Π³ΠΈΠ½Π°ΠΌ ΡΡΡΠ°Π²ΠΎΠΊ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΠΊΠ°ΠΊΠΎΠ² ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ? ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΄Π°Π½Π½ΡΠ΅, ΠΏΠΎΡΡΡΠΏΠ°ΡΡΠΈΠ΅ ΠΈΠ· ΡΠ΅ΠΌΡ local_position
ΠΈΠΌΠ΅ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ ΠΎΡΠΈΠ΅Π½ΡΠ°ΡΠΈΡ Π±Π΅Π· ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ?
Π‘ΠΌ. Π’Π°ΠΊΠΆΠ΅ β 148 (ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ²Π°ΡΠΈΠ°ΡΠΈΠΈ).
ΠΡ ΡΠΎΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΡΠΎ ΡΡΠΈΡΡΠ²Π°ΡΡ.
PR # 317 ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΠΈ.
Π― ΠΏΡΠΎΠ²Π΅ΡΠΈΠ» ΡΡΠΎ ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅
NED (Pixhawk) -> ENU (ROS)
(X, Y, Z) -> (X, -Y, -Z)
ENU (ROS) -> NED (Pixhawk)
(X, Y, Z) -> (X, -Y, -Z)
ΠΡΠΎ Ρ ΠΎΡΠΎΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠ°ΠΊ Π² ΡΠ²ΠΈΠ·Π΅, ΡΠ°ΠΊ ΠΈ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ.
@supermice , ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π°ΡΡΠΈΠΉ # 317, ΡΠΏΠ°ΡΠΈΠ±ΠΎ! :)
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
Π― ΡΠΌΠΎΡΡΡ Π½Π° ΡΡΠΎ:
http://wiki.ros.org/geometry/CoordinateFrameConventions ΠΈ
http://www.ros.org/reps/rep-0103.html
ΠΡΡΡ ΡΡΠ΄ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ Π³ΡΠ°ΡΠΈΠΊΠΎΠΉ (ΠΈ Π΅ΡΠ»ΠΈ ΠΎΠ½Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΡΠΈΠ΅Π½ΡΠ°ΡΠΈΡ, ΠΊΠΎΠ΄):
Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π½Π΅Ρ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ°Π΄ΡΠΎΠΌ ΡΠ΅Π»Π° ΠΈ ΠΌΠΈΡΠΎΠ²ΡΠΌ ΠΊΠ°Π΄ΡΠΎΠΌ ΠΏΡΠΈ Π½ΡΠ»Π΅Π²ΠΎΠΌ Π²ΡΠ°ΡΠ΅Π½ΠΈΠΈ, ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ NED ΠΈ ENU ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ Π΄Π»Ρ ΠΎΠ±ΠΎΠΈΡ ΠΊΠ°Π΄ΡΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ / Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΡΡΡΠ»ΠΊΡ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.