[SML 7167] Jun694 for Smalltalk

AOKI Atsushi aoki @ sra.co.jp
2006年 9月 14日 (木) 16:19:25 JST


青木です。

【Jun694】をアップロードしています。どうぞお試しくださいませ。

http://www.sra.co.jp/public/sra/technical/jun/

【じゅんシティ】を作ってみました。およそ百バージョン毎に撮影
しました。GIF アニメーションにしておきましたので、どうぞ皆さ
んもご覧ください。1996年から2006年の十年間の推移になります。

http://www.sra.co.jp/people/aoki/misc/gifs/CityOfJun.gif

【VisualWorks 3.x → 5i.x → 7.x】とインフラが推移するにつれ
て、【じゅん for Smalltalk】のビル群が立ち上がって増えてゆく
のがわかります。(開発プロセスの可視化の一種になるでしょ!)

そうそう、最近、Smalltalk で機器制御プログラムも書きましたよ。
3次元の力覚デバイスで、8本の糸の長さを計測し、8個のモータ
のトルクを制御して力を提示します。2キロヘルツ(0.5 msec.)の
制御速度をノートマシン(Pentium M 2GHz)で出すことに成功しま
した。

#制御プログラムというと C や C++ などが向いていると思われが
#ちですが、これぐらいならば、Smalltalk でもやれるぞ!という
#証拠になります。

試しに【スパイダー・タートル】を作成してみました。タートル・
グラフィックスのタートル(亀)です。スパイダーのグリップを亀
に見立て、ここへゆきなさい、あそこにいきなさい、と指示すると、
そのように動くという代物です。次のようなプログラムになります。

    | spidarTurtle |
    spidarTurtle := SpidarTurtle new.
    spidarTurtle openIn: (100 @ 250 extent: 400 @ 400).
    spidarTurtle
        assert: [spidarTurtle resume]
        do:
            [| amount |
            amount := 6.
            spidarTurtle home.
            spidarTurtle goto: amount , 0 , 0.
            spidarTurtle goto: amount negated , 0 , 0.
            spidarTurtle home.
            spidarTurtle goto: 0 , amount , 0.
            spidarTurtle goto: 0 , amount negated , 0.
            spidarTurtle home.
            spidarTurtle goto: 0 , 0 , amount.
            spidarTurtle goto: 0 , 0 , amount negated.
            spidarTurtle home]
        ensure: [spidarTurtle terminate].
    ^spidarTurtle

このプログラムを実行すると、真ん中にあったグリップが6センチ
だけX軸の正方向に動き、その次に12センチ分、X軸の負方向に
動き、また真ん中に戻り・・・、という具合に、3次元座標軸の上
を行ったり来たりします。

円(正18角形)と星(一筆書き)の GIF アニメーションを置きま
したので、仮想スパイダーの映像として、ご覧になってください。

http://www.sra.co.jp/people/aoki/misc/gifs/circle.gif
http://www.sra.co.jp/people/aoki/misc/gifs/star.gif

計算方式ですが、goto: と言われると、現在の地点から指定された
地点までのまわりに、カテナリー(懸垂線)形状のポテンシャル・
フィールドを作り、垂れ下がった底へ向かって落ちてゆく、という
収斂演算です。8個のモータを操って、糸の張力(並進力とトルク)
を調整するプログラムになります。

【参考URL】
http://resource.renesas.com/lib/jpn/superh/visit/03.html
http://www.pi.titech.ac.jp/press/press0347.html
http://sklab-www.pi.titech.ac.jp/frame_index-j.html

以上、最近の青木の Smalltalk プログラミング報告でした。

【じゅんシティ】や【スパイダー・タートル】にご興味がある方は
ご連絡くださいませ。一緒に頑張ってゆきませう!

------------------------------------------------------------
R2D2 (AOKI Atsushi)        http://www.sra.co.jp/people/aoki/




SML メーリングリストの案内