Raspberry Pi Catで津田沼チャレンジ完走!活用例のご紹介

raspicat_challenge ブログ

千葉工業大学 上田隆一先生の研究室(CIT自律ロボット研究室)の方が、アールティの車輪型プラットフォームロボットのひとつである「Raspberry Pi Cat」を使って「津田沼チャレンジ」に挑戦してくださいました!

津田沼チャレンジとは?

千葉工業大学津田沼キャンパスの学内を、移動ロボットが自律走行するという技術チャレンジです。学内700mを自律走行で移動させます。

新型コロナウイルスの影響で今年のつくばチャレンジ(つくば市内の市街地で2007年から毎年開催)が中止となり、千葉工業大学 林原靖男先生の研究室(ロボット設計・制御研究室)の屋外自律移動ロボットチーム主体で独自の大会として10月に津田沼チャレンジを開催することとなったそうです。

つくばチャレンジとは?

「つくばチャレンジ」は、2007年から毎年実施している、つくば市内の遊歩道等の市街地で移動ロボットが自律走行する技術チャレンジです。人々が普段使っているあるがままの実環境(リアルワールド)における、自律走行技術の進歩を目的としています。研究者と地域が協力して行う、先端技術への挑戦と公開実験の場です。
(つくばチャレンジのHPより引用)
詳しくはつくばチャレンジのHPをご覧ください。

津田沼チャレンジでは以下のような課題が設定されていました。

【必須課題】
・自律走行:スタートからゴールまで、約 700m の課題コースを自律走行すること。

【選択課題】
・A 事前走行なしエリア:ある大学の建物内(2号館)、事前走行なしで自律走行すること。
・B 白線検知:大学の敷地内の決められた場所(地面)にある白線を認識すること。
・C 探索対象発見:公園内の探索エリアで、探索対象である複数のマネキン人形発見すること。

各課題の場所

各課題の場所

出場チームは4チーム。

CIT自律移動ロボット研究室からは大学3名、大学院1年の方が1名、計4名のチームで参加され、必須課題のみを選択し、見事完走!おめでとうございます!

津田沼チャレンジのコース

津田沼チャレンジのコース

↑津田沼チャレンジを完走するRaspberry Pi Cat

↑マップになく、かつ見えにくい障害物を上手く避けている様子

Raspberry Pi Catのご紹介

まずは、今回使っていただいた「Raspberry Pi Cat」について簡単にご紹介します。

Raspberry Pi Cat
Raspberry Pi Cat(ラズベリーパイキャット)
200,000円(税別)

アールティの車輪型プラットフォームロボット「Raspberry Pi Mouse」をスケールアップしたROS対応のロボットです。屋外走行にも対応しています。

現在は生産を中止しているため、ショップには陳列していません。
2021年に後継機のV2へリニューアル予定です。

製品について詳しくは製品ページをご覧ください。

 

今回の津田沼チャレンジにどのロボットで出場するか迷っていたところ、研究室にアールティから購入したRaspberry Pi Catがあることを知り、出場機体として選んでくださったそうです。

Navigationパッケージも1ヵ月ほど走行を重ねて作成されたそうです。そして、そのリポジトリをGitHubにてオープンソースで公開してくださっています。
https://github.com/uhobeike/raspicat_navigation

出場者インタビュー

アールティからCIT自律ロボット研究室の方に津田沼チャレンジについてのお話を伺いました。

ご協力いただいたのは3年生の池邉さんです。

 

このプロジェクトで目指した研究テーマは何でしょうか?

「ある決められた屋外環境コースでの自律移動による走破」です。

 

ラズパイキャットで実現するときに難しかったことを教えてください。

自分が難しかったと思ったことを挙げると、以下のようなものがあります。

1「屋外でも使用可能な自己位置推定への調整」
2「屋外環境でのマッピング」
3「坂道での自律走行」
4「マップの情報があまりない箇所での走行」

1「屋外でも使用可能な自己位置推定への調整」

1に関しては、屋外での走行の前に屋内で走行させていた時の話なのですが、こちらの動画のように自己位置推定が失敗してうまく走行させることができず、しばらく苦戦していました。

↑自己位置推定が失敗している様子

結果的には、上手くパラメータ調整を行うことでこちらの動画のように上手く自律走行できるようになりました。

↑パラメータ調整後

 

2「屋外環境でのマッピング」

