diff --git a/amr/v1/slamnav_control.fbs b/amr/v1/slamnav_control.fbs index 574b6459..fb337f07 100644 --- a/amr/v1/slamnav_control.fbs +++ b/amr/v1/slamnav_control.fbs @@ -213,7 +213,7 @@ table ResponseDockStop { /* category : RPC - response : Callback + response : One-shot topic : {robotType}/control/chargeTrigger usage : 충전 트리거 On / Off field @@ -423,25 +423,26 @@ table ResultControlDock { message: string; } +// Callback -> One-shot 으로 변경. -/* - category : Pub / Sub (Result) - topic : {robotType}/control/resultChargeTrigger - usage : 도킹 제어 결과 응답 - field - - command : control Callback 명령 (string) - - "chargeTrigger" - - switch : true(on) / false(off) - - result : 이동 결과 - - success : 동작 성공. - - fail : 동작 실패. - - start : 동작 시작. - - cancel : 동작 중, 새로운 명령에 의해 기존 동작 취소. -*/ -table ResultControlChargeTrigger { - id: string; - command: string; - switch: bool; - result: string; - message: string; -} +// /* +// category : Pub / Sub (Result) +// topic : {robotType}/control/resultChargeTrigger +// usage : 도킹 제어 결과 응답 +// field +// - command : control Callback 명령 (string) +// - "chargeTrigger" +// - switch : true(on) / false(off) +// - result : 이동 결과 +// - success : 동작 성공. +// - fail : 동작 실패. +// - start : 동작 시작. +// - cancel : 동작 중, 새로운 명령에 의해 기존 동작 취소. +// */ +// table ResultControlChargeTrigger { +// id: string; +// command: string; +// switch: bool; +// result: string; +// message: string; +// } diff --git a/amr/v1/slamnav_localization.fbs b/amr/v1/slamnav_localization.fbs index 351ffa0f..d1e0c801 100644 --- a/amr/v1/slamnav_localization.fbs +++ b/amr/v1/slamnav_localization.fbs @@ -31,9 +31,9 @@ struct LocalizationPose { /* category : RPC - response : One-shot + response : Callback topic : {robotType}/localization/init - usage : 위치 초기화 (수동) + usage : 위치 초기화 후 loc 시작. field - pose : 초기화 위치 */ @@ -50,9 +50,9 @@ table ResponseLocalizationInit { /* category : RPC - response : One-shot + response : Callback topic : {robotType}/localization/randomInit - usage : 위치 초기화 (랜덤) + usage : 위치 초기화 후 loc 시작. ( sim, 랜덤 ) field - pose : 초기화된 로봇 위치 */ @@ -70,7 +70,7 @@ table ResponseLocalizationRandomInit { category : RPC response : Callback topic : {robotType}/localization/autoInit - usage : 위치 초기화 (glbal-localizer 사용.) - 개발 중 + usage : 위치 초기화 후 loc 시작. (glbal-localizer 사용.) - 개발 중 field - pose : 초기화된 로봇 위치 */ @@ -88,7 +88,7 @@ table ResponseLocalizationAutoInit { category : RPC response : Callback topic : {robotType}/localization/semiAutoInit - usage : 위치 초기화 (Init Node 에서 위치 추정.) + usage : 위치 초기화 후 loc 시작. (Init Node 에서 위치 추정.) field - pose : 초기화된 로봇 위치 */ @@ -151,8 +151,8 @@ table ResponseLocalizationStop { usage : 위치 결과 응답 field - command : Localization Callback 명령 (string) + - "init" "randomInit" - "autoInit" "semiAutoInit" - - "start" - pose : 초기화된 로봇 위치 - result : 이동 결과 - success : 동작 성공. diff --git a/amr/v1/slamnav_map.fbs b/amr/v1/slamnav_map.fbs index dc0eb330..7e95dd22 100644 --- a/amr/v1/slamnav_map.fbs +++ b/amr/v1/slamnav_map.fbs @@ -18,7 +18,7 @@ namespace SLAMNAV; - file_type : 파일 타입 - file_size : 파일 크기 */ -table MapFileInfo { +table FileInfo { file_name: string; created_at: string; updated_at: string; @@ -42,8 +42,8 @@ table MapInfo { created_at: string; updated_at: string; map_type: string; - cloud_info: [MapFileInfo]; - topo_info: [MapFileInfo]; + cloud_info: [FileInfo]; + topo_info: [FileInfo]; } /* @@ -227,7 +227,7 @@ table ResponseMapCurrent { category : RPC response : Delayed One-shot topic : {robotType}/map/getCloud - usage : 맵 클라우드 조회 + usage : 맵 클라우드 조회 ( cloud.csv ) field - map_name : 맵 이름 - file_name : 파일 이름 @@ -238,6 +238,7 @@ table ResponseMapCurrent { table RequestGetMapCloud { id: string; map_name: string; + file_name: string; } table ResponseGetMapCloud { id: string; @@ -255,12 +256,12 @@ table ResponseGetMapCloud { category : RPC response : Delayed One-shot topic : {robotType}/map/setCloud - usage : 맵 클라우드 설정 + usage : 맵 클라우드 설정 ( cloud.csv ) field - map_name : 맵 이름 - file_name : 파일 이름 - data : 클라우드 벡터 데이터 - - column_count : data column ( "3" / "4" ) + - column_count : data column ( 4 ) - row_count : data row ( cloud size ) */ table RequestSetMapCloud { diff --git a/amr/v1/slamnav_program.fbs b/amr/v1/slamnav_program.fbs new file mode 100644 index 00000000..614bb1c8 --- /dev/null +++ b/amr/v1/slamnav_program.fbs @@ -0,0 +1,49 @@ + +namespace SLAMNAV; + +/* + category : RPC + response : One-shot + topic : {robotType}/call_pause + usage : 로봇 동작 전체 일시 정지 ( movePause 동작 ) + field + - result : 동작 수행 결과 ( "success" / "fail" ) +*/ +table RequestCallPause { +} +table ResponseCallPause { + result: string; + message: string; +} + + +/* + category : RPC + response : One-shot + topic : {robotType}/call_resume + usage : 로봇 동작 resume ( moveResume 동작 ) + field + - result : 동작 수행 결과 ( "success" / "fail" ) +*/ +table RequestCallResume { +} +table ResponseCallResume { + result: string; + message: string; +} + + +/* + category : RPC + response : One-shot + topic : {robotType}/call_halt + usage : 로봇 동작 전체 일시 정지 ( moveStop 동작 ) + field + - result : 동작 수행 결과 ( "success" / "fail" ) +*/ +table RequestCallHalt { +} +table ResponseCallHalt { + result: string; + message: string; +} \ No newline at end of file diff --git a/amr/v1/slamnav_status.fbs b/amr/v1/slamnav_status.fbs index 46e18c21..4679eef6 100644 --- a/amr/v1/slamnav_status.fbs +++ b/amr/v1/slamnav_status.fbs @@ -44,20 +44,34 @@ struct StatusMotor { current: float; } + /* category : Data Structure - usage : 위치 추정 상태 + usage : 전원 상태 field - - inlier_error : 인라이어 오차 - - inlier_ratio : 인라이어 비율 - - mapping_error : 매핑 오차 - - mapping_ratio : 매핑 비율 + - bat_in/out : 배터리 입출력 전압 + - bat_current : 배터리 전류 + - total_power : 총 전력 + - power : 현재 전력 + - bat_percent : 배터리 잔량 (%) + - tabos_* : TABOS BMS 정보 + - charge_current : 충전 전류 + - contact_voltage : 접점 전압 */ -struct StatusCondition { - inlier_error: float; - inlier_ratio: float; - mapping_error: float; - mapping_ratio: float; +struct StatusPower { + bat_in: float; + bat_out: float; + bat_current: float; + total_power: float; + power: float; + bat_percent: float; + tabos_voltage: float; + tabos_current: float; + tabos_soc: float; + tabos_soh: float; + tabos_temp: float; + charge_current: float; + contact_voltage: float; } /* @@ -65,7 +79,6 @@ struct StatusCondition { usage : 로봇 상태 플래그 field - emo : 비상정지 상태 - - localization : 위치 추정 상태 ( "good" / "none" / "fail" ) - power : 전원 상태 - sss_recovery : SSS 복구 상태 - sw_reset : 소프트웨어 리셋 상태 @@ -77,7 +90,6 @@ struct StatusCondition { */ table StatusRobotState { emo: bool; - localization: string; power: bool; sss_recovery: bool; sw_reset: bool; @@ -104,34 +116,6 @@ table StatusRobotSafetyIoState { mcu1_din: [bool]; } -/* - category : Data Structure - usage : 전원 상태 - field - - bat_in/out : 배터리 입출력 전압 - - bat_current : 배터리 전류 - - total_power : 총 전력 - - power : 현재 전력 - - bat_percent : 배터리 잔량 (%) - - tabos_* : TABOS BMS 정보 - - charge_current : 충전 전류 - - contact_voltage : 접점 전압 -*/ -struct StatusPower { - bat_in: float; - bat_out: float; - bat_current: float; - total_power: float; - power: float; - bat_percent: float; - tabos_voltage: float; - tabos_current: float; - tabos_soc: float; - tabos_soh: float; - tabos_temp: float; - charge_current: float; - contact_voltage: float; -} /* category : Data Structure @@ -149,10 +133,14 @@ table StatusSetting { category : Data Structure usage : 맵 상태 field + - map_id : map 명령의 id ( 최근에 accept 된 명령 반환 ) + - map_result : map_result 상태 ( "start" / "success" / "cancel" / "fail" ) - map_name : 현재 맵 이름 - map_status : 맵 상태 */ -table StatusMap { +table StatusMapState { + map_id: string; + map_result: string; map_name: string; map_status: string; } @@ -165,19 +153,56 @@ table StatusMap { - dock_id : dock 명령의 id ( 최근에 accept 된 명령 반환 ) - dock_result : move_result 상태 ( "move" / "success" / "cancel" / "fail" ) - dock : 도킹 이동 상태 ( "stop" ) - - trigger_id : charge trigger 명령의 id ( 최근에 accept 된 명령 반환 ) - - trigger_result: move_result 상태 ( "move" / "success" / "cancel" / "fail" ) - charge : 충전 상태 ( "" ) */ table StatusChargeState { dock_id: string; dock_result: string; dock: bool; - trigger_id: string; - trigger_result: string; charge: string; } + +/* + category : Data Structure + usage : 위치 추정 상태 + field + - loc_id : localization 명령의 id ( 최근에 accept 된 명령 반환 ) + - loc_result : localization_result 상태 ( "move" / "success" / "cancel" / "fail" ) + - loc_status : 위치 추정 상태 ( "good" / "none" / "fail" ) + - inlier_error : 인라이어 오차 + - inlier_ratio : 인라이어 비율 + - mapping_error : 매핑 오차 + - mapping_ratio : 매핑 비율 +*/ +table StatusLocState { + loc_id: string; + loc_result: string; + loc_status: string; + inlier_error: float; + inlier_ratio: float; + mapping_error: float; + mapping_ratio: float; +} + + +/* + category : Data Structure + usage : 멀티 상태 + field + - multi_id : multi 경로 id (RequestMultiPath::id 값 사용.) + - multi_result : multi_result 상태 id ( "move" / "success" / "cancel" / "fail" ) + - multi_step : 로봇 경로 step + - multi_state : multi 상태 ( "none" / "move" / "complete" / "fail" / "obstacle" / "cancel" ) +*/ +table StatusMultiState { + multi_id: string; + multi_result: string; + multi_step: int; + multi_state: string; +} + + // ------------------------------------------------- // ----------- -------- // ----------- Pub / Sub -------- @@ -189,7 +214,6 @@ table StatusChargeState { topic : {robotType}/status usage : 로봇 전체 상태 정보 field - - condition : 위치 추정 상태 - imu : IMU 센서 상태 - motor : 모터 상태 배열 - power : 전원 상태 @@ -200,15 +224,16 @@ table StatusChargeState { - dock : 도킹 상태 */ table Status { - condition: StatusCondition; imu: StatusImu; motor: [StatusMotor]; power: StatusPower; robot_state: StatusRobotState; robot_safety_io_state: StatusRobotSafetyIoState; setting: StatusSetting; - map: StatusMap; + map_state: StatusMapState; charge_state: StatusChargeState; + loc_state: StatusLocState; + multi_state: StatusMultiState; } @@ -233,9 +258,6 @@ table Status { - jog_move : 조그 이동 상태 ( "none" ) - obs : 장애물 상태 ( "none" / "near" / "far" / "vir" ) - path_state : 경로 상태 ( "none" / "req_path" / "recv_path" ) - - multi_id : multi 경로 id (RequestMultiPath::id 값 사용.) - - step : 로봇 경로 step - - multi_state : multi 상태 ( "none" / "move" / "complete" / "fail" / "obstacle" / "cancel" ) */ table StatusMoveState { move_id: string; @@ -244,9 +266,6 @@ table StatusMoveState { jog_move: string; obs: string; path_state: string; - multi_id: string; - step: int; - multi_state: string; } /*