- Nuxt/Springboot
- 店長候補
- 関連グッズ・梱包材の開発
- Other occupations (18)
- Development
- Business
- Other
どーも、やらかしマウンテンからバトンを渡された竹上です。
みなさんはロボットの開発というと、どんなものを考えますか?AIとか、機械学習みたいな「最先端のテクノロジー!」ってなるか、アトムやドラえもんみたいな「キャラクター」っぽいものを想像することが多いと思うんですけど、実際は結構じみぃなことが多いです。今日はそんなちょっと地味だけど大事な、ロボットの話をしてみようと思います。
納豆の話もいいけど、ちゃんとした記事を書いてくださいってめん たい子さん(22)に怒られたので、ちょっと真面目に記事を書きました(※この記事は7月19日に修正されています。)
今日の話は、たぶんメーカーの方とかにとっては「当たり前じゃん」てなっちゃうとは思うんですけど、ハードウェアってどうやって作るの?みたいなばっくりした話になります。
まずは自己紹介から。
自己紹介
改めまして、竹上 宏幸(たけがみ ひろゆき)です。ツイッターとかやってるんで、ぜひフォローしてください。前はSIerとして主にウェブ系とか、サーバーサイドの仕事とか、なんでもやってて、緑のリスの会社(って古いかな)のサイト関連とかのお仕事とかもやってました。
だいたい、上位側が多いので、いま組み込みエンジニアっていうとよく驚かれるし、できるのか?みたいな感じに思われるんで、今日の後半にちょっと書いていきます。ちなみにハニートラップは「たけがみ ひろゆき」とイニシャルが同じなんで中2んときから使ってまーす。今日は
ロボットの開発のはなし
いまは、ファームウェアとか組み込みとか、主にソフトウェア側からハード側とのつなぎをやってます。ロボットつくってるっていうとよく人工知能がーとか言われます。たしかにうちにも壁に数式を書いてとまらなかったり、なんちゃら学習が〜とか悶絶してたり、論文の話を酒の肴にしてる、ちょっと変わった人達もいますけどね。でも僕は、あんまりわかってないんで。
どちらかっていうと実機=モノとしてのロボットを動かすことをやってて、社内ではチームTって言われてます。チームTのTは竹上のTです。SW的な視点でファームを書く人がチームで一人しかいなくてさみしいです。だれか入ってください。
開発の流れ(自分がやってるところメイン)
もう少し、ちゃんと説明すると、基本的に①デバイスの開発と、そのあとに②デバイスと通信して入出力をできるようにするという2段階に分かれます。
それをもう少しブレイクダウンすると、デバイス開発はセンサーの選定からはじめて、選定したセンサー構成を決め、そのあとにそれらのセンサーを載せる基板の設計をやるっていうのが大まかな順番です。うちの会社はセンサーとかは基本買ってくるので、いろんなところから出てるセンサーを比べてみたりもします。いわゆるハードウェア開発のとこっすね(外装とか、ちょっと詳細なとこは飛ばしてますけど気にしない!)
そのあとにデバイスと通信して入出力をできるようにする、ってところがハードとソフトを結合させるところで、まずセンサーとマイコンに通信してもらってデータを取得したり、マイコンと通信してデバイスを動かしたり、あとはマイコンのプログラムを開発します。
で、こういう風にしてやっとデータのやり取りとかができるようになったら、なんかやりたいことができるようになりますね。例えばモーターを動かして走らせるとか、LEDを光らせるとか、いろいろできます。
で、ハード・ソフト結合をやるのがぼくらTeam Tって感じです。
チーム紹介
そんな感じの仕事をしているTeam Tですが、要はファームウェア開発のチームでありながら、ファームウェアだけ書いている人はいない、っていうのが現状です。みんなハードでメカ・電気回路作ったり、OSのところを書いたりする人が兼任してます。あと、みんなお酒は好きです。
なんでかっていうと、ファームってずーっとやっている仕事って感じではないんですよね。ハードってセンサー決まっちゃえば仕様ってめったに変わんないし、構成を変えたりすることも少ないんで。あと、いまは開発期だからっているのもあるんですが、基本的に機能追加は今のところやってないです。なので、新しい仕事が増えていくというよりは、バグをつぶしたり、効率よくしてヌルヌル動くようにしたりするのがメインです。
なので、おれもファームができてきたらもっと上位のところを書いたりしてます。
アプリとファーム、違うようで意外と近い
さっきも書いたんですが、アプリやってる人ってファームとか難しいって思ってるんじゃないかなって考えています。でも、意外と似てる部分もあって、オンラインのアプリケーションだと、クライアント(みんなのパソコンとかですね)があって、サービスする側にサーバーがあって、その間をデータが行ったり来たりしています。
だけど、これをもう少し近い距離でやっているのがファームで、マイコンとかセンサーとかのデバイスというクライアントから、メインのPCというかCPUというサーバーに飛ばすようなもんだと思います。
なので、思想はそこまで変わんないからみんなやればいいのになって思ってます。意外とアプリやっててよかったなぁって思ってるのは、アプリ層の実装を意識して設計ができるので、レイテンシーとか、通信速度を減らしたり、逆に冗長にしたりしてどう表現されるかってところができる気がしてます。あと最後に、ファームやってよかったなってことは、やっぱり動くロボットに一番最初に立ち会えるというか、自分が初めて動かすひとになるので結構感動しますね。漫画とかでも研究所で初めてろぼっとが目覚めるとかあると思うんですけど、あんな感じに近いです。
長くなっちゃいましたけど、ロボットって結構領域が広くて大変なので、いろんなことにチャレンジしながらやってくれる人がいたらいいなって思ってます。だけど、やっぱり一番大事なのはおいしいお酒が飲めることなので、飲みたい人は声かけてください!(あと納豆食べたい人も)読んでいただいてありがとうございます!