diff --git a/docs/snippets.md b/docs/snippets.md index c5c24630..9b53c420 100644 --- a/docs/snippets.md +++ b/docs/snippets.md @@ -9,7 +9,7 @@ Python > # -*- coding: utf-8 -*- > ``` ---- +

#

Функция определения расстяния между двумя точками (**важно**: точки должны быть в одной [системе координат](frames.md)): @@ -18,7 +18,7 @@ def get_distance(x1, y1, z1, x2, y2, z2): return math.sqrt((x1 - x2) ** 2 + (y1 - y2) ** 2 + (z1 - z2) ** 2) ``` ---- +

#

Функция для приблизительного определения расстояния (в метрах) между двумя глобальными координатами (широта/долгота): @@ -27,7 +27,7 @@ def get_distance_global(lat1, lon1, lat2, lon2): return math.hypot(lat1 - lat2, lon1 - lon2) * 1.113195e5 ``` ---- +

#

Взлет и ожидание окончания взлета: @@ -50,7 +50,7 @@ while True: rospy.sleep(0.2) ``` ---- +

#

Лететь в точку и ждать пока коптер долетит в нее: @@ -71,7 +71,7 @@ while True: rospy.sleep(0.2) ``` ---- +

#

Дизарм коптера (выключение винтов, **коптер упадет**): @@ -85,7 +85,7 @@ arming = rospy.ServiceProxy('mavros/cmd/arming', CommandBool) arming(False) # дизарм ``` ---- +

#

Трансформировать позицию (`PoseStamped`) из одной системы координат ([фрейма](frames.md)) в другую, используя [tf2](http://wiki.ros.org/tf2): @@ -114,7 +114,7 @@ transform_timeout = rospy.Duration(0.2) # таймаут ожидания тр new_pose = tf_buffer.transform(pose, frame_id, transform_timeout) ``` ---- +

#

Определение, перевернут ли коптер: @@ -125,7 +125,7 @@ telem = get_telemetry() flipped = not -PI_2 <= telem.pitch <= PI_2 or not -PI_2 <= telem.roll <= PI_2 ``` ---- +

#

Рассчет общего угла коптера к горизонту: @@ -139,7 +139,7 @@ if flipped: angle_to_horizon = math.pi - angle_to_horizon ``` ---- +

#

Полет по круговой траектории: @@ -161,7 +161,7 @@ while not rospy.is_shutdown(): r.sleep() ``` ---- +

#

Повторять действие с частотой 10 Гц: @@ -172,7 +172,7 @@ while not rospy.is_shutdown(): r.sleep() ``` ---- +

#

Пример подписки на топики из MAVROS: @@ -199,7 +199,7 @@ rospy.Subscriber('mavros/rc/in', RCIn, rc_callback) Информацию по топикам MAVROS см. по [ссылке](mavros.md). ---- + Пример отправки произвольного [MAVLink-сообщения](mavlink.md) коптеру: @@ -223,7 +223,7 @@ ros_msg = mavlink.convert_to_rosmsg(msg) mavlink_pub.publish(ros_msg) ``` ---- +

#

Реакция на переключение режима на пульте радиоуправления (может быть использовано для запуска автономного полета, см. [пример](https://gist.github.com/okalachev/b709f04522d2f9af97e835baedeb806b)): @@ -249,7 +249,7 @@ rospy.Subscriber('mavros/rc/in', RCIn, rc_callback) rospy.spin() ``` ---- +

#

Флип: