Memorandum

New version Kouhei's Homepage

新ジャイロ

P1030327
住友精密工業から新しいジャイロを買いました。
100mぐらい走ってユーターンして帰ってきたら
誤差が8度ぐらいでました。
まあ、こんなもんかな

親子丼

P1070169
今日の夕食は親子丼
うっかり玉子入れてからにすぎてしまって
完全に固めてしまいました
ちょっぴり残念

エアー座布団浮いた

学生たちが作っていた
東工大のホームページを参考にしたホバークラフトの試作品がうまく浮かびました。
マブチの280モータ30個と厚紙で作った遠心ファンで80kgは浮かせられます。

今季初GPS誘導成功

4月から基礎的な勉強を開始した学生が
GPS誘導プログラムの初実験を試み、成功させました。
パチパチ

測域センサーで窓ガラスを計測

今年のつくばチャレンジは自動ドアの前で止まる必要がある
自動ドアはたぶんガラス戸だと思うので測域センサーで
ガラスを認識できるか確認してみた。

北陽電気さんのTop-URGで窓ガラスを計測した。

窓のカーテンを閉めた状態の写真と計測結果の可視化画像

窓のカーテンを開けた状態の写真と計測結果の可視化画像

以上の実験からは測域センサーのレーザーはガラスを透過することが分かった。
完全に透過しないのは汚れのせいかもしれない。

腕ロボット、面白い企画はないものか

うちの研究室では今年から誘われて
2関節筋をやってます。
2関節筋というのは関節2個にまたがった筋肉のことで
人間や動物にふつうについてるものです。
1個(一対といったほうがよいかも)の筋肉で2個の関節を制御するということで
面白そうでしょ?!
この2関節筋がわれわれの腕や足の制御を容易にしていると考えられてます。

今地味にアーム機構にばねを取り付けて2関節筋を装備した筋骨格系が外力にたいしてどのように働くのか、下のほうに紹介した本に書いてあることを追試しようとしているのですが
まあ、1年ぽっきりの学生にやってもらうのには少しばかり退屈です。

やはりうちの研究室の特徴は大会を目指しがんがん技術を上げようというのが
いいのですが、「腕ロボットコンテストとかないかなあ?」
と探しているところです。

5年前ぐらいにアメリカで腕相撲ロボットの大会があったようですが
日本で似たようなものはないでしょうか?

何か目標になるものを掲げたやりたいのですが、いかがですか皆さん!?

この動画はその最先端みたいなロボです



私どもがバイブルにしている本
ヒューマノイド工学―生物進化から学ぶ2関節筋ロボット機構
ヒューマノイド工学―生物進化から学ぶ2関節筋ロボット機構熊本 水頼 精密工学会生体機構制御応用技術専門委員会

東京電機大学出版局 2006-10
売り上げランキング : 269770

おすすめ平均 star
star二関節筋
star技術的なブレークスルー

Amazonで詳しく見る
by G-Tools

ビリヤードするロボット

最近、私のところに届いたメールの情報で面白かった
ビリヤードするロボットです。
玉の予想軌跡をシミュレーションして、行動方針を
決めるところが未来な感じがしますね。

OpenTKチュートリアル

つくばチャレンジだけではないかもしれませんが
つくばちゃれんじのような屋外実験では、実験データのリアルタイムでの
見える化は非常に大事です。

ぼくが以前やってたミサイルの発射試験でもペンレコが発射とともに
だーーーーーーてなかんじでデータの見える化をやっておりました。(今はやってないかも)
故に前々からGUIアプリによって走行軌跡を表示したり、LRS(レーザーレンジスキャナ)の
スキャンを可視化したりといったことの重要性をひしひしと感じながら
学生のせいにして、結局毎年間に合わないと言った状況に陥っておりました。

今年は少し気合いを入れるつもりでおります。

