前段時間很多技術支持和客戶反饋FindYourCandy的環(huán)境搭建十分麻煩,而且門檻比較高握玛,因此我研究了一下用Docker做部署。Docker玩得不溜甫菠,體積很大挠铲,望高手賜教。
部署方法
Mac或者Windows上部署
-
下載安裝Docker Toolbox:這里使用VirualBox+Docker的解決方案代替Docker for Mac寂诱,不然Dobot的串口不能映射到Container里面拂苹。Docker Toolbox包含以下內容:
- Docker CLI client for running Docker Engine to create images and containers
- Docker Machine so you can run Docker Engine commands from macOS terminals
- Docker Compose for running the docker-compose command
- Kitematic, the Docker GUI
- the Docker QuickStart shell preconfigured for a Docker command-line environment
- Oracle VM VirtualBox
-
配置Docker-Machine(官方為Docker配置好的VM)
2.1.1. 查看位置
2.1. 虛擬硬盤擴容
2.1.2. 擴容虛擬硬盤$ docker-machine stop $ vboxmanage clonehd "source.vmdk" "cloned.vdi" --format vdi #將原來的硬盤文件由vmdk格式轉成vdi格式 $ vboxmanage modifyhd "cloned.vdi" --resize 30000 # 將硬件大小重新設置,單位是MB $ vboxmanage clonehd "cloned.vdi" "new.vmdk" --format vmdk # 將硬盤文件的格式改回去 $ vboxmanage showvminfo default # 查看VM的信息痰洒,找到虛擬硬盤所在的SATA位置和UUID瓢棒,Docker官方VM的名字是default ... SATA (0, 0): /Users/jomar/.docker/machine/machines/default/boot2docker.iso (UUID: 7dc4f388-537b- 4ad8-84da-6501ed2c74af) SATA (1, 0): /Users/jomar/.docker/machine/machines/default/disk.vmdk (UUID: b58a9c93-dc0f-46c2-825e-b646b0fe8c09) ... $ vboxmanage storageattach default --storagectl "SATA" --port 1 --device 0 --medium none # 從SATA總線上卸載虛擬硬盤 $ vboxmanage closemedium disk b58a9c93-dc0f-46c2-825e-b646b0fe8c09 # 關閉虛擬硬盤 $ vboxmanage storageattach default --storagectl "SATA" --port 1 --device 0 --type hdd --medium resized.vmdk # 重新掛載虛擬硬盤
2.1.3. 擴容系統(tǒng)分區(qū)
2.1.3.1. 下載GParted鏡像
2.1.3.2. 在VM光驅中掛載該鏡像,并設置為第一順序啟動
2.1.3.3. 剩下的參考教程2.2. 將VM的內存大小設置為5G以上丘喻,F(xiàn)indYourCandy的詞向量庫大小超過2G脯宿。
2.3.下載帶UVC的VM鏡像到虛擬硬盤所在目錄,覆蓋掉原文件就好泉粉。使用該鏡像才可以正確識別webcam连霉。
2.4. 設置端口映射 -
配置服務
$ docker-machine start # 啟動VM $ docker-machine ssh # ssh登錄VM $ ls /dev/video* & ls /dev/ttyUSB* 查看相機和Dobot有沒有被VM正常識別 /dev/video0 /dev/ttyUSB0 # 啟動SS服務 # 8123是http代理監(jiān)聽端口,寫死在polipo的配置文件 # 1080是SS的SOCK5監(jiān)聽端口 $ docker run -d --name dobot-ss -p 8123:8123 -p 1080:1080 jomarwu/dobot-ss sh -c '/etc/init.d/polipo restart & sslocal -s SS服務器地址 -p SS服務器端口 -b 0.0.0.0 -l 1080 -m SS服務器加密方式 -k SS服務器密碼' $ docker run -it -p 3389:3389 -p 18000:18000 --privileged jomarwu/dobot-fyc # 啟動配置好FindYourCandy的容器 $ service xrdp restart # 開啟xrdp服務嗡靡,方便相機標定 $ export http_proxy="http://172.17.0.2:8123" # 注意區(qū)別SS所在容器的IP $ export https_proxy="http://172.17.0.2:8123" $ python /root/dobot/FindYourCandy/robot-arm/run.py & $ python /root/dobot/FindYourCandy/webapp/run.py &
Linux上部署
- 下載安裝Docker
- 配置服務
$ ls /dev/video* & ls /dev/ttyUSB* 查看相機和Dobot有沒有被正常識別 /dev/video0 /dev/ttyUSB0 # 啟動SS服務 # 8123是http代理監(jiān)聽端口跺撼,寫死在polipo的配置文件 # 1080是SS的SOCK5監(jiān)聽端口 $ docker run -d --name dobot-ss -p 8123:8123 -p 1080:1080 jomarwu/dobot-ss sh -c '/etc/init.d/polipo restart & sslocal -s SS服務器地址 -p SS服務器端口 -b 0.0.0.0 -l 1080 -m SS服務器加密方式 -k SS服務器密碼' $ docker run -it -p 3389:3389 -p 18000:18000 --privileged jomarwu/dobot-fyc # 啟動配置好FindYourCandy的容器 $ service xrdp restart # 開啟xrdp服務,方便相機標定 $ export http_proxy="http://172.17.0.2:8123" # 注意區(qū)別SS所在容器的IP $ export https_proxy="http://172.17.0.2:8123" $ python /root/dobot/FindYourCandy/robot-arm/run.py & $ python /root/dobot/FindYourCandy/webapp/run.py &
調試
-
用一臺Win電腦遠程登錄讨彼,輸入運行Docker的電腦(注意不是VM歉井,也不是Container)的IP地址
-
輸入賬號root,密碼123456哈误,遠程登錄到運行FindYourCandy的Container哩至。
- 調試相機
3.1. 終端運行
3.2.調試成功的標準:1. 四個二維碼的綠色框穩(wěn)定出現(xiàn)躏嚎;2. Detection窗口能正確框選目標。cd ~/dobot/FindYourCandy/setup/script/ python camera_tune.py
- 調試Dobot憨募,根據(jù)提示完成即可紧索。
cd ~/dobot/FindYourCandy/setup/script/ python robot_tune.py
配置安卓平板
- 設置代理,上面已經運行了一個SS服務菜谣,將其設為代理服務器即可珠漂。注意過濾通向FindYourCandy主機的數(shù)據(jù)。
- 下載chrome舊版本尾膊,新版本不能獲取麥克風輸入媳危,這里我使用59的版本。
- 安裝google服務框架冈敛,不會的百度待笑。
- 安裝chrome,將其設置為信任應用抓谴。