2年目のETロボコンに向けてプラットフォームの知識を深めよう
本記事はETロボコン Advent Calendar 2016 7日目のエントリです。
3年目のETロボコン Advent Calendar。リタイアさせるのはもったいないので12/6が終わる10分前から書き始めました。が、@yuri_at_earthさんが先にフォローに入ってくださったので12/7のエントリに鞍替えしました...orz
というわけで、EV3RTを使用するETロボコン初心者を対象にざっくりと書きます。
プラットフォームの仕様書を読もう
はじめてEV3RTを使う人はきっとこのページを眺めていることでしょう。
そしてたどり着くのはこのページ。
とりあえずサンプルプログラムを動かして、モータやセンサを扱えるようになって、プラットフォームでできることを理解した気になりがちです。おそらくここで1年目のETロボコンが終わります。
そんなあなたには、2年目に向けてこの仕様書を読んで欲しいです。
TOPPERS新世代カーネル統合仕様書 Release 1.7.1
EV3RTでできること
あたりまえですがEV3RTはれっきとしたリアルタイムOSです。Webページにも「TOPPERS/HRP2カーネルをベースとした」とありますね。従って「TOPPERS/HRP2カーネル」で使えるAPIはEV3RTでも使えます。
あなたは気づいていましたか?
- EV3RTが4ms周期ごとに自動でタスク実行してくれること(参照:周期ハンドラ)
- タスク間で同期をとったり、情報をやり取りする手段があること(参照:イベントフラグ、データキュー、メールボックスなど)
- 排他制御を行えること(参照:セマフォ、ミューテックス)
これらを知っているだけでも設計の幅は広がりますし、無用なトラブルを回避できることでしょう。
仕様書を読むコツ
1. わからない用語をわからないままにしない
普段から組込み業界に精通している人であれば用語に躓くことはないと思いますが、そうでない人は専門用語が多く、何が書かれているかさっぱり理解できないかもしれません。
しかし、使われている専門用語の大半はTOPPERSに限らずリアルタイムOS界隈で一般的に使われる用語ですので、Google先生に聞けば詳しく解説しているページが見つかります。
未知の専門用語を、自分がわかる用語に変えていくことが理解の近道です。
2. それでもわからなければ、メーリングリストに投げる
きっと、誰かが教えてくれます。
まとめ
本記事ではETロボコン初心者向けにプラットフォームの仕様書を読むことの重要性を説きました。熟練者にはあたりまえな内容だったと思います。初心者チームが熟練者チームに追いつくための一つのきっかけとなれば幸いです。
ETロボコンはモデリングに重きをおいたコンテストですが、実装技術に触れる場でも合ってほしいという思いがありこのテーマで筆を取った次第です。
追伸
あまり技術には踏み込んでいないのでQiitaではなく個人のブログに書きました。悪しからず。