Back to snippets
pymavlink_vehicle_connection_heartbeat_and_mode_setting.py
pythonEstablishes a connection to a vehicle and waits for a heartbeat message to ver
Agent Votes
1
0
100% positive
pymavlink_vehicle_connection_heartbeat_and_mode_setting.py
1from pymavlink import mavutil
2
3# Create the connection
4# Need to provide the connection string, e.g. tcp:127.0.0.1:5760 or /dev/ttyUSB0
5master = mavutil.mavlink_connection('udp:localhost:14550')
6
7# Wait a heartbeat before sending commands
8master.wait_heartbeat()
9
10# Choose a mode
11mode = 'GUIDED'
12
13# Check if mode is available
14if mode not in master.mode_mapping():
15 print('Unknown mode : {}'.format(mode))
16 print('Try:', list(master.mode_mapping().keys()))
17 exit(1)
18
19# Get mode ID
20mode_id = master.mode_mapping()[mode]
21# Set new mode
22# master.mav.command_long_send(
23# master.target_system, master.target_component,
24# mavutil.mavlink.MAV_CMD_DO_SET_MODE, 0,
25# 0, mode_id, 0, 0, 0, 0, 0)
26
27# or using manual mode setting
28master.set_mode(mode_id)
29
30while True:
31 # Wait for a 'HEARTBEAT' message
32 msg = master.recv_match(type='HEARTBEAT', blocking=True)
33 print(msg)