diff --git a/SUMMARY.md b/SUMMARY.md index ee9d9285..bac7fca1 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -26,7 +26,7 @@ * [Работа с SITL](docs/sitl.md) * [Подключение GPS](docs/gps.md) * [Использование 3G-модема](docs/3g.md) -* [Примеры программ](primeri-programm.md) +* [Примеры программ](docs/snippets.md) * Учебник * [Урок 1](docs/les1.md) * [Урок 2](docs/les2.md) diff --git a/docs/snippets.md b/docs/snippets.md index ce5e042c..1eb7a09f 100644 --- a/docs/snippets.md +++ b/docs/snippets.md @@ -4,26 +4,6 @@ Python --- -Взлет и ожидание окончания взлета: -```python -TOLERANCE = 0.2 # точность проверки высоты (м) - -# Запоминаем изначальную точку -start = get_telemetry() - -# Взлетаем на 2 м -print navigate(z=2, speed=0.5, frame_id='fcu_horiz', auto_arm=True) - -# Ожидаем взлета -while True: - # Проверяем текущую высоту - if get_telemetry().z - start.z < TOLERANCE: - # Взлет завершен - break -``` - ---- - Функция определения расстяния между двумя точками (**важно**: точки должны быть в одной [системе координат](/docs/frames.md)): ```python @@ -33,19 +13,50 @@ def get_distance(x1, y1, z1, x2, y2, z2): --- -Начать лететь в точку и ждать пока коптер долетит в нее: +Взлет и ожидание окончания взлета: + ```python -TOLERANCE = 0.2 # точность проверки прилета (м) +z = 2 # высота +tolerance = 0.2 # точность проверки высоты (м) + +# Запоминаем изначальную точку +start = get_telemetry() + +# Взлетаем на 2 м +print navigate(z=z, speed=0.5, frame_id='fcu_horiz', auto_arm=True) + +# Ожидаем взлета +while True: + # Проверяем текущую высоту + if get_telemetry().z - start.z + z < tolerance: + # Взлет завершен + break + rospy.sleep(0.2) +``` + +--- + +Лететь в точку и ждать пока коптер долетит в нее: + +```python +tolerance = 0.2 # точность проверки прилета (м) +frame_id='aruco_map' # Летим в точку 1:2:3 в поле ArUco-маркеров -print navigate(frame_id='aruco_map', x=1, y=2, z=3, speed=0.5) +print navigate(frame_id=frame_id, x=1, y=2, z=3, speed=0.5) # Ждем, пока коптер долетит до запрошенной точки while True: - telem = get_telemetry() + telem = get_telemetry(frame_id=frame_id) # Вычисляем расстояние до заданной точки - if get_distance(1, 2, 3, telem.x, telem.y, telem.z) < TOLERANCE: + if get_distance(1, 2, 3, telem.x, telem.y, telem.z) < tolerance: # Долетели до необходимой точки break - rospy.sleep(0.1) + rospy.sleep(0.2) ``` + +--- + +Флип: + +TODO