インターンシップ(小銭)技術情報・開発日誌

CRANE+ V2運動学編 インターンシップ(小銭)Part2

インターンシップ(小銭)

こんにちは、小銭です。インターンシップで書籍「ROS 2とPythonで作って学ぶAIロボット入門」を読み進めながら実際にアームロボットCRANE+ V2を動かしています。前回はCRANE+ V2のセットアップをしました。

CRANE+ V2セットアップ編 インターンシップ(小銭)Part1 
インターンシップでお世話になる小銭です。 8月30日に発売された書籍「ROS 2とPythonで作って学ぶAIロボット入門」にてアールティが販売するアームロボットCRANE+ V2を教材としてご紹介いただきました。今回のインターンでは実際...

今回はアームロボットの基礎知識、運動学を学びました。

インターンシップで使用したもの

8月30日に発売された書籍「ROS 2とPythonで作って学ぶAIロボット入門」にてアールティが販売するアームロボットCRANE+ V2を教材としてご紹介いただきました。

ROS2 と Python で作って学ぶ AI ロボット入門
音声認識・合成、ビジョン、ナビゲーション、マニピュレーション、プランニングといったAIロボットの基礎理論とプログラミング技法をていねいに解説。人工知能とロボット工学の俯瞰的な知識を、手を動かしながら学

CRANE+ V2について詳しくは下記の製品ページをご覧ください

CRANE+ V2
実機で学べるベーシックアームロボット ROS/ROS 2によるロボット開発の学習におすすめの教材用ロボット ROS/ROS 2で安価にアームロボットの開発をしたい人におすすめです。 RT ROBOT SHOPで購入する …

アームロボットの基礎知識

アームロボットを扱う6章の冒頭では、アームロボットの用語や構造について詳しく説明していました。具体的な関節や機構の種類についても紹介されていたのですが、人の関節のような回転関節だけでなく、真っ直ぐ動く直動関節というものを初めて知りました。

基礎知識を学ぶ際に、simple_armという関節が2つ(2自由度)のアームを動かせるサンプルコードが付属していました。

GitHub - AI-Robot-Book/chapter6: 第6章 マニピュレーション
第6章 マニピュレーション. Contribute to AI-Robot-Book/chapter6 development by creating an account on GitHub.

サンプルコードを実行すると、RVizという可視化ツールを用いてアームの動きが見れます。図だけでなく可視化ツールでアームの動きが見れるのはとても理解しやすかったです!

以下の動画では画面左にあるスライドバーで関節角を操作し、簡易的なアームを動かしています。

 

アームロボットの運動学

アームロボットが自分の姿勢を把握したり、ものを掴んで移動するときに運動学はとても便利です。

書籍では順運動学と逆運動学について解説していました。順運動学を解くと関節角から手先の位置や姿勢の計算ができます。

順運動学について。関節角度(θ1、θ2)が分かると、手先の位置・姿勢(R)が求まる。

 

逆運動学を解くと目標の位置に手先を動かすための関節角が計算できます。

逆運動学について。目標位置・姿勢(R)に手先を移動させるための関節角度(θ1、θ2)を求める。

 

他には、位置や姿勢の表現方法、simple_armを用いた順運動学と逆運動学の計算方法、速度の運動学について証明と補足、位置の順運動学と逆運動学についての途中計算や図解など様々なことが本に載っていて理解しやすかったです。

CRANE+ V 2でサンプルプログラムを動かそう

実際に順運動学と逆運動学を用いているサンプルプログラムをCRANE+ V2で動かしてみました。動画内で動かしているプログラムは、順運動学と逆運動学が学べるサンプルプログラムです。

順運動学

 

順運動学のサンプルプログラムはキー入力により関節角を好きな方向に動かすことができます。順運動学を用いることで関節角から手先の位置と姿勢を計算して端末に結果が出力されます。そのとき関節角が設定した範囲外に移動する指示が出た場合、範囲外と端末に出力します。

サンプルプログラム順運動学の出力結果

 

逆運動学

逆運動学のサンプルプログラムはキー入力により、手先の位置や姿勢を好きな方向に移動させることができます。手先の位置が可動範囲外に出るか、アームの構造上取れない姿勢になる指示が出た場合、逆運動学の解がないと端末に出力されます。

サンプルプログラム逆運動学の出力結果

2つのサンプルプログラムを実行してみて、手先を目標位置へ動かすことの難しさを実感できました。

順運動学のサンプルでは関節を個別に動かします。そのため、手先を目標位置へ動かすには、各関節を微調整しなければなりません。

一方、逆運動学サンプルでは、関節角度を自動的に計算してくれるため、手先を簡単に動かせました。その反面、関節がどのように動くかわからないため、アームが障害物にぶつかったり、そもそも逆運動学が解けなかったりなど、逆運動学ならではの課題があると分かりました。

おわりに

今回は、CRANE+ V2を使いアームロボットの基礎知識、アームロボットの運動学について学びました。

私は大学の課外活動で(Robocup@Home Education)ロボットを動かしています。

RoboCup@Home Education
RoboCup@Home Educationは,ロボカップ@ホームの教育イニシアティブとして,@ホーム競技の参加とサービスロボットの開発を高めるため,教育の取り組みを促進する。この取り組みで,現在4つのプロジェクトがあります。ロボカップ@ホーム教育チャレンジ(国内、地域、国際 )オープンソース教育ロボットプラットフォー...

これまではロボットを動かす際に、いくつもの関節角度を微調整しながら手先を動かしていました。

今思うと、大変な作業をやっています…。

インターンシップが終わったらすぐに運動学をロボットに取り入れます!それほど運動学の良さを知りました!

次回は、ROS 2のアクション機能や他のノードから指令を受けて動作するサンプルプログラムをいくつか動かしてみたいと思います。

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