Модуль камеры px4flow может использоваться автопилотами на базе прошивок PX4 и Ardupilot. Подключение к автопилоту происходит с помощью интерфейса i2c, первоначальная настройка производится через USB. Прошивка модуля обновляется через QGroundControl.
Некоторые соображения/наблюдения:
-
Камера использует различные прошивки для PX4 и Ardupilot. Соответственно, при первом подключении к QGroundControl следует выбрать и залить нужную прошивку.
-
Объектив камеры требует первоначальной настройки. При подключении камеры к QGroundControl в режиме
Vehicle Setup
появится вкладка просмотра изображения с камеры. Надо настроить объектив так, чтобы он фокусировался на объектах, удалённых на типичную высоту планируемого полёта (например, 1.5 метра). -
Модули камеры часто продаются вместе с сонаром. Сонар этот, судя по наблюдениям пользователей Ardupilot, весьма ненадёжен; при этом драйвер px4flow с радостью публикует данные с сонара в топик
distance_sensor
, если является основным дальномером. Соответственно, если используется внешний дальномер, подключаемый по MAVLink'у, то указанный код лучше убрать (или хотя бы запускать драйвер с недокументированным параметром R, указывающим направление сенсора, выставленным во что-то безобидное). Если этого не сделать, коптер будет периодически "подпрыгивать" в воздухе на пару десятков сантиметров. -
(Это больше касается подключения внешних датчиков, подключенных через MAVLink, но, может, кому пригодится) При использовании EKF2 очень важно следить за тем, чтобы у сообщений был правильный timestamp. К сожалению, в прошивке 1.8.2 это не работает от слова "совсем", надо править приём сообщений в mavlink_receiver.cpp. Ещё для приёма сообщений
OPTICAL_FLOW_RAD
нужно заполнить в структуре optical_flow_s поляmax_flow_rate, min_ground_distance, max_ground_distance
, например, так, как это сделано у Олега Калачева -
Для получения вменяемых результатов разработчики PX4 и px4flow настоятельно рекомендуют использовать хорошую виброразвязку как для автопилота, так и для камеры. Кроме того, камера довольно неплохо создаёт электромагнитные помехи, так что её, возможно, стоит как-то экранировать (или хотя бы располагать подальше от GPS-приёмников).