ここ最近、GDI+でちまちま行くかと思いましたが、y軸が下向いてるのを自分で修正するライブラリ作ったりするのが面倒になってきて、もともと検討していたOpenGLに戻しました。
OpenGLのラッパークラスとして昨年はTAOFrameworkを試していたのですが、最近本家のWebに接続できないので、OpenTKに乗り換えることにしました。
この記事はOpenTKを使えるようにするまで、付属の英語のマニュアルのチュートリアルを参考にした手順を備忘録がわりに記載したものです。

●OpenTK入手&インストール
http://www.opentk.com/
ここからダウンロードしてインストールしてください。

●VisualStudio2008での使用方法
1 新規作成でWindowsFormアプリケーションのプロジェクトを作ってください。
2 ツール→ツールボックスのアイテム選択
3 出てきたダイアルログからGLControlにチェックを入れる。(フィルタにTKと入れると楽)
4 OKを押してダイアログを閉じます。
5 すべてのWindowsFormにGLControlの歯車のようなアイコンができているので、それをFormにドラッグアンドドロップで配置します。
6 Form1.csを以下のように編集します。(マニュアルには、ここまでにもう少し記述が、あります。かなり省略してます。)プロジェクト名を「OpenTK_test100619」で作成しましたので。namespaceが「OpenTK_test100619」になってますが。皆さんのプロジェクト名で適宜変えてください。


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using OpenTK.Graphics;          //追加
using OpenTK.Graphics.OpenGL;   //追加


namespace OpenTK_test100619 //名前空間名は適宜変えてください
{
    public partial class Form1 : Form
    {
        bool loaded = false;//追加したメンバー

        public Form1()
        {
            InitializeComponent();
        }

        //以下はOpenGLコントロールを使用できるようにするために追加したコードです

        private void glControl1_Load(object sender, EventArgs e)
        {
            loaded = true;
            glControl1.MakeCurrent(); //GLコントロールを複数使うときはこれでカレントを指定します
            GL.ClearColor(Color.AliceBlue); // Yey! .NET Colors can be used directly!
            SetupViewport();
        }

        private void glControl1_Paint(object sender, PaintEventArgs e)
        {
            if (!loaded) // Play nice
                return;

            glControl1.MakeCurrent(); ////GLコントロールを複数使うときはこれでカレントを指定します
            GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
            GL.MatrixMode(MatrixMode.Modelview);
            GL.LoadIdentity();
            GL.Color3(Color.Yellow);
            GL.Begin(BeginMode.Triangles);
            GL.Vertex2(10, 20);
            GL.Vertex2(100, 20);
            GL.Vertex2(100, 50);
            GL.End();
            glControl1.SwapBuffers();
        }

        private void SetupViewport()
        {
            int w = glControl1.Width;
            int h = glControl1.Height;
            GL.MatrixMode(MatrixMode.Projection);
            GL.LoadIdentity();
            GL.Ortho(0, 200, 0, 200, -1, 1); // Bottom-left corner pixel has coordinate (0, 0)
            GL.Viewport(0, 0, w, h); // Use all of the glControl painting area
        }
    }
}

7 このままビルドしてもうまくいかないので、GLcontorolをクリックしてプロパティにいって「電撃マーク」をクリックし、paintイベントやLoadイベントにソースコードのイベントハンドラメソッドを結びつけます。(これがわからんで最初悩みました)

8 後はビルドして実行するだけです。OpenGLの文法に沿った描画はこのサンプルでは、paintハンドラに書かれてますが、これを参考に後はOpenGLを勉強しましょう。(私も勉強します。)


9 本家マニュアルにはこのあとアニメーションさせる方法とかチュートリアルが続いています。またやる気になれば続きを書くかもしれません。


以上

牛筋、トマト煮

P1070163
今日は余っている、キャベツ、玉ねぎ、にんじん、豚小間
それにセロリと牛筋を買ってきて牛筋のトマト煮

それぞれの食材を適当に切り、水を入れてホールトマト一缶をぶち込んで
コンソメを数個いれて煮るだけです。

うまいですよ。

学び合い反省・有効数字

本日の授業は有効数字の取り扱い
学生に自学自習用の資料や環境を整えて
課題を付与して、自分達で協力して
資料等で調べながら問題を解決していくスタイル

今日は問題量が多すぎて
時間内に終わらない学生が続出してしまった
また、有効数字の問題は計算だけなら中学生でも
できてしまうので、最終的な有効数字の桁数など
どうしてそうなるのか解らない学生が続出した。

また、配った資料を読み解けない可能性もあり。
最初の講義時間を多く取る必要性もある。

これからは難易度も飛躍的に上がっていき
問題の量と、難易度のバランスを考え直さなければならない
また、1人づつ、答え合わせをするスタイルを
考え直さないと3時間の授業ではあるが
消化しきれない感がある。

台車に付けたWebカメラで撮影






昨日買ってきたWebカメラを台車に付けて撮影してみました。
一秒ごとに静止画を取り込んでます。
台車は揺れていますが、どんなところを走っていたかを識別する
目的なら十分ですね。

Webカメラ

つくばのロボに載せて、走行中の画像を自動取得するためにWebカメラを買ってきてみた。
¥1500ぐらいです。この価格で出始めのデジカメより性能いいのです。
欲をだして画像処理に走ると、迷走しそうなので、今年は取り込むだけだと思います。
Webに落ちてたC#のサンプルプログラムで取り込んでみたところ。

はやぶさ帰還


はやぶさの帰還映像です。
ビーコンも受信できたみたいで回収もできそうです
カプセルの中に何か入っていればいいのですが

テレビでは中継がなかったみたいですが残念ですねえ
日本の快挙だというのになあ

読売新聞のいい写真です
http://www.yomiuri.co.jp/zoom/20100613-OYT9I00808.htm

Twitter情報の、はやぶさが最後に取った写真
http://twitpic.com/1wh78q/full

一人、アウトドア系料理で一杯

P1070145
P1070148

はやぶさご帰還記念
ちゃんちゃん焼きと、この前も作ってましたが豚汁

キャベツ、玉ねぎ、人参、ジャガイモ
野菜定番品目をドーンと買ってきて、この二品を作ったです。

なにか独りキャンプな感じのメニューですが
男の独り料理なのですぐ作れるこんなメニューばっかりです。

でもうまい!

これ書きながら食べながら、飲みながらですが汗だくです。

今日はこのままはやぶさの中継を飲みながら見るぞー!

おかえり、はやぶさ!

はやぶさが今日の22時ごろ帰ってきます。
久しぶりにわくわくするニュースです。
こういう仕事にかかわりたいなあ(夢)

中継のホームページ

http://www.ustream.tv/channel/hayabusa-back-to-the-earth?lang=ja_JP

http://hayabusa.jaxa.jp/live/

GPS座標変換の検証

さて、実際に座標変換がうまくいっているのかを検証します。

測量データをGoogleMapでプロット
学校の中庭に辺の長さが3m4m5mの直角三角形を描きます。
各頂点をGPSで3分間測量した緯度経度のデータの平均値を点の緯度経度として使います。
10進緯度経度をGoogleMapにプロットすると下の様になります。



また、この図は上がGoogleEarth下がGoogleMapでの表示です。Mapのほうが真実に近いような気がします。写真や地図の貼り方がEarthとMapでは違うことによる差異かなと解釈しています。

さてMapのほうを信じると、GPS測量の緯度経度は実際に直角三角形を良くあらわしていると思います。ちなみに現地でコンパス計測したところ4mの辺が大体磁北に一致してるようです。

変換プログラムの結果をエクセルで表示
C#で作成した座標変換プログラムの結果をエクセルに取り込んで散布図グラフで表示してみたのが下の図です。うまくいっている感じがします。

60進の緯度経度情報を10進緯度経度へ

GPSから得られるGPGGAセンテンスの緯度経度情報は度分60進法表記で表されています。
また独特のフォーマットなので多少の変換が必要です

GPGGAの緯度経度フォーマット
緯度経度のデータの標記 dddmm.mmmm
といった形式です。桁数は受信機によって違うかもしれません。
小数点から前に数えて3文字目以上の数字が「度」をあらわし2文字目から後が小数点を含めて「分」です。
この表記は60進法なので、分の部分を60で割り算をして度に変換し、度の部分に足してやると10進数で緯度経度を単位を度で表したことになります。変換の流れをC#プログラム風に書くと

