カメラを GoPiGo に装着。
カメラの向きを,GoPiGo の真っ直ぐ前方に固定。
カメラ映像の画面サイズを,640 × 480 とする。
カメラ映像を,<カメラの1m前方の平面>の画像で考える。
GoPiGo を時間tだけ左回転するとき,画像の中心座標 (0, 0) にあった像は,座標 (x, 0) になる。
この対応 : t ↔x を,ここで調べる。
作業
- カメラ映像は,MJPG-streamer を用いる
システム使用手順
- PC から Raspberry Pi に ssh 接続
- Apache を起動
$ sudo systemctl start apache2
- MJPG-streamer を,デーモンで起動 (画像サイズ 640 × 480):
~ $ ./mjpg.sh 640 480 1 50 &
- カメラ映像のストリーミングのページに,PC のブラウザで http 接続
- つぎのプログラムで GoPiGo の回転を操作する:
$ vi rotation.py
#!/usr/bin/env python
import gopigo3
gpg = gopigo3.GoPiGo3()
gpg.set_servo(gpg.SERVO_1, 1500)
from easygopigo3 import EasyGoPiGo3
egpg = EasyGoPiGo3()
from time import sleep
egpg.set_speed(10)
def rotation( t ):
egpg.left()
sleep(t)
egpg.stop()
while True:
t = input( '回転時間 (q で終了):')
if t == 'q':
break
else:
rotation( float(t) )
gpg.reset_all()
egpg.reset_all()
|
$ chmod +x rotation.py
$ ./rotation.py
- ストリーミング停止
- MJPG-streamer を停止:
- Apache を停止:
$ sudo systemctl stop apache2
結果
対応 t ↔ x は,おおよそつぎのようになった:
t |
x |
0 |
0 |
3 |
--50 |
4.5 |
-100 |
6 |
-150 |
9 |
-200 |
12 |
-300 |
|