Пакет gs_flight

Описание

Данный пакет предоставляет инструменты для взаимодействия с автопилотом.

Состав пакета

Классы

  • FlightController
  • CallbackEvent

Описание классов

FlightController

Класс взаимодействия с автопилотом

Создание объекта класса

class FlightController
fc = FlightController(callback)
Аргументы:callback-функция
Результат:объект класса FlightController

Cоздаёт объект класса FlightController.

Доступные поля класса

  • __alive - rospy.ServiceProxy: gs_interfaces.srv.Live
  • __event_service - rospy.ServiceProxy: gs_interfaces.srv.Event
  • __yaw_service - rospy.ServiceProxy: gs_interfaces.srv.Yaw
  • __local_position_service- rospy.ServiceProxy: gs_interfaces.srv.Position
  • __global_position_service - rospy.ServiceProxy: gs_interfaces.srv.PositionGPS
  • __callback_event - rospy.Subscriber: std_msgs.msg.Int32

Описание методов

classmethod goToLocalPoint()
Аргументы:x,y,z,time - координаты в локальной системе позиционирования, время полёта в точку
Результат:bool

Приказывает автопилоту лететь в локальные координаты, x - координата точки по оси x, в метрах , y - координата точки по оси y, в метрах, z- координата точки по оси z, в метрах, time - время, за которое коптер перейдет в следующую точку, в секундах. Если значение не указано, коптер стремится к точке с максимальной скоростью

classmethod goToPoint()
Аргументы:latitude,longitude,altitude
Результат:bool

Приказывает автопилоту лететь в GPS координаты, latitude – задается широта в градусах, умноженных на 10^(-7), longitude – задается долгота в градусах, умноженных на 10^(−7), altitude – задается высота в метрах

classmethod updateYaw()
Аргументы:angle - угол поворота в радианах
Результат:bool

Устанавливает рыскание

classmethod preflight()
Аргументы:нет
Результат:bool

Приказывает автопилоту выполнить предвзлётную подготовку

classmethod takeoff()
Аргументы:нет
Результат:bool

Приказывает автопилоту выполнить взлёт

classmethod landing()
Аргументы:нет
Результат:bool

Приказывает автопилоту произвести посадку

classmethod disarm()
Аргументы:нет
Результат:bool

Приказывает автопилоту заглушить двигатели

Используемые сервисы ROS

  • geoscan/alive (gs_interfaces/Live)
  • geoscan/flight/set_event (gs_interfaces/Event)
  • geoscan/flight/set_yaw (gs_interfaces/Yaw)
  • geoscan/flight/set_local_position (gs_interfaces/Position)
  • geoscan/flight/set_global_position (gs_interfaces/PositionGPS)

Используемые топики ROS

  • geoscan/flight/callback_event (std_msgs/Int32)

CallbackEvent

Энумератор событий автопилота

Доступные значения

  • ALL - пустое событие
  • COPTER_LANDED - приземлился
  • LOW_VOLTAGE1 - низкий заряд АКБ, но заряда хватит, чтобы вернуться домой
  • LOW_VOLTAGE2 - низкий заряд АКБ, начата экстренная посадка
  • POINT_REACHED - точка достигнута
  • POINT_DECELERATION - близко к заданной точке
  • TAKEOFF_COMPLETE - взлет выполнен
  • ENGINES_STARTED - двигатели запущены
  • SHOCK - сильный удар, возможна потеря управления

Необходимые пакеты

Python:

  • gs_board
  • gs_flight
  • gs_module
  • gs_logger
  • gs_sensors
  • gs_navigation

ROS:

  • gs_interfaces
  • gs_core
  • std_msgs
  • geometry_msgs

Примечание

Все классы в данном пакете могут быть использованы только при запущеной ноде ros_plaz_node.py из пакета gs_core