# Работа с лазерным дальномером ## Дальномер VL53L1X Рекомендуемая для Клевера модель дальномера – STM VL53L1X. Это дальномер может измерять расстояния от 0 до 4 м, при этом обеспечивая высокую точность измерений. На [образе для Raspberry Pi](microsd_images.md) предустановлен соответствующий ROS-драйвер. ### Подключение к Raspberry Pi > **Note** Для корректной работы лазерного дальномера с полетным контроллером необходима кастомная прошивка PX4. Подробнее про прошивку см. [соответствующую статью](firmware.md). Подключите дальномер по интерфейсу I²C к пинам 3V, GND, SCL и SDA: Подключение VL53L1X Если обозначенный пин GND занят, можно использовать другой свободный, используя [распиновку](https://pinout.xyz). > **Hint** По интерфейсу I²C возможно подключать несколько периферийных устройств одновременно. Используйте для этого параллельное подключение. ### Включение [Подключитесь по SSH](ssh.md) и отредактируйте файл `~/catkin_ws/src/clever/clever/launch/clever.launch` так, чтобы драйвер VL53L1X был включен: ```xml ``` По умолчания драйвер дальномера передает данные в Pixhawk (через топик `/mavros/distance_sensor/rangefinder_sub`). Для просмотра данных из топика используйте команду: ```bash rostopic echo mavros/distance_sensor/rangefinder_sub ``` ### Настройки PX4 Для использования данных с дальномера в [PX4 должен быть сконфигурирован](px4_parameters.md). При использовании EKF2 (`SYS_MC_EST_GROUP` = `ekf2`): * `EKF2_HGT_MODE` = `2` (Range sensor) – при полете над горизонтальным полом; * `EKF2_RNG_AID` = `1` (Range aid enabled) – в остальных случаях. При использовании LPE (`SYS_MC_EST_GROUP` = `local_position_estimator, attitude_estimator_q`): * В параметре `LPE_FUSION` включен флажок "pub agl as lpos down" – при полете над горизонтальным полом. ### Получение данных из Python Для получения данных из топика создайте подписчика: ```python from sensor_msgs.msg import Range # ... def range_callback(msg): # Обработка новых данных с дальномера print 'Rangefinder distance:', msg.range rospy.Subscriber('mavros/distance_sensor/rangefinder_sub', Range, range_callback) ``` ### Визуализация данных Для построения графика по данным с дальномера может быть использован rqt_multiplot. Для визуализации данных может быть использован rviz. Для этого необходимо добавить топик типа `sensor_msgs/Range` в визуализацию: Range в rviz См. [подробнее об rviz и rqt](rviz.md).