# Работа с лазерным дальномером
> **Note** Документация для версий [образа](image.md), начиная с **0.18**. Для более ранних версий см. [документацию для версии **0.17**](https://github.com/CopterExpress/clover/blob/v0.17/docs/ru/laser.md).
## Дальномер VL53L1X
Рекомендуемая для Клевера модель дальномера – STM VL53L1X. Это дальномер может измерять расстояния от 0 до 4 м, при этом обеспечивая высокую точность измерений.
На [образе для Raspberry Pi](image.md) предустановлен соответствующий ROS-драйвер.
### Подключение к Raspberry Pi
> **Note** Для корректной работы лазерного дальномера с полетным контроллером необходима кастомная прошивка PX4. Подробнее про прошивку см. [соответствующую статью](firmware.md).
Подключите дальномер по интерфейсу I²C к пинам 3V, GND, SCL и SDA:
Если обозначенный пин GND занят, можно использовать другой свободный, используя [распиновку](https://pinout.xyz).
> **Hint** По интерфейсу I²C возможно подключать несколько периферийных устройств одновременно. Используйте для этого параллельное подключение.
### Включение
[Подключитесь по SSH](ssh.md) и отредактируйте файл `~/catkin_ws/src/clever/clever/launch/clever.launch` так, чтобы драйвер VL53L1X был включен:
```xml
```
По умолчания драйвер дальномера передает данные в Pixhawk (через топик `/rangefinder/range`). Для просмотра данных из топика используйте команду:
```bash
rostopic echo /rangefinder/range
```
### Настройки 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('rangefinder/range', Range, range_callback)
```
Также существует возможность однократного получения данных с дальномера:
```python
from sensor_msgs.msg import Range
# ...
data = rospy.wait_for_message('rangefinder/range', Range)
```
### Визуализация данных
Для построения графика по данным с дальномера может быть использован rqt_multiplot.
Для визуализации данных может быть использован rviz. Для этого необходимо добавить топик типа `sensor_msgs/Range` в визуализацию:
См. [подробнее об rviz и rqt](rviz.md).