mirror of
https://github.com/CopterExpress/clover.git
synced 2026-05-26 11:43:25 +00:00
Merge branch 'master' of github.com:CopterExpress/clever
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user