弱小だったtdiがETロボコン東京地区大会で総合優勝できたわけ・後編

Pocket

2017年9月2、3日に早稲田大学西早稲田キャンパスにて開催されたETロボコン東京地区大会で、tdiのtadaima G2チームは、当社初となる総合優勝(1日目)を達成することができました。

今までランキング上位に入ることすらできない弱小チームだったtdiが、総合優勝することができた経緯と取り組みについて、前編では、tdiのETロボコン参戦の歴史や心得、方針設定など開発以外のことを中心にお伝えしました。

 

後編は、ナレッジの引き継ぎ方や開発・テスト方法などについて、詳しくご紹介いたします。

理由5:技術と知識のスムーズなトランスファー

前編でも述べましたが、tdiの2015年度までの体制では、次の世代へナレッジを残すことができず、毎年ほぼいちからロボコン活動を始めるといった状況でした。

2016年度から専任体制でロボコン活動を行うようになり、この2017年度に初めて、前年度メンバーからのナレッジ引き継ぎが行われました。このために、私たちは主に2つのツールを使いました。

SharePointでナレッジを蓄積・活用

基本的なドキュメント管理は、Microsoft社のSharePointを使いました。また、SharePointのWiki作成機能も活用し、必要な情報に簡単にアクセスできるように工夫しました。ちなみに、ナレッジの内容としては、実装(基本走行、難所)、モデル作成手順、テスト方法など、自らが行なったことに対する結果やポイントをまとめるようにしています。 

グループチャットですぐに質問

現状の情報共有や連絡事項などのコミュニケーションには、グループチャットツールを活用しました。メールでは社外のお客様企業でで働いている先輩方と、気軽に連絡ができませんでした。このツールのおかげで、ドキュメントではわからないことも、先輩方がどこにいても質問できました。

 

私たちは、新人研修が終わった6月末からロボコン活動を始めたため、東京地区大会まで約2か月しか残されておらず、スムーズにモデル作成やソフトウェア開発を行う必要がありました。上述のツールを使いこなすことで、前年度のナレッジを引き継ぎ、効率良くロボコン活動を進めることができました。

もちろん、ツールの導入がナレッジ引き継ぎのすべてではありません。先輩方が自分の時間を割いて、難所のリスク分析や試走会での動画撮影など、幅広く手厚いサポートをしてくださったからこそ、このツールたちを活かすことができたと思っています。

理由6:スクラム開発でリスク軽減

tadaima G2では、アジャイル開発の代表的な手法であるスクラム開発を取り入れてロボコン活動を行いました。

私たちが行ったスクラム開発方法では、スプリント期間を1週間としました。おおまかな内容は以下の通りです。

  • 週初め:スプリント計画
  • 週末:スプリントレビュー
    • 現状の進捗報告を兼ねたプチ試走会
    • KPT(Keep/Problem/Try)法でスプリント期間の活動を振り返り

また、毎朝デイリースクラムをし、昨日までの進捗とその日に行うタスクの共有をしていました。

打ち合わせや報告ばかりじゃないかと思うかもしれませんが、私個人としては、このスクラム形式の開発メリットは3点あり、その結果としてチームのリスク軽減に繋がったと感じています。

チームの課題を早期に発見できる

デイリースクラムやスプリントレビューで進捗具合を常に報告するため、問題課題の早期発見ができました。「現状のプログラムではリスクが高く、もっとリスクを抑え安全な方法を検討したほうがよい」といったアドバイスを早めもらうことができるので、早い段階での軌道修正が可能でした。

自立的なチームにつながる

チームの一人一人が、ゴールに向けたタスクを自分で考え、各担当部分を責任感を持って進めていくことができます。ただし、スクラムなので、タスクを個人だけのもの(責任)にせず、チームで着手するという面もあります。また、進捗の遅れ具合が明確になるため、少し余裕がある人が遅れているタスクのカバーをするなどチームワーク力の向上にもつながりました。 

柔軟性が高い

tadaima G2の開発では、「今週1週間、別の手法を試してみて、実装できそうになければ従来の方法で精度を上げていく」ことが何度かありました。このように状況の変化に対して柔軟に対応できたのは、スクラム開発だったからだと思います。

かんばんのイメージ(ぼやかしています)

なお、進捗や課題管理には「かんばん」を利用しました。チームとしてのタスクをかんばんに貼って開発を進めることで、進捗を見える化することができ、順調に進行しているタスク、遅れているタスクをすぐに把握することができます。進捗を見える化することは重要なポイントです。

理由7:バージョン管理で効率的なパラメータ調整

