どうも今晩は。コンピュータサイエンスコース3年生のStep-QIスクール受講生です。
僕はアドバンスド創造工学研修で大堀研にお邪魔し、smlsharpという言語の補助ツールの開発をしています。

smlsharpはStandard MLという古くから存在している言語を実用上重要な機能を拡張した次世代の関数型言語です。
特に重要な機能としてC言語とのシームレスな連携、というものがあります。
現在smlsharpは言語の機能として、C言語で書かれたライブラリから関数をインポートできます。
これは強力な機能でなにせC言語は歴史のある言語です。有用なライブラリが多数利用できます。

ですが、今のところこれらを利用するためにインポートの宣言を手打ちする必要があります。それをC言語のヘッダーファイルから自動生成しよう、という試みです。

自動生成すると、色々と良いことがあります。
まず人間の作業の手間を減らす、ということが当たり前にあるのですが自動生成によって信頼性を向上させる、というのも重要な側面です。
人間の手で書いたプログラムなんてどこに打ち間違えやら勘違いがあるかわかったものではありません。
ハンドメイドのものを喜ぶ文化なんてありません。自動生成にするよって、システムの信頼性を上げるという目的もあります。

というわけでスタートしたプロジェクトだったのですが、MLを用いた開発で規模の大きい(ソースファイルを分割する必要のある規模で)開発を行うのは初めてだったのでツールの使い方から開発方法まで苦労しました。
まずEmacsエディタのセットアップ、Linux-FamilyのOSのインストールから始まり端末の使い方まで。

Emacsはカスタマイズ性の高いテキストエディタで、独特の強力なショートカットコマンドが多数実装されており、主にUNIXユーザーの間で使われるツールです。
慣れると非常に便利なのですが、殆どの作業をショートカットコマンドで行うので慣れないと全然使いものにならないクセのあるエディタでした。
ツールの設定もLISPで行わないといけないところもあるし。

今ではEmacsのキーバインドにWindowsのメモ帳でC-aを押すと全選択になるのに一々イラッとする程度にまで慣れたのですが、スタート時は大変でした
なんで一般的なツールは全選択になっているのでしょうか、そんなに使うんでしょうか。
(Emacsでは文頭に現在位置を移動 というコマンドになっているのです)

Standard MLをコードの整形などサポートしてくれるツールがあるから、という理由でEmacsが選ばれているのですが、
今では殆どの時間をエディタと向かい合うことになる我々としては強力なエディタに慣れておくのは実用上重要で良い経験をした、と思っております。

研修自体は週一回集まって、受講生がその週で出来た成果を大堀研のスタッフの方々に見てもらう、という形式で行っています。
週一で何か必ず見せられるところまで作業しておこなければいけない、というのは大変で週に実験の授業が2回みたいです。3回くらい血を吐きそうになりました。
(知り合いの参加者が全員同じ事言っているので僕達だけじゃないと思われますが)
毎度指摘される部分が多々あり、そのたびにもっと頑張らねばなぁと思う次第です。

僕たちはサイエンス・インカレには参加しませんが、PPL2013にポスター発表で申し込み予定です。もうちょっと頑張ろうと常々思っております。

STEP QI SCHOOL BLOG アドバンス創造工学研修

はじめましてStep Qiスクール受講生の
情報ナノエレクトロニクスコース3年
山田あずさです。

私は学生実験室で、「FPGA/マイコン-ハイブリッド制御システムを導入した自律走行ロボット作製」というテーマで他2年生2人と、アドバンス創造工学に取り組んでいます。

最初にマイコン(Arduino)について学び、
ロボット自身で、道をみつけ、探索し軌跡を地図化できるシステム構築を考えました。

障害物を感知するために超音波センサを使用し、自律して動けるよう、
プログラムや機体設計を何度も変えました。
実際ロボットを動かし、90度きれいに回転させるため、直進させるために
微調整を繰り返して、実現できました。

今は、地図の作成を目指し、どのようにしたら軌跡を保存し、地図に反映できるか
を考えています。
実際には、ワイヤレス通信でデータをパソコンに送り、パソコンの画面上に
地図を書かせることを考えています。

 

誰もArduinoや地図を書かせるためのprocessingを使用したことが
なく、戸惑うことや、うまくいかないことも多いですが、
個々で空いている時間を利用したり、実験室の先生方に伺ったりして
作業を進めています。
機体の設計からプログラミングまで幅広く学べるので、やりがいがあります。


下の写真は今作製中のロボットです。本体の右側と前方についているのが、

超音波センサです。モータ駆動用と、Arduinoボードを動かすために、

電池を二か所(本体前方と後方)に設置しています。

photo.jpg

東北大学 工学部 電気情報物理工学科
〒980-8579 仙台市青葉区荒巻字青葉 6-6-05 青葉山キャンパス

© 2014 Department of Information and Intelligent Systems, Tohoku University All Rights Reserved.
「Step-QIスクール」は、東北大学工学部 電気情報物理工学科が運営しています。