double a = 3631.9737;//aにGPSの緯度経度データを代入
int x = (int)(a / 100);//度の成分をxに取りだす。
a = ( a / 100 - (double)x ) *100 / 60;//分を度に変換
a = (double)x + a;//度成分を足して変換終了

うえの流れは変数の型の考えを取り入れているので数学的にはちんぷんかんぷんかもしれません。小数のある実数を整数型の変数(ここではx)にいれると整数部分だけが残ります。
また(int)という表現はキャストと言って(int)の後にある演算結果を整数型に変換するという意味です。()の中に必要な型を入れることによって任意の型変換を実施できます。
ちなみにintは整数型、doubleは実数型です。

玉ねぎ料理わが定番、豚丼!

P1070130
さて、玉ねぎ2個目をどうさばこうかと悩んだ挙句
いつものメニュー豚丼とあいなりました。
今日は事前に日本酒を3合ほどいただきほろ酔い気分で
どんぶり飯をいただきました。

作り方は
豚バラ肉をフライパンに投入、玉ねぎ一個を適当に切り
フライパンに投下
して、しばらく炒めたのちに
日本酒をすこしばかりふりかけ
水をいれ煮立ってきたら調味料を投入
調味料は今回はめんつゆ、さとう、みりんのブレンドです
あとは、ふたを閉めて弱火で3分ばかり煮て
最後に溶き玉子でとじて任務完了です。

どんぶりに炊きたてのご飯をもり、そこにお玉ですくった
この豚丼の具をおしみなくもる。

得も言われぬ、芳香が漂ってきます。

すぐにかっ込みたい気分を少し抑え、豚丼と別に作ってあった
味噌汁を抱えて、わが食卓移動
さて、待ちに待った瞬間がやってまいりました
箸をいれ、一気に口の中にかき込みます
豚肉のプロプリッとした歯ごたえに、すこしサクッとした感じが残る
玉ねぎ、豚肉のうまみが口に広がると少し遅れて玉ねぎの甘みが
広がってきます。
よだれがじゅわーーーーと出てきます

うまーーーー

ということで今日は終わりです。
次は何をつくろうか・・・・

GPSの座標変換

GPSの座標変換について
GPSはアンテナと衛星までの距離を測るセンサーです。
4つ以上の衛星とアンテナ間の距離を測ることによりアンテナの3次元的な位置を割り出します。
NMEA0183のGPGGAセンテンスでは緯度、経度、高さ、ジオイド高等が得られます。(ジオイド高をどうやって得ているのかは今のところ解りません)
移動ロボットの姿勢(位置と向いている方向を含めて姿勢と言っています。)に関しては、緯度経度ではだいぶ使いにくいので、直交座標系で話ができると楽です。
そこで緯度経度から地球中心の直交座標へ変換して更に、地表のある点を原点として、地面が平面だと近似した地平座標に変換してやります。



ECEF座標へ
地球の中心を原点としたデカルト座標をECEF(Earth Center Earth Fixed)座標と言います。変換式はプログラム言語風に書くと以下の様になります。

Lat:緯度
Lon:経度
High:海抜高度(標高)
N:ジオイド高
PI:円周率
Xe,Ye,Ze:ECEF座標

f = 1 / 298.257223563;

a = 6378137;

e = Sqrt(f * (2 - f));

R = a / Sqrt(1 - e*e * Sin(Lat * PI / 180) * Sin(Lat * PI /180));

Xe = (R + High + N) * Cos(Lat * PI / 180) * Cos(Lon * PI / 180);

Ye = (R + High + N) * Cos(Lat * PI / 180) * Sin(Lon * PI / 180);

Ze = (R * (1 - e*e) + High + N) * Sin(Lat * PI / 180);

