---
# System prepended metadata

title: AndroSot 比賽整理
tags: [Lab]

---

# AndroSot 比賽整理
###### tags: `Lab`

## 系統描述

機器人
* 馬達
* Arduino
* NRF24l01 wifi

視覺
* webcam e30
* opencv
* python

策略
* python



## 開發工具
安裝以下
1. visual code
2. 相機參數檢測工具
3. Arduino IDE
4. Linux 作業環境(雙系統推薦)
5. pycharm(私心推薦)
6. git
7. python3 

## 開發注意事項

### 系統設計

機器人系統主要分成三個部分，視覺、通訊、機構，最後是系統的整合。系統整合需要顧慮到的地方列點提醒。
1. 統一API格式
2. 統一偵錯訊息
3. 資料同步
4. 數值儲存
5. 單一介面控制

### 影像辨識

1. 相機調高預設的影格率、強調即時性
2. 另開一條執行緒減少讀寫時間
3. 調整影像穩定度、減少抖動
4. 抓取輪廓
5. 辨別顏色
6. 修正視覺誤差

### 機器人硬體
1. 電池狀況:11.5以下的電池就應該要充電
2. 有系統的儲存上一份步態資料
3. 機器人的線路有時會鬆脫，可以用熱溶膠再加強固定
4. 穩定機構

### 通訊
1. 硬體可能會壞，可以標記出好的硬體，比賽前要注意可使用的硬體足夠
2. 傳送速度不同會影響機器人的穩定性，記得跟負責機器人的組員商量好

### 策略
1. 可以先從挑戰1、2開始寫
2. 會有許多參數需要現場修改，寫程式的時候要考慮一下寫法或加註解，以方便當場調整
3. 使用模擬器可以幫助找出會產生error的bug，但在實際的表現上，模擬器會和實際系統相差蠻多，所以可能要考慮一下系統整合的時間
4. 可以的話，要有系統的留下修改前的版本，尤其是在接近比賽的時候，可能會發生改完後反而bug變多且表現變差的情況
5. 建議寫成模組化的形式，以便再利用
6. 

## 比賽注意事項


1. 注意開發時程，實測時間大約是等同於開發時間
2. 與其他夥伴的溝通文件：github、hackmd等
3. 建議比賽前兩週半進行實測
4. 記得留存開發紀錄，影片及文件
5. 比賽的場地很爛，步態需要當場調(每年會不會用不一樣材質不確定)
7. 比賽的燈光很不均勻
8. 比賽的場地比較高，物件看起來會比較小
9. 實作快速調控介面，減少比賽調整時間
10. 相機傾斜問題
11. 策略考慮實際情況進行調整
12. 考慮通訊故障及馬達過熱，機器人的步態可能會跟差很多

## 資源
![](https://i.imgur.com/dw6d910.png)
git commit example
 - [比賽影片](https://drive.google.com/drive/folders/1a9Lhl6XrfzFVMM-4GKuqt4Oj861r8Ogh?usp=sharing)
 - [Ubuntu 18.04 雙系統安裝](https://medium.com/caesars-study-review-on-web-development/win10-and-ubuntu-%E9%9B%99%E7%B3%BB%E7%B5%B1%E5%AE%89%E8%A3%9D%E7%AD%86%E8%A8%98-bc824bef7fb4)
 - [Github 教學資源](https://hackmd.io/@sysprog/gnu-linux-dev/https%3A%2F%2Fhackmd.io%2F%40sysprog%2Fgit-with-github)
 - [Visual Studio Code](https://hackmd.io/@sysprog/gnu-linux-dev/https%3A%2F%2Fhackmd.io%2Fs%2FrJPKpohsx)
 - [Hackmd 教學資源](https://hackmd.io/c/tutorials-tw/%2Fs%2Ffeatures-tw)
 - [python 虛擬環境](https://docs.python.org/zh-tw/3/tutorial/venv.html)、[requirement.txt](https://blog.longwin.com.tw/2019/03/python-pip-requirements-txt-management-package-2019/)
