import airsim
client = airsim.MultirotorClient() # 멀티로터 클라이언트 인스턴스 선언
client.confirmConnection() # 1초마다 연결 상태를 확인후 콘솔에 보고해 사용자가 연결확인함.
client.enableApiControl(True) # API 제어를 활성화하거나 비활성화합니다
이렇게 하면 연결성공~!


state = client.getMultirotorState()
print_state = pprint.pformat(state)
print(print_state)
pprint 사용해서 이쁘게 출력!

'collision': <CollisionInfo> { # 충돌정보
'has_collided': False, # 충돌여부 : True or False
'impact_point': { #충돌 좌표
'x_val': 0.0,
'y_val': 0.0,
'z_val': 0.0},}
'normal':{ #충돌한 물체의 표면 방향
'x_val': 0.0,
'y_val': 0.0,
'z_val': 0.0},
'object_id': -1, # 충돌한 물체의 id (없으면 -1)
'object_name': '', # 충돌한 물체의 이름
'penetration_depth': 0.0 # 충돌한 깊이 (0.0이면 충돌 x)
'position' : {
'x_val': 0.0,
'y_val': 0.0,
'z_val': 0.0},
'time_stamp': 0},
'gps_location': <GeoPoint> { #gps 정보
'altitude': 75.40515899658203,
'latitude': 47.6414735081218,
'longitude': -122.1401616614676}
'kinematics_estimated': <KinematicsState> {
#각속도 및 선속도
'angular_acceleration': <Vector3r> { 'x_val': 0.0, 'y_val': 0.0, 'z_val': 0.0 },
'angular_velocity': <Vector3r> { 'x_val': 0.0, 'y_val': 0.0, 'z_val': 0.0 },
'linear_acceleration': <Vector3r> { 'x_val': 0.0, 'y_val': 0.0, 'z_val': 0.0 },
'linear_velocity': <Vector3r> { 'x_val': 0.0, 'y_val': 0.0, 'z_val': 0.0 },
# 방향
'orientation': <Quaternionr> { 'w_val': 0.9804609417915344, 'x_val': 0.0, 'y_val': 0.0, 'z_val': 0.19671331346035004 },
'position': <Vector3r> { 'x_val': 0.612360417842865, 'y_val': 0.25601938366889954, 'z_val': 46.59615707397461 }
}
각속도 및 선속도
방향
드론의 기울기/방향(Orientation)
w_val: 회전 정도
x_val, y_val, z_val: 회전 축
현재 위치 (position)
x = 0.612m
y = 0.256m
z = 46.596m
지면에서 46.6m 높이에 떠 있음.
'landed_state': 0
0 → 비행 중
1 → 착륙한 상태
2 → 착륙을 시도 중
'rc_data': <RCData> {
'is_initialized': False,
'is_valid': False,
'left_z': 0.0,
'pitch': 0.0,
'right_z': 0.0,
'roll': 0.0,
'switches': 0,
'throttle': 0.0,
'timestamp': 0,
'vendor_id': '',
'yaw': 0.0
}