2016-03-30 (水)
金曜の夜に出かけるのでそろそろ準備しないとと思って,寝る前に自転車用の輪行バッグとリュックサックを注文した.Amazonなのできっと明日届くはず.準備ギリギリすぎる気がするけど.
あと,サドルバッグ届いたので取り付けたりした.シートチューブ太すぎて付属のベルトが使えない罠があった.手元にあったケーブルを束ねる用のマジックテープのバンドで固定...
この日記はフィクションです.登場する人名・団体名・地名・職業などはぜんぶ架空のものです. なので実際のものとは何も関係がありません. それから,写真のように見える画像はCGもしくは念写によるものです.
金曜の夜に出かけるのでそろそろ準備しないとと思って,寝る前に自転車用の輪行バッグとリュックサックを注文した.Amazonなのできっと明日届くはず.準備ギリギリすぎる気がするけど.
あと,サドルバッグ届いたので取り付けたりした.シートチューブ太すぎて付属のベルトが使えない罠があった.手元にあったケーブルを束ねる用のマジックテープのバンドで固定...
休みが終わってしまう...
天気良い.
ysaotomeと自転車で多摩湖まで行ってくる.待ち合わせ場所が中野坂上だったけど,家から新宿までが上り坂で,すでに疲れていた.
駅伝やってたみたいで人がたくさんいた.西武園ゆうえんちが見えたけど,小学生の時に来た気がする.懐かしい.
往復で80kmくらい走った.
帰りにうどん食べて,ysaotomeの家で肉を焼いて食べた.
コード書く日.
不安定ですぐに倒れるけど.奇跡的に写真を撮れるくらいに上手く動いてる時の状態.
とてもわかりにくいけど,2つ関節があるアルミの棒が支え無しで立ってる.先端についてるのは錘としてその辺にあったのりを固定しただけ.
足元.左右には倒れないように棒が固定してあるけど,制御しないと前後に倒れる.下の関節から姿勢を計算したほうが楽だったので,センサー類を下につけたけど,あまり剛性が高くないので上の方は誤差大きくなって振動する原因になる.頭のほうにつけるべきかもしれない.人間の三半規管も頭にあるし.
Amazonのダンボール製の机...
最初コンソール上に行列を出力してたけど,WebSocketでデータ送ってWebGLで表示したりブラウザのコンソールからパラメータ変えられるようにしたら大分遊びやすくなった.
ただ,ちょっと振れ幅が大きくなると制御不能になるので,色々間違ってるかも.いいかげんな制御で動かしてるので,このままだと安定させるの難しい.そもそも,関節動かしてコントロール出来る角速度の幅が狭すぎる.もう1関節増やして腕を下にむけておけば,制御しやすくなりそう.
一応,サーボのスペック上は倒れた状態から自力で立つことができるはずなのだけど,いまのところ立ってる状態でちゃんと静止させてあげないと立てない.
工作する日.髪を切った.
今使ってるジャイロセンサ,X,Y軸はノイズ多いけど,Z軸だけ妙に値が安定してるのに気づいた.X,Y軸も実用上は問題ないしデータシートに書いてある値には収まってるのだけど,Z軸だけ1桁近く精度が良い気がする.ワンチップの部品なので,X,Y軸はパッケージ内にMEMS部品を立てて設置する必要があるので安定しないのかも?
試しに,Z軸を北に向けた時と南に向けた時の30秒間の回転量を取ってみる.北緯36度くらいの所に住んでるので,大雑把に36度くらいZ軸を上を向けて固定.あと温度によって値が変わるので,少し寒いけどエアコン止めてしばらく待つ...
青い点と赤い点が,向いてる方向ごとのデータ.一応事前に0点を合わせておいたのだけど,室温が変わったせいで,+方向に少し寄ってしまっている.
それぞれ最大と最小のデータを除外して平均の差を取る.
(0.04574 - 0.04342) / 30 * 86400 = 6.6816 Rad./Day
微妙なところだけど,地球は回っているっぽい.世間で言われてるよりちょっと速く回ってるようだけど気にしない.たまたまそれっぽい値が出てきたけど,たぶん有効数字は一桁以下しかない.
有給消化週間っぽいので流れに乗って今日と明日は休み.
基板に飲み物こぼしてしまって加速度センサがなにもデータ返さなくなって焦ったけど,洗って乾かしたら直った.
牡蠣食べる日.恵比寿まで行く.
ジャイロセンサ,そこそこ安定して動いてて1/1000ラジアン/秒程度の精度で取れる.地球が自転してるのをデータ上でも見れるかなと思って眺めてたけど,もう少し精度が良くないと(目で見る限りは)ノイズに埋もれてしまうな.
一通り揃ってきたので,サーボの挙動を調べる.
posはサーボへの位置指定. servoはサーボが報告してきた位置.gyroがジャイロセンサから求めた位置.一応スペック通りの動作をしている.
最後少しずれてるのは固定が適当なせいなのもありそう.いきなり計算通りに動くと嬉しい.左軸が1/100度.右がラジアン.サーボが1/100度で出してくるのをそのまま出力したせいで2軸になってる.
立ち上がり部分.
それなりに上手く動いているけど,ジャイロの値が50msくらい遅れてるように見えるな...
なんとか確定申告を済ませた.
昨年も最終日にやってた気がするな.
GVS+VRの時代が来た(ような気がした).サムスンがやってるのか.http://shiropen.com/2016/03/14/14249
日曜日に作ったやつ,精度がイマイチなのはセンサの値をPCの時刻を基準に計算してるせいなのは分かっているのだけど,想定してたよりひどいので少し調べる.AVR側で処理すれば解決する気がするのだけど,当面はデバッグしやすいようにPC上で動かしておきたい.
調べてみると,やっぱり時刻の問題でCOMポートからPCにデータが届く時間がちょうど16msごとになってるように見える.
大きいデータを連続で送り続けた場合はレイテンシが小さくなるので,明らかにUSBのバッファ周りっぽいと思って確認したら,USBシリアル変換に使っているFTDIのコントローラのLatency Timerのデフォルトが,ちょうど16msだった.そして,普通にデバイスマネージャのCOMポートの設定から変更できた.
http://www.hdl.co.jp/USB/FTDI/lt/
USBはホストがポーリングしないといけないので,うっかりするとレイテンシを犠牲にしてしまいがち.
とりあえず解決したけど,センサの値のタイムスタンプをデバイス側で振るようにしたほうが良いな.
確定申告の準備.ふるさと納税あまり調べずやってみたけど,大半は住民税から控除されるのか.そしてもっと寄付しても良かったっぽい.
Golangで簡単な3次元のジオメトリ変換したかったのでライブラリ探していた.
gonum/matrixかgo-gl/mathglかなあ.
昨日の加速度センサとジャイロセンサをWebSocketでセンサの情報送ってブラウザのWebGLで表示するようにした.基板を動かすと同期してブラウザ上の直方体がグリグリ動く.やっつけなので精度はイマイチ.
センサ ―SPI→ AVR ―UART→ Golangで書いたサーバ ―WebSocket→ ブラウザ という感じでかなり遠回りしてる感じする.
とても眠い...昼過ぎまで寝る.
TODO: 確定申告
加速度センサだけだとイマイチだったのでジャイロセンサを載せた.
ジャイロセンサは L3GD20 を使ってみた.すでに使ってる加速度センサのLIS3DHと同じくSTマイクロのセンサなので,ほぼ同じインターフェイスで使えて嬉しい.
https://github.com/binzume/avr-lis3dh
とりあえず,LIS3DHを試した時のコード少しいじるだけで動くのは確認.制御周りはまだ.大学生の時にデジタル制御の授業はちょっとだけ受けたけど,ニューラルネットワークの方が流行に乗ってる感あってよいかなあ.続きは明日か来週辺りやろう.
とても身体がだるいのは月曜日だからなのか体調悪いのかの判別が難しい.
映画.豊洲.4DX初体験.
会社でHTC Vive少し遊ばせてもらった.かなり良い感じだったので少し欲しくなった.