---
tags: plug in
---
# General Purpose User Interface
## For TGIO
[TOC]
### Control Center message structure
#### Control Center properties:
host: 127.0.0.1
port: 1883
username: admin
password: password
## MQTT Messages
### 系統狀態回報 (dt/overview)
**MESSAGE:**
* **TOPIC:**
| Topic | Package | msg |
| ----- | ------- | --- |
| dt/overview | robot_controller | **OverviewData.msg**<br>- MovingPlatformData.msg<br>- ElevatingPlatformData.msg<br>- GimbalData.msg<br>- TimeOfFlightData.msg<br>- BatteryData.msg |
* **PARAMETERS:**
| parameter | data type |
| --------- | --------- |
| moving_platform | MovingPlatformData |
| elevating_platform | ElevatingPlatformData |
| gimbal | GimbalData |
| time_of_flight | TimeOfFlightData |
| battery | BatteryData |
:::spoiler **SUBPARAMETERS (MovingPlatformData.msg):**
| parameter | data type | data | unit | comment |
| --------- | --------- | ---- | ---- | ------- |
| state | int | <ul><li>0: IDLE</li><li>1: CHARGING</li><li>2: MOVING</li><li>3: OBSTACLE</li><li>4: ERROR</li><li>5: JOYSTICK</li></ul> | | |
| position | int | | | *the position of the robot on the hanging track* |
| velocity | float | | m/s | *the velocity of the robot on the hanging track* |
| error | int | <ul><li>0: No error</li><li>1: Failed to call movingplatform's controlller state service</li><li>2: MovingPlatform's EPOS4 error</li></ul> | | |
:::
:::spoiler **SUBPARAMETERS (ElevatingPlatformData.msg):**
| parameter | data type | data | comment |
| --------- | --------- | ---- | ------- |
| state | int | <ul><li>0: IDLE</li><li>1: HOMING</li><li>2: MOVING</li><li>3: OBSTACLE</li><li>4: ERROR</li><li>5: JOYSTICK</li></ul> | |
| position | float | | *the height of the motor approximately in cm, 1:50* |
| error | int | <ul><li>0: No error</li><li>1: Failed to call elevatingplatform's controlller state service</li><li>2: ElevatingPlatform's EPOS2 error</li></ul> | |
:::
:::spoiler **SUBPARAMETERS (GimbalData.msg):**
| parameter | data type | data | unit | comment |
| --------- | --------- | ---- | ---- | ------- |
| state | int | <ul><li>0: OFF</li><li>1: ON</li><li>2: INIT</li><li>3: BUSY</li><li>4: ERROR</li><li>5: JOYSTICK</li></ul> | | |
| tilt | float | | ° | *the tilt of the gimbal* |
| roll | float | | ° | *the roll of the gimbal* |
| pan | float | | ° | *the pan of the gimbal* |
| error | int | <ul><li>0: No error</li><li>1: Failed to call gimbal's controlller state service</li><li>2: Gimbal error</li></ul> | | |
:::
:::spoiler **SUBPARAMETERS (TimeOfFlightData.msg):**
| parameter | data type | data | unit | comment |
| --------- | --------- | ---- | ---- | ------- |
| distance | float | | mm | *distance measured by the activated sensor* |
| error | int | <ul><li>0: No error</li><li>1: ...</li><li>2: ...</li></ul> | | |
:::
:::spoiler **SUBPARAMETERS (BatteryData.msg):**
| parameter | data type | data | unit | comment |
| --------- | --------- | ---- | ---- | ------- |
| state | unsigned int | | % | |
| is_charging | bool | <ul><li>0: NO CHARGING</li><li>1: CHARGING</li></ul> | | *if the battery is currently charging* |
| error | int | <ul><li>0: No error</li><li>1: ...</li><li>2: ...</li></ul> | | |
:::
---
:::spoiler ### 機器人系統狀態回報 (dt/moving_platform)
**MESSAGE:**
* **TOPIC:** dt/moving_platform
| Topic | Package | msg |
| ----- | ------- | --- |
| dt/moving_platform | center_control_msgs | **MovingPlatformData.msg** |
* **PARAMETERS:**
| parameter | data type | data | comment |
| --------- | --------- | ---- | ------- |
| actionState | int | <ul><li>0: IDLE<li>1: CHARGING</li><li>2: MOVING</li><li>3: ERROR</li></ul> |
| positiveLimitSwitch | bool | <ul><li>0: not triggered</li><li>1: triggered</li></ul> | *input signal from micro switch to maxon_epos4* |
| negativeLimitSwitch | bool | <ul><li>0: not triggered</li><li>1: triggered</li></ul> | *input signal from micro switch to maxon_epos4* |
| frontUltrasonicSensorState | int | <ul><li>0: NORMAL</li><li>1: EMERGENCY</li><li>2: WARNING</li></ul> | *determine by the distance detected by ultrasonic sensor* |
| rearUltrasonicSensorState | int | <ul><li>0: NORMAL</li><li>1: EMERGENCY</li><li>2: WARNING</li></ul> | *determine by the distance detected by ultrasonic sensor* |
| positionRecognitionState | int | <ul><li>0: NORMAL</li><li>1: NO_DEVICE</li><li>2: ERROR</li><li>3: WARNING</li><li>4: NOT_CONNECTED</li></ul> | *the state sent by pxv* |
| position | int | | *the position of the robot on the hanging track* |
| velocity | float | | *the velocity of robot on the hanging track* |
| current | short | | *the current output from motor driver to motor* |
:::
---
:::spoiler ### 升降平台狀態回報 (dt/elevating_platform)
**MESSAGE:**
* **TOPIC:** dt/elevating_platform
| Topic | Package | msg |
| ----- | ------- | --- |
|dt/elevating_platform| center_control_msgs | **ElevatingPlatformData.msg** |
* **PARAMETERS:**
| parameter | data type | data | comment |
| --------- | --------- | ---- | ------- |
| actionState | int | <ul><li>0: IDLE<li>1: HOMING</li><li>2: MOVING</li><li>3: ERROR</li></ul> | *0: not currently executing mission, 1: moving to home position, 2: executing assigned mission, 3: facing emergency(force to stop), the state will not switch to 3 when the ultrasonic sensor is in warning state* |
| homeSwitch | bool | <ul><li>0: NOT_DETECTED</li><li>1: DETECTED</li></ul>| *input signal from micro switch to maxon_epos2* |
| upperLimitSwitch | bool |<ul><li>0: NOT_DETECTED</li><li>1: DETECTED</li></ul>| *input signal from micro switch to maxon_epos2* |
| lowerLimitSwitch | bool |<ul><li>0: NOT_DETECTED</li><li>1: DETECTED</li></ul>| *input signal from micro switch to maxon_epos2* |
| bottomCollisionSwitch | bool |<ul><li>0: NOT_DETECTED</li><li>1: DETECTED</li></ul>| *input signal from micro switch to maxon_epos2* |
| electroMagnetLock | bool |<ul><li>0: UNLOCK</li><li>1: LOCK</li></ul>| *output signal from maxon_epos2 to electroMagnet* |
| bottomUltrasonicSensorState | int | <ul><li>0: NORMAL</li><li>1: EMERGENCY</li><li>2: WARNING</li></ul>| *determine by the distance detected by ultrasonic sensor* |
| position | float | height | *the height of the motor approximately in cm, 1:50* |
| brakingState | bool |<ul><li>0: BRAKE_RELEASE</li><li>1: BRAKED</li></ul>| *the state of the brake (holding or not)* |
:::
---
:::spoiler ### 超音波狀態回報 (dt/ultrasonic_sensor)
**MESSAGE:**
* **TOPIC:** dt/ultrasonic_sensor
|Topic| Package | msg |
|-| -------- | -------- |
|dt/ultrasonic_sensor| center_control_msgs | **UltrasonicSensorData.msg** |
* **PARAMETERS:**
| parameter | data type | data | unit | comment |
| ---------------------- | --------- | ---- | ---- | ---------------------------------------- |
| frontMeasuredDistance | float | | cm | *distnace measured by the front sensor* |
| rearMeasuredDistance | float | | cm | *distnace measured by the rear sensor* |
| bottomMeasuredDistance | float | | cm | *distnace measured by the bottom sensor* |
:
---
:::spoiler ### 電池狀態回報 (dt/battery)
**MESSAGE:**
* **TOPIC:** dt/battery
|Topic| Package | msg |
|-| -------- | -------- |
|dt/battery| center_control_msgs | **BatteryData.msg** |
* **PARAMETERS:**
| paramter | data type | data | unit | comment | |
| -------------------- | ------------ | ---------------------------- | ---- | --------------------------------- | ------------------------------------ |
| temperature | unsigned int | | celcius degree | | |
| voltage | unsigned int | | mV | 不可用 | |
| current | unsigned int | | mA | | |
| averageCurrent | unsigned int | | mA | 不可用 | |
| relativeStateOfCharge | unsigned int | | % | | |
| remainingCapaicity | int | |10mAh | | |
| fullChargeCapacity | int ||10mAh | |
| chargingPadDetection | bool | <ul><li>0: NOT_DETECTED</li> <li>1: DETECTED</li></ul>| | *to detect if the pad is touched* | |
| chargingEnable | bool |<ul><li>0: DISABLE</li> <li>1: ENABLE</li></ul>| | *open the charging gate*|
| chargingState | bool |<ul><li>0: NOT_DETECTED</li> <li>1: DETECTED</li></ul>| | *if the battery is currently charging* |
:::
---
:::spoiler old battery
| topic | paramter | data type |data| unit | comment | |
| ---------------- | ------------------- | ------------------------ | --- | --------------- | ------------------- | --- |
| **dt/battery**| | | = 7 | |
| 接 | voltage | float[numOfVoltages] | | | | |
| | numOfTemperatures | int | | | = 4 | |
| | temperature | float[numOfTemperatures] | | Celsius degree | | |
| | current | float | | Ampere(A) | | |
| | totalVoltage | float | | Voltage(V) | | |
| | remainingCapacity | float | | Ampere-hour(Ah) | 剩餘容量 | |
| | batteryCapacity | float | | Ampere-hour(Ah) | 電池總容量 | |
| | remainingPercentage | int | | % | 剩餘容量/電池總容量 | |
:::
---
:::spoiler ### 雲台狀態回報 (dt/gimbal)
**MESSAGE:**
* **TOPIC:** dt/gimbal
|Topic| Package | msg |
|-| -------- | -------- |
|dt/gimbal| center_control_msgs | **GimbalData.msg** |
* **PARAMETERS:**
| paramter | data type | data | comment |
| ----------- | --------- | ---------------------------------------------------------------------------------------------------- | ------------------------------------------------------ |
| state | int | <ul><li>0: OFF</li><li>1: ON</li><li>2: INIT</li><li>3: ERROR</li></ul> | |
| commandType | int | <ul><li>0: TURN_OFF</li><li>1: TURN_ON</li><li>2: ABSOLUTE_ANGLE_CONTROL</li><li>3: SLIGHTLY_CONTROL</li></ul> | 0: 命令關機, 1: 命令開機, 2: 絕對角度控制, 4: 微調控制 |
| isBusy | bool | | true表示先前有位置控制且還未達到指定位置,後來的命令將會拋棄 |
| tilt | float | | |
| roll | float | | |
| pan | float | | |
:::
---
:::spoiler Evan的結晶收起來
### 新增巡邏點(Server to ROS) : **/PatrolPoint/Create**
paramter | data type |unit| comment |
-------- | ------|-- |-|
id|String|UUID|命令id|
robotPositionEnable|bool||是否要將軌道車移動加入排程|
cameraHangerHeightEnable|bool||是否要將升降加入排程|
gimbalControlPoseEnable|bool||是否要將雲台轉動加入排程|
robotPosition|int|mm|軌道車目標位子|
cameraHangerHeight|float|cm|升降目標高度|
gimbalControlTilt|int|int|tilt|
gimbalControlRoll|int|int|roll|
gimbalControlPan|int|int|pan|
or
### 更新巡邏點(Server to ROS) : **/PatrolPoint/Update**
paramter | data type |unit| comment |
-------- | ------|-- |-|
id|String|UUID|命令id|
pointId|String(?)||巡邏點id|
-|-|-|再討論需填入資料|
### 刪除巡邏點(Server to ROS) : **/PatrolPoint/Delete**
paramter | data type |unit| comment |
-------- | ------|-- |-|
id|String|UUID|命令id|
pointId|String(?)||巡邏點id|
### 查詢所有巡邏點(Server to ROS) : **/PatrolPoint/Request**
### 回報所有巡邏點(ROS to Server) : **/PatrolPoint/Response**
(該命令為收到/PatrolPoint/Request後才觸發)
### 命令結果回覆(ROS to Server) : **/CommandResult**
只要收到任一從Server過來的command,則必須返回command result
paramter | data type |unit| comment |
-------- | ------|-- |-|
id|String|UUID|命令id|
result|int||Success/Fail|
detail|String||result為Fail時可填入失敗原因|
### 中控對機器人命令 - 巡邏點(Server to ROS) : **/CenterControl/Patrol**
| topic | parameter | data type | unit| comment |
| -------- | -------- | -------- |-|-|
| **/CenterControl/Patrol** | || | |
||commandID|int||備註1|
||patrolPointList|PatrolPointData[]||備註2|
||||||
:::
:::spoiler Rich的結晶收起來
```json=
{
"commandID": 17,
"patrolPointList": [
{
"robotPositionEnable": true,
"cameraHangerHeightEnable": true,
"gimbalControlPoseEnable": false,
"robotPosition": 8986,
"cameraHangerHeight": -50,
"gimbalControlTilt": 0,
"gimbalControlRoll": 0,
"gimbalControlPan": 0
},
{
"robotPositionEnable": true,
"cameraHangerHeightEnable": true,
"gimbalControlPoseEnable": false,
"robotPosition": 10768,
"cameraHangerHeight": -80,
"gimbalControlTilt": 0,
"gimbalControlRoll": 0,
"gimbalControlPan": 0
},
{
"robotPositionEnable": true,
"cameraHangerHeightEnable": true,
"gimbalControlPoseEnable": false,
"robotPosition": 14503,
"cameraHangerHeight": -350,
"gimbalControlTilt": 0,
"gimbalControlRoll": 0,
"gimbalControlPan": 0
},
{
"robotPositionEnable": true,
"cameraHangerHeightEnable": true,
"gimbalControlPoseEnable": false,
"robotPosition": 16642,
"cameraHangerHeight": -80,
"gimbalControlTilt": 0,
"gimbalControlRoll": 0,
"gimbalControlPan": 0
},
{
"robotPositionEnable": true,
"cameraHangerHeightEnable": true,
"gimbalControlPoseEnable": false,
"robotPosition": 765,
"cameraHangerHeight": -40,
"gimbalControlTilt": 0,
"gimbalControlRoll": 0,
"gimbalControlPan": 0
},
{
"robotPositionEnable": true,
"cameraHangerHeightEnable": true,
"gimbalControlPoseEnable": false,
"robotPosition": 3897,
"cameraHangerHeight": -80,
"gimbalControlTilt": 0,
"gimbalControlRoll": 0,
"gimbalControlPan": 0
}
]
}
```
備註1: **commandID**
| commandID | application | comment |
| -------- | -------- | -------- |
| 0x11 | Deploy | update patrol point list to ROS and execute|
備註2: **PatrolPointData**
|PatrolPointData|parameter|data type|unit|comment|
|-|-|-|-|-|
||robotPositionEnable|bool||是否要將軌道車移動加入排程|
||cameraHangerHeightEnable|bool||是否要將升降加入排程|
||gimbalControlPoseEnable|bool||是否要將雲台轉動加入排程|
||robotPosition|int|mm|軌道車目標位子|
||cameraHangerHeight|float|cm|升降目標高度|
||gimbalControlTilt|int|int|tilt|
||gimbalControlRoll|int|int|roll|
||gimbalControlPan|int|int|pan|
:::
---
### 載入ROS Config (cmd/rosconfig/reload)
**REQUEST:**
* **TOPIC:**
| Topic | Package | msg |
| ----- | ------- | --- |
| cmd/rosconfig/reload | robot_controller | **ReloadRequest.msg** |
* **PARAMETERS:**
| parameter | data type | comment |
| --------- | --------- | ------- |
| req_sn | string | 命令流水號 |
**RESPONSE:**
* **TOPIC:**
| Topic | Package | msg |
| ----- | ------- | --- |
| cmd/rosconfig/reload/resp | robot_controller | **Response.msg** |
* **PARAMETERS:**
| parameter | data type | comment |
| --------- | --------- | ------- |
| req_sn | string | 相關命令流水號 |
| result | int | <ul><li>-1: 錯誤</li><li>0: 成功</li></ul> |
| error | int | 錯誤碼 |
| error value | comment |
| ----------- | ------- |
| 1 | *The size of the decelerative_section_start_points isn't equel to decelerative_section_end_points.* |
**ROS YAML Config**
目前會在ROS config新增下列幾個設定:
```
trackIsCircle: true
trackMinPosition: 1 #integer
trackMaxPosition: 1000 #integer
decelerativeSectionStartPoints: [10, 110] #integer
decelerativeSectionEndPoints: [20, 120] #integer
```
---
### 執行充電 (cmd/charging)
**REQUEST:**
* **TOPIC:**
| Topic | Package | msg |
| ----- | ------- | --- |
| cmd/charging | robot_controller | **ChargingRequest.msg** |
* **PARAMETERS:**
| parameter | data type | comment |
| --------- | --------- | ------- |
| req_sn | string | 命令流水號 |
| position | int | 充電站位置 |
**RESPONSE:**
* **TOPIC:**
| Topic | Package | msg |
| ----- | ------- | --- |
| cmd/charging/resp | robot_controller | **Response.msg** |
* **PARAMETERS:**
| parameter | data type | comment |
| --------- | --------- | ------- |
| req_sn | string | 相關命令流水號 |
| result | int | <ul><li>-1: 錯誤</li><li>0: 成功(執行完畢)</li><li>1: 命令已接受,處理中</li></ul> |
| error | int | 錯誤碼 |
| error value | comment |
| ----------- | ------- |
| 1 | *Charging process is canceled by joystick.* |
| 2 | *Charging process is canceled by center control.* |
| 3 | *The charging pad isn't contacted.* |
| 4 | *Charging process has been tried 6 times and couldn't be started.* |
---
### 馬達控制 (cmd/motor/control)
**REQUEST:**
* **TOPIC:**
| Topic | Package | msg |
| ----- | ------- | --- |
| cmd/motor/control | robot_controller | **ControlRequest.msg** |
* **PARAMETERS:**
| parameter | data type | comment |
| --------- | --------- | ------- |
| req_sn | string | 命令流水號 |
| motor | int | <ul><li>0: track motor</li><li>1: elevating motor</li><li>2: gimbal motor</li></ul> |
| position | float | 當motor欄為0,1時,將參考此欄位 |
| tilt | float | 當motor為2時,將參考此欄位<br/>range: [-40, 50] |
| roll | float | 當motor為2時,將參考此欄位<br/>range: [-40, 40],但這邊先綁死0, roll通常不會用到 |
| pan | float | 當motor為2時,將參考此欄位<br/>range: [-180, 180] |
**RESPONSE:**
* **TOPIC:**
| Topic | Package | msg |
| ----- | ------- | --- |
| cmd/motor/control/resp | robot_controller | **Response.msg** |
* **PARAMETERS:**
| parameter | data type | comment |
| --------- | --------- | ------- |
| req_sn | string | 相關命令流水號 |
| result | int | <ul><li>-1: 錯誤</li><li>0: 成功(執行完畢)</li><li>1: 命令已接受,處理中</li></ul> |
| error | int | 錯誤碼 |
| error value | comment |
| ----------- | ------- |
| 1 | *All control is canceled by joystick.* |
| 2 | *Process is interrupted by command.* |
| 3 | *Moving Platform's control is canceled by center control.* |
| 4 | *Elevating Platform's control is canceled by center control.* |
| 5 | *Gimbal's control is canceled by center control.* |
| 6 | *Tof sensor detects obstacle, interrupt Moving Platform's control.* |
---
### (TODO) 軌道速度設定讀取 (cmd/track/speed/read)
### (TODO) 軌道速度設定寫入 (cmd/track/speed/write)
### (TODO) 取得軌道路徑資料 (cmd/track/path/read)
**REQUEST:**
* **TOPIC:**
| Topic | Package | msg |
| ----- | ------- | --- |
| cmd/track/path/read | robot_controller | **(TBD)** |
* **PARAMETERS:**
| parameter | data type | comment |
| --------- | --------- | ------- |
| req_sn | string | 命令流水號 |
**RESPONSE:**
* **TOPIC:**
| Topic | Package | msg |
| ----- | ------- | --- |
| cmd/track/path/read/resp | robot_controller | **(TBD)** |
* **PARAMETERS:**
| parameter | data type | comment |
| --------- | --------- | ------- |
| req_sn | string | 相關命令流水號 |
| result | int | <ul><li>-1: 錯誤</li><li>0: 成功(執行完畢)</li></ul> |
| error | int | 錯誤碼 |
| path | array | [ p1, p2, ...] (參考下面範例) |
| error value | comment |
| ----------- | ------- |
| 1 | *data not ready* |
| 2 | *...* |
```javascript=
// cmd/track/path/read/resp 回覆訊息範例
{
reqSn: xxxxx,
result: 0,
error: 0,
path: [
{
value: 1000, // pxv值
angle: 0, // 角度: 0~359度
type: 0 // 型態: 0:line, 1: curve
},
{
value: 1500,
angle: 0,
type: 0
},
{
value: 2000,
angle: 30,
type: 1
},
...
]
}
```
---
:::spoiler Harrison的結晶收起來
> [name=Harrison] roll暫時不給使用者從中控中心控制,建議從中控就不給使用者輸入,但依然可以先接,以便後續若需要開放
> skyTrakcerMotor_X和cameraDynamicHanger_Y部分分別需要左右上下的按鈕,共四,移動的速度我這裡會先寫死,若以後需要從中控中心決定速度再說
備註3:**commandID** (/CenterControl/Control)
| commandID | application |data type|parameter| comment |
| -------- | -------- | -------- |-|-|
| 0x21 | MoveSkyTrackerMotor |float| skyTrackerMotor_X|以多少比例的速度移動(滿速由機上決定)|
| 0x22 | MoveSkyTrackerMotorPoint|float|skyTrackerMotor_X |移動到指定點(滿速由機上決定)|
| 0x23|MoveCameraDynamicHanger|float|cameraDynamicHanger_Y|以多少比例的速度升降(滿速由機上決定)|
| 0x24 | MoveCameraDynamicHangerHome|int|home = 1|固定先傳送home = 1|
| 0x25 | MoveGimbalBy5Degree|int|tilt, roll, pan |-1, 0, 1 (正反方向或是不動)|
| 0x26 | MoveGimbalByAbsoluteAngle|int|tilt, roll, pan |give absolute angle|
### 命令結果回覆(ROS to Server) : **/CommandResult**
只要收到任一從Server過來的command,則必須返回command result
paramter | data type | comment |
-------- | ------|-|
requestID|int|命令id(備註)|
result|int|Success/Fail|
errorCode|int|對應文件|
備註:**id**
| commandID | prefix | suffix |content|
| -------- | -------- | -------- |-|
|0x1X|1|X| 回應topic: /CenterControl/PatrolPoint的執行結果|
|0x11 | 1 | 1 ||
| 0x12|1|2||
|0x13|1|3||
|0x2X|2|X|回應topic: /CenterControl/Control的執行結果|
|0x21|2|1||
|0x22|2|2||
|0x23|2|3||
|0x24|2|4||
|0x25|2|5||
|0x25|2|6||
|0x3X|3|X||
|0x31|3|1||
|||||
:::
---
### 馬達連續移動 (cmd/motor/jog)
**REQUEST:**
```
行為描述
1. 當收到action為moving的命令,馬達會持續運轉一段時間
2. 在運轉期間內收到另一個命令時,馬達將延長運轉時間
3. 若在運轉期間結束時,沒有收到另一個命令,馬達將停止運轉
4. 若收到action為stop的命令,馬達將立即停止運轉
```
* **TOPIC:**
| Topic | Package | msg |
| ----- | ------- | --- |
| cmd/motor/jog | robot_controller | **JogRequest.msg** |
* **PARAMETERS:**
| parameter | data type | comment |
| --------- | --------- | ------- |
| motor | int | <ul><li>0: track motor</li><li>1: elevating motor</li><li>2: gimbal motor</li></ul> |
| dir | int | [-1,0,1], 當motor欄為0,1時,將參考此欄位 |
| tilt | int | [-1,0,1], 當motor為2時,將參考此欄位 |
| roll | int | [-1,0,1], 當motor為2時,將參考此欄位 |
| pan | int | [-1,0,1], 當motor為2時,將參考此欄位 |
**RESPONSE:**
* N/A
---
#### 站點編號與對應PXV值
| index | moving_position | elevating_height | gimbal_degrees |
| ----- | --------------- | ---------------- | -------------- |
| 1 | 9347 | 380.0 | [8.0, -30.0, 60.0]|
| 2 | 13150 | 615.0 | [-40.0, -31.0, -178.0] |
| 3 | 14626 | 150.0 | [6.0, -19.0, -81.0] |
| 4 | 16619 | 420.0 | [-25.0, 23.0, -60.0] |
| 5 | 719 | 1000.0 | [-35.0, 0.0, -83.0] |
| 6 | 3720 | 410.0 | [13.0, -14.0, 37.0] |
| chargingStation | 14336 | 0.0 | [0.0, 0.0, 0.0] |--
---
# TGIO Realted Terminology
[軌道工程常用專有名詞中英文對照](https://www.rb.gov.tw/public/files/artsinfo/1543368584-0.pdf)
[懸掛軌道](https://www.google.com/search?q=hanging+railway&sxsrf=AOaemvJCmN5tnekP6NnQJ0ihXVOyZ_yvuA:1643002894215&source=lnms&tbm=isch&sa=X&ved=2ahUKEwjM9v7e1sn1AhVrrlYBHdmaDMwQ_AUoAXoECAIQAw&biw=1396&bih=656&dpr=1.38): -~~track~~ hanging track
懸掛機器人: hanging robot/ rail based robot
巡邏機器人: inspection robot
升降平台: elevating platform
充電站: charging station
換軌站: track replacement station
巡邏/檢核點: inspection point
巡檢列表: inspection checklist
軌道區段: track section
UI修改部分:
| page on pdf | 修改前 | 修改後 | 備註 |
| ----------- | ----- | ----- | --- |
|1/16|Track Management|HangingTrack Management|單講track可能會偏向地面軌道|
||Point Management|Station Management|
||Patrol Point Management|Inspection Point Management|
||Patrol Point Details|Inspection Point Details|
||Zone Management|Specific Section Management|
||Car Details|Device/Robot Details|
||Schedule Management|Inspection Schedule Management|
||Patrol Point List|Inspection Point List|
||Map Management|???|討論一下|
||Track Point List|???|討論一下|
|5/16|Hanger Control|(Elevating)Platform Control|
|6/16|take-temperature|temperature measurement|與noise detection, pm 2.5detection一致|
|8/16|Action list(s)|Inspection content/list|檢查內容會比較貼切一點嗎?可以討論一下|
|12/16|Sersor capture report(s)|Sensor capture report(s)|typo|
|13/16|Choose|Select|
2/14開會結果
巡檢列表 inspection list
雲台 gimbla要再討論 ex.PTRPlatform