2に関しては、屋内では、すぐ簡単にマップを作成することができるのですが、屋外になると、良い感じなマップを作成することが時間や技術的に難しかったです。こちらの動画は、屋外(千葉工大、津田沼)でマップ作成を行ったものです。

↑マッピングの様子

順調にマップ作成ができていたのですが…
後半辺りを見ていただければわかるように、マップがおかしくなっています。
これは、大失敗かと思われますが、使用したいところまでのマップを保存していたので大問題はありません。
時間があまりなかったので、必要最低限のマップを作成しました。
実際にそのマップを使用して、なんとか完走できました。

実際に使用したマップ

実際に使用したマップ

3「坂道での自律走行」

3に関しては、一番頭を悩ませたことです。低い位置にLiDARが搭載されているので、坂道を上る際に、坂道を壁(障害物)として認識してしまいました。

この問題の発見は、津田沼チャレンジ当日直前の夜だったので本当に困りました。

ソフトウェアで対処は可能ですが、機能性を確認するには何回か実験を行う必要性があり、またバグの温床にもなりかねないため、急いでソフトウェアで対処するより、ハードウェアからのアプローチで対処することにしました。

そのため強引ではありますが、LiDARの隙間に厚紙一枚を差し込んで坂をあまり見ないように対処を行いました。
このことで、ある程度LiDARが傾いてしまいマッピングの時と違う姿勢の状態で自己位置推定を行うことになるので、自己位置推定に支障をきたす心配はありましたが、その問題は顕著化されず、何とか完走することができました。

4「マップの情報があまりない箇所での走行」

4に関しては、2で話したように、必要最低限のマップを作成をしたので、それが原因で生じる問題は多々ありました。

例えばこのような動画ですが、マップの情報が欠けているのが原因で、1つのパーティクルの集団が2つの集団に分裂してしまいます。

↑パーティクル集団が2つに分裂する様子

そのせいで、誤動作を起こしたりしてしまうことがありましたが、その付近で大きな処理をしないなどの工夫をしてなるべく安定して走行できるようにしました。

また当日の話なのですが、この写真の場所が一番難関でした。
3で言っていた坂問題の場所です。
坂問題の場所

坂道問題があって、あまり安定して走行できないうえに、左には当日配置された緑色のコーンがあります。
さらに奥側のマップの情報は持っていないので自己位置推定が破綻して完走できないかもしれないという心配がありましたが、なるべく安定して走行できるように経路計画をさせたおかげか、何とか完走できました。

 

最後に、今回のプロジェクト成功で研究室としてアピールしたいところを教えてください。

今回、上田研(CIT自律ロボット研究室)のチームとして、津田沼チャレンジに挑みました。

自分たちで作業を行ってプロジェクトを成功させたというのもありますが、プロジェクトに直接携わっていない上田研の方々の助けもあって、プロジェクトを成功させることができました。

上田研では週一回のペースでゼミを行うのですが、そこでは主に自分の進捗具合について発表し合います。そういう機会の中で、詰まった問題があった時に色々とアドバイスをもらいました。

上田研は自律ロボットについて研究している研究室です。今後も、自律ロボットに必要な技術について研究していきます。

池邉さん、ありがとうございました!

おわりに

屋外走行となると、予想外の出来事が起きたり苦戦されることがたくさんあったようですね。そしてそれに臨機応変に対処するのも、ロボット競技の醍醐味ですよね。

開発話をたくさん聞かせていただき、ありがとうございます!
そして改めて、完走おめでとうございます!

今回の津田沼チャレンジに関して、QiitaのROS/ROS2 Advent Calendar 2020の方でも「Raspberry Pi Catを使用して屋外自律移動チャレンジに挑んだ話」として池邉さんが投稿されています。
ぜひご覧ください!

Raspberry Pi Catを使用して屋外自律移動チャレンジに挑んだ話 - Qiita
#目次1.この記事の内容について2.津田沼チャレンジでの課題について(#3-Raspberry Pi Catの構成および…

ちなみに、このアドベントカレンダーにはアールティも参加してします!
12月19日(土)に「CRANE+V2の開発裏話」を投稿しました。こちらもご覧いただけると嬉しいです!

CRANE+ V2のROS 2パッケージ開発裏話
私はこれまでにCRANE+V2(クラインプラスブイツー)のROS 2パッケージに関する記事をいくつか投稿してきました。今回はROS 2パッケージを公開するまでの裏事情をお話します。この記事がMoveIt 2やros2_controlを使ってROS 2パッケージを作りたい人の参考になると嬉しいです。

 

タイトルとURLをコピーしました