# Robotics final project
###### tags: `111-1`
### TODO
- [x] form riceball
- [x] cv catch the wrong side of the riceball
- [x] 把生魚片鋪在飯球上
- [ ] ~~dedicate version~~
- [ ] ~~pwm hold~~
- [x] 把海苔鋪好在平台上
- [ ] ~~用PWM控制夾爪把飯卷平移~~
- [x] 把飯卷幹過去
- [x] 用PWM控制夾爪開合來把飯抖下
- [x] 用個二維陣列分區紀錄飯的高度
- [x] rice container changes from bowl to plate
- [x] acryls desktop layout (waterproof)
- [x] platform movement
- [ ] IEEE format report (@https://www.overleaf.com/2155822933gthgmvpwntkf)
- [ ] PPT (@https://docs.google.com/presentation/d/11HlGLvaJXefGoBgctX3oykO7dEIZOm9ub8sRktNsS-E/edit?fbclid=IwAR2vZLu5Y1msTCl5cUAnlFwIkKL5IkGkwriX2STv9SNDv4zgJdFsT9cB3hk#slide=id.g1bb2bb29508_8_0)
- [x] Video: nigiri
- [x] Video: tekkamaki
### Now Issues
- [x] 新列印的平台轉起來小卡
- [x] 放小黃瓜兩側不要凸起&平台寬一點!
- [x] 平台手把可以寬一點,然後外側的框可以從正方形改成1/4圓弧
- [x] 海苔怎麼放到平台
- 改用立架以及夾爪尖端改軟性材質
- [ ] ~~海苔平台弄成斜的,高度修正~~
- [x] 飯怎麼鋪平
- 拿小坨一點?
- 直的放5坨
- [ ] ~~先捲小坨飯再用手臂捏~~
- [x] MCU電路部分rework
- [x] MCU communication
- [x] 怎麼拿第二次以上的飯
- rice manager
### Positions
<iframe width="100%" height="300" src="https://docs.google.com/spreadsheets/d/1G4tvbDJCVfUlQHIxhYPVR8fmC0EVBJk2gHP6mRgZ4Tg/edit?usp=sharing" frameborder="0"></iframe>
## Useful links
* [Equipment Booking Form](https://docs.google.com/spreadsheets/d/1XTQHf7IWQmbENd9OTpL_LG2h5e-_BdcedSfcBD1Yjcg/edit)
* [Schedual](https://predoc.dlc.ntu.edu.tw/viewer?embedded=true&url=https%3A%2F%2Fcool.ntu.edu.tw%2Ffiles%2F2940652%2Fdownload%3Fverifier%3DeyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6MTAwMDAwMDI5NDA2NTIsImN0eCI6bnVsbCwidXNlcl9pZCI6MTAwMDAwMDAwMTY4NjMsImV4cCI6MTY2ODU2NDk2OX0.HiozUCfQPdS-STJ2b-JUEvWfKn7G7vjP36sHOJpohRk)
::: spoiler Brainstorms
## candidates
// brainstorming: anything is welcome, not rejecting at all currently
- [ ] Cake decoration robot arm
- [ ] Cocktail machine
- [ ] fly-killing machine
- [ ] Automatic writing machine, but with robot arms
- [ ] Magician
- [ ] Sand painting
- [ ] Bionic
- [ ] Taro
- [ ] Hotpot server / yakiniku
- [ ] sushi
- [ ] overwatch bastion
- [ ] 遠距上課手臂機器人
- [ ] 護理機器人/協助拿藥
Previous projects
1. 123木頭人車車
* 模仿魷魚遊戲
* 車車有開槍音效和燈光
* 你動了他會開到你前面幹你
* 小羊有airsoft槍(誤
2. 打麻將機器人
* 會吃牌 碰 胡牌
* 辨識玩家打出來是什麼
3. 跟隨老師的麥克風車車
### Candidate 1
> Sushiro-Bot
> 有溫度的壽司機器人
(好爽前面可以抄sushiro)
### Description
> 跟日本壽司店的情境相同,在吧檯前,客人在點餐後,壽司師傅會現場捏出他所要的壽司,並上菜到客人面前。
> 目標讓配備攝影機的機械手臂透過輔具(不同形狀的容器或機械結構等),完成如同壽司師傅相同的任務。
> 大致功能如下,吧檯座位前方某位顧客點餐後,機器人透過相機辨識食材確認現有食材以及食材位置,獨力完成3種不同種類的壽司(一般握壽司、軍艦壽司、手卷),將壽司放到木盤上後,在上菜給點餐的顧客。
### Implementation
* 先捏黏土(?
* 可以一個人寫辨識,其他一人負責寫一種壽司的作法
* [連結](https://www.youtube.com/watch?v=nTs4wGopuAM)
## Candidate 2
> 咖啡拉花機器人
Latte Art Robot
### Description
> 將熱牛奶加入機器手臂前端的奶泡杯中,客人可以從清單中選擇想要的拉花造型,即可拉出該造型的花樣。
### Implementation
* 買奶泡機?
* 複製動作?(用感測器記錄不同拉花造型的動作)
* [連結](https://www.youtube.com/watch?v=SDzSeHEUH4g)
:::
## Name
> Sushiro-Bot
> 有溫度的壽司機器人
(好爽前面可以抄sushiro)
## Description
> 跟日本壽司店的情境相同,在吧檯前,客人在點餐後,壽司師傅會現場捏出他所要的壽司,並上菜到客人面前。
> 目標讓配備攝影機的機械手臂透過輔具(不同形狀的容器或機械結構等),完成如同壽司師傅相同的任務。
> 大致功能如下,吧檯座位前方某位顧客點餐後,機器人透過相機辨識食材確認現有食材以及食材位置,獨力完成3種不同種類的壽司(一般握壽司、軍艦壽司、手卷),將壽司放到木盤上後,在上菜給點餐的顧客。
## Implementation
* 先捏黏土(?
* 可以一個人寫辨識,其他一人負責寫一種壽司的作法
* [連結](https://www.youtube.com/watch?v=nTs4wGopuAM)
* [壽司師傅捏壽司](https://www.youtube.com/watch?v=ZzLPUoetSHw&ab_channel=Epicurious)
* "手" adaptive platform
* 兩條線在內層,左右一條
* 兩條一起拉手就捲起來
* 只拉一條就斜的(手卷?)
* 直著擺可以弄惠方捲?
* 加馬達滾輪在底部
* 手下半部也要上捲,不是只有手指
* embeded weight sensor
* new gripper: 小彎曲 like spoon
* 可以挖飯
* 10 ~ 12g
## hardware
:::spoiler custom gripper
* 
* 
:::
* adaptive platform
* https://makersportal.com/blog/2020/3/14/arduino-servo-motor-control
::: spoiler version 1
* MG-996r

* 4 plates: 20 * 200 (mm)
:::
::: spoiler version 2
* motor_adaptor hole too small
* holders hole too small
* motor offset need to change
:::
::: spoiler version 3
* one-piece
* 
:::
:::spoiler robot arm workspace


:::
* Ard Nano Pinout
| Nano Pin | Function |
| -------- | -------- |
| Text | Servo 1+ |
| Text | Servo 1- |
| Text | Servo 2+ |
| Text | Servo 2- |
| Text | Servo 3+ |
| Text | Servo 3- |
| Text | Btn nigiri |
| Text | Btn tekkamaki |
* Ard Nano Protocol
Note: with "\r\n"
| To Nano | To Computer | Meaning | state | command |
| ---------------- | ----------- |:--------------------------------------------- |:----- |:------- |
| auto | | servo auto mode | x | 1 |
| order | | servo order mode | x | 2 |
| nigiri_roll | | nigiri roll (auto), platform should be outside | out | 3 |
| tekka_roll_in | | tekka roll (auto), platform should be inside | in | 4 |
| tekka_roll_out | | tekka roll (auto), platform should be outside | out | 5 |
| half | | side two roll half (auto) | in | 6 |
| reset | | all three flat (auto) | x | 0 |
| | nigiri | order: nigiri | x | |
| | tekkamaki | order: tekkamaki | x | |