diff --git a/clever/launch/clever.launch b/clever/launch/clever.launch index 51dbc5fc..ebf83c90 100644 --- a/clever/launch/clever.launch +++ b/clever/launch/clever.launch @@ -58,6 +58,7 @@ + diff --git a/clever/src/vl53l1x.py b/clever/src/vl53l1x.py index 78abfb7c..346c382b 100755 --- a/clever/src/vl53l1x.py +++ b/clever/src/vl53l1x.py @@ -1,4 +1,6 @@ #!/usr/bin/env python +# TODO: rewrite, as Python version eats 20% CPU + from __future__ import division import rospy @@ -11,6 +13,7 @@ rospy.init_node('vl53l1x') # range_pub = rospy.Publisher('~range', Range, queue_size=5) # TODO: why remmaping is not working? range_pub = rospy.Publisher('mavros/distance_sensor/rangefinder_3_sub', Range, queue_size=10) +z_shift = rospy.get_param("z_shift", 0) # TODO: move to mavros (use frame) msg = Range() msg.radiation_type = Range.INFRARED @@ -28,7 +31,7 @@ rospy.loginfo('vl53l1x: start ranging') r = rospy.Rate(14) while not rospy.is_shutdown(): msg.header.stamp = rospy.get_rostime() - msg.range = tof.get_distance() / 1000 + msg.range = tof.get_distance() / 1000 + z_shift range_pub.publish(msg) r.sleep() diff --git a/docs/optical_flow.md b/docs/optical_flow.md new file mode 100644 index 00000000..a3a79170 --- /dev/null +++ b/docs/optical_flow.md @@ -0,0 +1,48 @@ +# Использование Optical Flow + +> **Warning** Данная функция является **экспериментальной** и включена в образ с версии v0.11.4. + +При использовании технологии Optical Flow возможен полет в режиме POSCTL и автономные полеты по камере, направленной вниз, засчет измерения сдвигов текстуры поверхности пола. + +## Включение + +А данный момент для использования Optical Flow необходима [кастомная прошивка PX4](https://yadi.sk/d/D_dOnsNcezkEog). + +Необходимо использования дальномера. При использовании дальномера STM vl53l1x, необходимо подключить его к Raspberry Pi по I2C и включить его в `~/catkin_ws/src/clever/clever/launch/clever.launch`: + +```xml + +``` + +Необходимо включить Optical Flow: + +```xml + +``` + +В `main_camera.launch` должен быть выставлен корректный фрейм камеры. + +Рекомендуемые параметры PX4: + +* `SYS_MC_EST_GROUP` – 2 (EKF2). +* `EKF2_AID_MASK` – use optical flow. +* `EKF2_OF_DELAY` – 0. +* `EKF2_OF_QMIN` – 30. +* `EKF2_HGT_MODE` – range sensor (ремменд.). + +## Полет в POSCTL + +Настройте POSCTL как один из полетных режимов PX4. Переведите в режим POSCTL. + +## Автономный полет + +Автономный полет возможен с использованием модуля [simple_offboard](simple_offboard.md). + +## Troubleshooting + +При появлении в QGC ошибок типа `EKF INTERNAL CHECKS` попробуйте перезагрузить ekf2. Для этого наберите в MAVLink-консоли: + +```nsh +ekf2 stop +ekf2 start +```