ENU座標(地平座標)へ
地平座標をENU座標と言います。Eは東西の東のEast、Nは南北の北のNorth、UはアップダウンのUpを表します。緯度経度からENUへはECEFに変換したものもつかいます。またENUでは地球平面上の何処が原点なのかあらかじめ決めておきECEFで保持しておかなければなりません。以下に変換式をプログラム言語風に書くと以下の様になります。

Xe,Ye,Ze:位置を変換したい点のECEF座標
x0,y0,z0:地平座標の原点としたい点のECEF座標
Lat,Lon:位置を変換したい点の緯度経度

E = -Sin(Lon * PI / 180) * (Xe - x0) + Cos(Lon * PI / 180) * (Ye - y0);

N = -Sin(Lat * PI / 180) * Cos(Lon * PI / 180) * (Xe - x0) - Sin(Lat * PI / 180) * Sin(Lon * PI / 180) * (Ye - y0) + Cos(Lat * PI / 180) * (Ze - z0);

U = Cos(Lat * PI / 180) * Cos(Lon * PI / 180) * (Xe - x0) + Cos(Lat) * Sin(Lon * PI / 180) * (Ye - y0) + Sin(Lat * PI / 180) * (Ze - z0);

参考文献:http://www.enri.go.jp/~fks442/K_MUSEN/

キャベツ終了、そして玉ねぎへ・・・

P1070122
キャベツは今日で終了です。
本日のレシピはあきおSの奥方の推薦レシピでした。

キャベツの千切りと玉ねぎのスライスを塩もみして
ツナ缶を入れてマヨネーズであえました。

うまー\(^o^)/

結論をいえば
キャベツ1個ぐらいはなくそうと思えばわけないということ
そして1週間ぐらいは全然平気に食べられるということです。
もう一周できる違うレシピが欲しいところです

実験としてはもう少し長く使ってどこまで食べられるか
確かめればよかったですね。

そして、このレシピを作るために玉ねぎを4個も買ってきてしまい
この次からは玉ねぎ編です。

玉ねぎもよいレシピ募集してます!

NMEAフォーマットのGPGGAセンテンス

忘れないように
GPGGAセンテンスは$GPGGAからはじまり次の順で並んでいる
UTC時刻 hhmmss
緯度 ddmm.mmm
北か南か N or S
経度 dddmm.mmm
東か西か E or W
状態 0:ダメ 1:単独測位 2:DGPS
衛星数
HDOP 水平精度の良しあし
海抜高度 ジオイドからの高さと理解している
海抜高度の単位 m
ジオイド高
ジオイド高の単位
エイジ DGPS補正データの古さ
DGPS基準局ID
*
チェックサムサム $の次の文字から*直前までの文字までの排他論理和

てな感じですがいつも海抜高度と
ジオイド高との関係が解らなくなって困ります。

地球を楕円体とみなした時の理想的な楕円体から
ジオイド面までの距離がジオイド高で

ジオイド面からアンテナまでの距離が
海抜高度と理解しています。

だからこれらの値を足すと楕円体からの高さである
楕円体高になると考えてます。

間違っていたら教えてください。

排他論理和とはXORどちらか片方が真の時だけ
真になる論理演算。
ORとの違いはORは両方真の時は真だけれど、XORはその場合偽。

ちなみにチェックサムはコンマも入るんだろうか?

キャベツ味噌汁

ここのところロボコンの締め切りなどがあり
帰りが遅く、キャベツ料理をする暇がなかった
5日前の火曜日に買ったキャベツはまだ元気です。
今日はまだ残っていた、豚バラ肉を鍋でごま油で
炒めて、キャベツをいれしんなりするまで炒め
ネギとニンニクを投入してトン汁風の味噌汁を
こさえました。
中々おいしいです。明日の朝にも食べられそうです。

P1070117

移動ロボットの誘導についての話を書きます

私が入門者みたいなものですが備忘録と若干でも皆さんのお役に立ればと、ロボットの誘導について、ぼちぼち書かせていただきますのでよろしくお願いします。まずはこれからという方たちに参考になればと思います。

キャベツ続報

