30歳過ぎから工学 vol.2

http://d.hatena.ne.jp/j130s/ から移行しました.オープンソースロボットソフトウェア技術者兼主夫. 高校・大学学部文系-->何となくソフトウェア開発業-->退職・渡米,テキサス州でシステムズ工学修士取得,しかし実装の方が楽しいと気付き縁があったロボティクス業界で再就職.現在 Texas 州内の産業用オートメーションのスタートアップに California 州から遠隔勤務.

ソフトウェア工学出身としてのロボティクス分野の開発形態への軽い私見

ちなみに ROS, 研究室でのこの夏のプロジェクトで扱う二台のロボット両方で採用することに決まりそうです (インストールがうまく行ったという初歩的な理由により). ROS は, ロボット開発において共通するコンポーネントが共有されることが無かった状況を憂いたスタンフォード近辺の人が, 汎用性の高いモジュール群をオープンソースとして開発したものです.
私はまだ今の電気工学の教員, 学生が中心の研究室で活動し始めて一ヶ月ではありますが, 恐れ多くもたったそれだけの経験から言うと, ロボティクス分野でこれまで ROS のようなものが無かったのも頷けます*1. ロボティクスは計算機科学/工学でも扱われるものの, きっとこれまでロボット分野への関与度が最も高いのは機械工学や電気工学の人達だったのでしょう, 例え学部生レベルでも良いからソフトウェア工学をかじっていれば, 少しでもモジュラリティ, 再利用性を意識した設計をするだろうに, 少なくとも今見ている限りでは電気工学の学生にモジュラリティと言っても理解しません. 動くことが大事で, 例外処理や再利用性, デバッグのしやすさなんてまったく念頭にない. ということで, 一介の研究室で目にしている事例と, 世界的に利用範囲が拡大されつつあるソフトウェアにちなんだ事例という, 少々隔たりが大きい二つサンプルのみからの推測ですが, (私のような)ソフトウェア工学の人でも貢献できる範囲はとても大きそうです. 同じソフトウェア側でも, 計算機科学(コンピュータサイエンス)の人のように難しいアルゴリズムを考案できなくとも, ソフトウェアエンジニアにも汎用性・再利用性の高いソフトはかなり求められている.
Jun 29 後記) こんな記事を発見. なるほど.連載:SEのためのRTシステム概論 第2回 ロボットソフトウエアと標準化


誤解を恐れずに言えば、10,000行を1本のモジュールで作り上げる、これがロボット開発の現状です。少なくとも、流用可能なモジュールを組み上げて作るという発想は、これまでのロボット開発にはありません。
メカが中心で、ソフトウエアの役割が小さかったことも理由の1つでしょう。また、ビジネスの前に技術課題を克服する研究が主であったことも理由の1つだと思います。いずれにしろ、モジュール化が進んでいないことが、メーカー内のクローズドな垂直統合型開発の温床になっていると思います。
ですが、ついに、ロボットも10000行を200本のモジュールで作る時代がやってきました。これを実現するのがRTC(Robotic Technology Component)という考え方です。
ところで日本発で標準ミドルウェアを, という動きもあったようですね. 開発はどうなっているんだろう. 仕様は UML を扱うことで知られる OMG が管理しているようですが. やはりインターネット・オープンソースのこの時代, しっかりした仕様を作るのはシステム屋としては大事と思う一方, とっとと動くものを作らないと ROS のように関心を集められないのかも知れない.

先週は週四回ホームパーティに招いて頂く. 趣旨も人種も色々で楽しくも勉強になりました. そしてナイス食事山盛りなおかげで, 結構運動もしたのにまったく体重減らず...写真は GF 勤務先同僚の中国人ポスドクベジタリアンの為に作った伝統的中華 + 肉抜きパエリア. 脂いっぱいなので結局コッテリだけど, 肉抜きなのでやっぱりどこかサパーリ.

*1:その後の調べで無いことは無いということも分かってきてはいます. 産総研 RTミドルウェアや本稿にも追記した RTC 等. いづれも日本か...海外はどうなんだろう.