[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 メーリングリストの案内