2021年 第2回 たいチャレ日誌

皆さんこんにちは!
2021年も絶賛活動中!たいチャレ日誌 第2回です。
今回はDJI RoboMaster S1チームから、WebエンジニアKがお送りします。

DJI RoboMaster S1って?

プログラミングの学習・教育用に開発されたロボットです。その名も「RoboMaster S1」!
専用のアプリケーションを使用して、ロボットの動作をプログラムすることができます。

「メカナムホイール」という特殊なタイヤが付いており、なんと車体の向きはそのままで全方向に移動可能!

言語はPythonとScratch(小中学生をメインターゲットとした教育用言語)が利用できるので、
コードを書いてみたい!という人はもちろん、プログラミングが初めての人も安心です!

今回はこの「RoboMaster S1」+Pythonを使い、人を認識して近付いていくプログラムを作成しました。

いざ開発!

RoboMaster S1の開発には、DJIから配信されているアプリケーション「RoboMaster」を使用します。
このアプリケーションからRoboMaster S1に接続することで、プログラミングができるようになります。
ということで、まずはPCにアプリケーションをインストールして起動してみます。
DJIのアカウントを作成し、ログインするとトップメニューが表示されました!

ソロアプリケーションがコントローラとなり、実際にRoboMaster S1を操作することができます。
バトルソロモード同様にRoboMaster S1を操作して、他のRoboMaster S1とバトルすることができます。
レースをしたり、ゲル弾や赤外線ビームによる撃ち合いが楽しめます。
ラボPython、Scratchにより、RoboMaster S1の動きをプログラムすることができます。

今回はプログラミングを行いたいので、「ラボ」に進みます。

「マスターへの道」や「ロボアカデミー」では、ガイドに沿ってRoboMaster S1のプログラミングを学ぶことができます。
初めての方はまずここから進めてみるのもおすすめです。
「DIYプログラミング」を選択すると、いよいよ開発画面が表示されます!

冒頭で紹介した通り、RoboMaster S1はPythonかScratchで開発することができます。
Scratchはこのように動作がブロックで用意されており、これを繋げることでプログラミングを行います。
右上の切り替えアイコン をクリックするとPythonのコードに変換することも可能です。
ブロックをPythonコードに変換した場合の関数名が確認できるので、プログラミングの参考にもなります。

最初から用意されているサンプルコード。Scratchはブロックによる視覚的なプログラミングができます。

そして、今回使用するPythonがこちら。ここで実際にコードを書いて、プログラミングを行います。
こちらにはScratchにあった切り替えアイコン はありません。PythonからScratchへの変換はできないようです。
予め用意されているサンプルやドキュメント、Scratchから変換したコード等を参考にしつつ、プログラミングしていきます!

こちらも同じく、最初から用意されているサンプルコード。

・・・そんなこんなで、完成したコードがこちら。
ぐるりと周囲を見渡しつつ、人を認識したらそちらへ近づいていく、というプログラムです。
(ついでにLEDライトも照射するようにしてみました。)

動かしてみよう!

早速作成したプログラムを動かしてみました。

まとめ

ということで、無事に人を認識して近付いていく(+LEDライト照射)というプログラムを作ることができました!
とはいえ、物にぶつかっても止まらなかったり、人じゃないものを人と認識したりと、若干やんちゃなロボットになってしまいました。
まだまだ研究、改善の余地がありそうです。

今回は「人を認識する」という比較的シンプルな内容でしたが、「RoboMaster S1」には他にも様々な機能が搭載されています。
興味のある方はぜひチャレンジしてみてください!

では、次回のたいチャレ日誌をお楽しみに!

投稿者プロフィール

WebエンジニアK
WebエンジニアK
主にWebシステムの開発を行っています。言語はJava、PHPなどで、フロントエンドもバックエンドもやってます。好きな業務は仕様検討とSQL作成。業務以外でも新しいことに挑戦すべく、たいチャレ参加中です。

前の記事

安全な雪下ろし