ロボコンでプログラム実装に携わったことがある人なら、精度上げの際に、基本走行のPID制御などでパラメータの微調整を繰り返し行なったことがあるのではないでしょうか。

このような時、「前のパラメータの方がうまくいっていた」、「変更するべきではなかったパラメータを変更してしまったので前のに戻したい」ということが多々あります。私たちのチームでも、カーブでのPIDパラメータ調整をひたすら繰り返し行っていたときに、何度もその目に遭いました。

そこで役に立つのがプログラムのバージョン管理です。tadaima G2ではGitをバージョン管理に利用しました。

最初からGitをスムーズに使えていたかというと、そうではありません。私たちがGitを使い始めたのは各担当部分のプログラムが完成し、それぞれをマージするタイミングだったのですが、そもそもバージョン管理についてよく分かっておらず、ブランチを切る?コミット?プッシュって何?という状況で、慣れるまで非常に時間がかかりました。また、各々でコードの書き方が違ったため、基本走行から難所へのつなぎがうまくできておらず、統一するために一から書き直すなど苦労する場面もありました。

Gitの良い点は、プログラムの変更した箇所の理由が記載できるため、誰が何のために変更をしたのかすぐに分かることです。開発を分担して行っている場合も、Conflictに気を付ければ、同時並行で進めていくことも可能です。

tadaima G2は基本走行と各難所で役割分担をして実装を行っていたため、時間がない中で効率よく開発を進めていくのに役に立ったと感じています。

最初は慣れるのに苦労すると思いますが、チームメンバーが同じリポジトリを使用して、バージョン管理、分担開発、ソースコード共有を行うことでソフトウェア開発をスムーズに行うことができるのでぜひ活用してみてください。

理由8:ロボットも人と同じ!時には休息も必要

tadaima G2で使ったロボットたち
tadaima G2で使ったロボットたち

競技で使用するロボットは、一見見た目は同じですが、実際には人と同じで1体1体に個性(個体差)があります。

あるロボットで完走率が90%以上のプログラムでも、ロボットが変わるとセンサーやモータの個体差によって、全くうまくいかないことがあります。ロボットごとにパラメータを調整するのもありですが、すごく時間がかかってしまいます。

もし複数ロボットをお持ちの場合は、予め本番で使用するロボットを決めておくとよいです。tadaima G2では、計4体のロボットを作成し、各担当ごとに自分のロボットを使って実装を行っていましたが、最終的に前編でも少しご紹介した「ちーず」に東京地区大会で走ってもらうことに決めました。そして大会直前1週間前からは「ちーず」を使った精度上げのためのテスト走行を行いました。

テスト走行では、完走率100%の精度を目指して、大会本番でも使用する電池(EVOLTA)を使い、より本番に近い環境で、1日中パラメータ調整をしていました。

ただ、1日中ノンストップでテストをしていたところ、ルックアップゲート通過時に突如、ロボットの尻尾が制御を失い、転倒をするということが数回ありました。原因は明らかにはなっていませんが、恐らくモータの発熱による影響ではないかと考え、それ以降は、「間隔をあけてロボットを休ませながらテストをする」という方法に切り替えました。この方法に切り替えてからは、異常な挙動は見られず、結果的に本番でもL/Rコースともにパーフェクトで完走することができました。

ロボットも人と同じで、常に働かせると疲れが出てくるので、お気をつけください。

おわりに

前編・後編に分けて、私たちtadaima G2が東京地区大会で総合優勝できたわけについてご紹介してきました。この内容を実践したからこそ、tdiは一気にランクアップして成長できたのですが、その中でも欠かすことができない要素が「他チームとの交流会」です。

2017年度は、他チームとの交流を通じて、多くの知識や技術を学ぶことができ、その結果ETロボコンCS大会でもワンランク上の走行ができました。交流してくださった皆様には心より感謝しております。

さらに上を目指していくために、今後もこのような交流は続けていきたいと考えています。ここではご紹介し切れなかった総合優勝につながった理由もありますので、 「他の理由も気になる!」「一緒にロボコン勉強会/プレ試走会をしたい!」という方は、ぜひこちら(連絡先:tdi-roboconアットマークg.tdi.co.jp)までご連絡いただけると幸いです。お待ちしております。

お問い合わせ先

執筆者プロフィール

Kubota Wataru
Kubota Watarutdi デジタルイノベーション技術部
配属後、ロボコン担当として、ETロボコン2017東京地区大会優勝・ITAロボコン2017優勝に貢献。現在は、AIチームの一員として、機械学習、ディープラーニングなどに挑戦しています。
Pocket

関連記事