いろいろやってみようと思っても
今日は忙しく家に帰りついたのは10時過ぎ
でも、今日は昨日予告したものを作りました。

バラ肉のスライスを炒め、千切り状のキャベツ4分の1個分
を炒め、しんなりしてきたら溶き玉子2個分をいれた
お好み焼き風のおかずです。

しかし、キャベツ4分の1個分は少し多かったかも。
寝る前にこんなに食っていいのだろうか?

一人暮らし腐らせないでキャベツ一個で何を作れるか



●一人暮らしの食の悩み
全国の一人暮らしの独身男女の皆様
日々の食事にいろいろ悩みますよね。

開き直って、3食外食
自炊に挑戦したけれど3日坊主
買った食材があまり冷蔵庫の中で新種の生物に変化・・・

でも、外食が多くなると出費も半端じゃないので
やはり自炊が安上がりです。
また、塩分過多、野菜不足や揚げ物が多くなるのが
外食の特徴でアラフォー世代は健康管理にも
気を使わなければならないので毎日外食は困りものです。

●昼はスーパー惣菜系のり弁当
ここ一カ月以上、昼飯は弁当を作って持って行くようになりました
まだ続いているので自分的にもがんばってるなあ思います。
ただ、行きつけだった定食屋さんにたまには行きたいので
最近つけ始めた家計簿で出費の動向がわかったら、月に何回かは
行きたいと思います。

弁当の中身はスーパーの200円ぐらいのきんぴらとかひじきなどの惣菜を3種類ぐらい
買い置きしておき、それを弁当に詰めます。
コメは夜寝る前に研いでタイマーセットで朝炊きあがるようにしておきます。
で、弁当箱にコメを詰めますがこのときはのり弁にします。
のりは奮発してお寿司屋さんで使ってる田庄の5つ星です。

実験によるとスーパーの総菜は7日はお腹を壊さないで食べられます。
日にちをずらして違う種類を買っておくと毎日違う組み合わせを楽しめます。

●夕ご飯:豆腐の味噌汁が今後の課題
夕ご飯は、納豆、味噌汁、惣菜が基本メニューです。弁当用の惣菜の流用です。
味噌汁は出し入りの味噌をスプーンですくって、食べるお椀で熱湯で溶いて増えるわかめと
刻んだネギを入れて出来上がり。奮発するときはあおさ海苔を入れます。
最近、豆腐を入れられないかと思いますが、味噌汁一杯分の豆腐は
そんなに使わないので余って腐らせないか心配なので今後研究してみたいと思います。

●朝ごはん
朝ごはんはスーパーでかったヤマザキのランチパックと牛乳が基本になってます

●食費
総菜は3種類で600円ぐらいです。それを昼夜たべても3日間は食べられるので
1日200円で済んでる計算になります。10kgのコメを日割り計算したり、味噌代とか
考えると一日の食費はもう少しかかります。
当初、一日1300円の予算計画でしたが、いざやり始めるとだいぶ圧縮できそうな気配です。

●自分で作る
材料を悪くしたり手間を考えると惣菜大作戦はいいのですが、やはり自分で作ったほうが
食べたいものが食べられるしおいしくも感じます。
しかし、食材を余らせて腐らせるのが嫌なので二の足を踏むことが多いのではないでしょうか。

●キャベツ大作戦
そこで、今回、キャベツで実験を試みています。
キャベツ1個を買ってきて、きっちり使い切るまでにどのくらいかかるか
なるべく毎日違うレシピにしてどんなものが作れるのかを実践します。
とりあえずキャベツ一個と豚バラスライス250gを買ってきました。
一日目の今日は自分の定番である、冷しゃぶです。
キャベツ4分の1を千切りにして、ゆでた豚バラ肉を上に載せて
ノンオイル青じそドレッシングをかけて出来上がり。
まあ、料理というほどのものではありません。

明日は、同じく豚バラとキャベツを炒めて玉子でとじていただく予定です。
3日目はまだ決まらずです。何かアドバイスがあったらお願いします。

Twitter

    follow me on Twitter

    フォロワー