2025年1月27日
021-2.SPIKEプライムヒント集-第11回「ロボットの位置から角度を求めるには?」
この連載ではロボットコンテスト(ロボコン)で役立つロボット作りのヒントを紹介していきたいと思います。ヒントを実感しやすいように、ここでは競技風の「お題」を出します。お題をクリアするロボットを作ってみましょう。自分の手を動かすことが大切です。この記事では「レゴ エデュケーションSPIKEプライム(以下、SPIKE)」とSPIKEアプリ3を使用しています。(文/松原拓也)
◆ アークタンジェントを使う
「Thonny(Pythonの開発環境)」を使って、角度ときょりを算出するプログラムを作ってみました(atan_test.py)。実行すると、画面に「degree(角度)=26.56…」「length(きょり)=223.6…」と表示されます。長さの単位はmmです。ロボットを26.56度に22.3cm移動させればゴール地点です。これでお題はクリアできます。 角度を算出するには「atan(アークタンジェント)」という関数を使います。atanは三角関数の一つで、「かたむきから角度を求める関数」です(Pythonの場合は「かたむきからラジアンを求める関数」ですが、話がややこしくなるので省略します)。 目標地点までのきょりを求めるには「三平方の定理(ピタゴラスの定理)」を使います。式は「sqrt((X方向移動量の二乗)+(Y方向移動量の二乗))」となります。「sqrt」は平方根を求める関数です。
◆ 演算ブロックのtanとatan
◆ 座標から角度を自動で計算する
最終的にロボットは(10cm,10cm)の位置で止まりました。
想定したとおりの場所に動かすことができました。 このように三角関数を使うと、角度を扱うプログラムが作れるようになります。
今回作成したプログラム(SPIKEアプリ3用)
当ブログの内容は、弊社製品の活用に関する参考情報として提供しております。
記載されている情報は、正確性や動作を保証するものではありません。皆さまの創意工夫やアイデアの一助となれば幸いです。