hello_airsim -> state

전민권·2025년 3월 11일

airsim

목록 보기
1/7
post-thumbnail

airsim IDE연동

import airsim

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

이렇게 하면 연결성공~!

client

state 확인

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정보

'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 }
}

각속도 및 선속도

  • 각 가속도(angular_acceleration): 0.0, 0.0, 0.0 → 드론 회전 X (각가속도는 단위시간당 변화한 각속도)
  • 각속도(angular_velocity): 0.0, 0.0, 0.0 → 드론 회전X (단위시간당 변화한 각변위)
  • 선가속도(linear_acceleration): 0.0, 0.0, 0.0 → 드론 가속 X
  • 선속도(linear_velocity): 0.0, 0.0, 0.0 → 드론 정지

방향

  • 드론의 기울기/방향(Orientation)

  • w_val: 회전 정도

  • x_val, y_val, z_val: 회전 축

현재 위치 (position)
x = 0.612m
y = 0.256m
z = 46.596m
지면에서 46.6m 높이에 떠 있음.

착륙상태 (landed_state)

'landed_state': 0

0 → 비행 중
1 → 착륙한 상태
2 → 착륙을 시도 중

RC(조종기) 데이터 (rc_data)

'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
}
  • 조종기(RC, Remote Controller) 상태
  • is_initialized: False → 조종기 미연결
  • is_valid: False → 조종기 신호 없음
  • throttle(스로틀), yaw(요), pitch(피치), roll(롤):0.0 → 조종기 사용 안하는중
  • 타임스탬프 (timestamp) : 현재 드론 상태의 시간 정보
    마이크로초(us) 단위

0개의 댓글