フォローしました目次リアルタイム絶対位置検出についてキューブを特定の位置に移動させるには?6台ぐるぐるデモの構成まとめこんにちは。ソフトウェア担当のYDです。今回は前回紹介したキューブがぐるぐる回るデモについて解説したいと思います。2019で登壇およびデモ展示をしてきました。大きな特徴の一つとして「リアルタイム絶対位置検出」があります。(トイオ)は、創意工夫する力を引き出すキューブ型のロボットトイです。toioに搭載された様々な技術に関する説明ペtoio.ioこれはマットの上に置かれたキューブの絶対位置と角度(向いている方向)をリアルタイムに検出する技術です。これらの情報を使うことでキューブを特定の位置に移動させたり、複数のキューブが互いを認識しているかのような動きを作ることができます。キューブを特定の位置に移動させるには?では具体的に特定の位置にキューブを移動させるにはどうしたらよいでしょうか?キューブは左右のタイヤを前後に回転させて移動します。そのため真横には移動できず、特定の位置にキューブを移動させるためには左右のタイヤの回転のバランスを調整しながら動かす必要があります。目標位置に対して左右のタイヤをどれくらい回転させるかについてはロボットのナビゲーションの分野で様々なアルゴリズムが開発されていますが、冒頭のデモでは非常に単純なアルゴリズムを使っています。アルゴリズム全体の流れとしては次の3ステップで構成されます。以下は実際に左右のタイヤの速度を計算するコード例(JavaScript)です。}}(コメント・空行を省くと約20行!)ステップ3のratioやspeedの値を工夫することで、「蛇行しながら進む」「ゆっくり近づいて止まる」などの動きを付けることができます。この処理で得られた速度でキューブを動かしますが、動かすとキューブ同士の位置関係が変わるので再度計算が必要です。デモでは50msごとに速度の計算とキューブへのタイヤの回転指示を行っています。最後に冒頭でも紹介した6台ぐるぐるデモの構成について簡単に紹介します。Proに接続し、50msごとにそれぞれ前のキューブとの位置関係から各キューブの左右のタイヤの速度を計算し、移動の指示をしています。Proから送られてきた速度指示の通りにタイヤを回転させているだけです。Proは6台のキューブと接続し、キューブを配列で管理して頭から2つづつ取り出して速度計算をしています。(マットに置いたときに一番近いキューブを追いかけるように配列に入れるときに工夫しています)まとめ以上がキューブがぐるぐる回るデモの解説でした。ここで紹介したアルゴリズムは、キューブを特定の位置に移動させたい時にお勧めです。toio.jsのサンプルにも入っているので是非参考にして、独自の動きへの拡張など試してみてください。toio/togithub.com今回の解説はここで終了ですが、技術的に解説したいトピックができたときにはまたnote記事にしたいと思います。「こういう話が聞きたい!」という要望があれば、是非コメント欄や公式ツイッターまでお寄せください。お願いします!ダウンロード#プログラミング#作ってみた#toioこの記事が気に入ったら、サポートをしてみませんか?気軽にクリエイターを支援できます。サポートをする「スキ」を押してクリエイターを応援しよう!ナイストイオ!3toioTM公式つくって、あそんで、ひらめいて。考えながら夢中になる。偶然の発見が、もっともっと!を引き出していく。研究から生まれた、創意工夫を引き出すロボットトイです。なっとく!アルゴリズ...86まりーな/エンジニアポートフォリオサイトを公開しました。...30ぷらいまり。