環境
この記事は以下の環境で動いています。
項目 | 値 |
---|---|
CPU | Core i5-8250U |
Ubuntu | 16.04 |
ROS | Kinetic |
インストールについてはROS講座02 インストールを参照してください。
またこの記事のプログラムはgithubにアップロードされています。ROS講座11 gitリポジトリを参照してください。
概要
アームロボット(多関節ロボット)の主なタスクとしてアームの先端を特定の姿勢にするというタスクがあります。これをやるためにはIK(逆運動学)と軌道計画の2つのタスクを行う必要があります。しかしこれらは、高度な数学的な知識が必要なために実装は大変面倒です。ROSではこれらの処理はMoveitというライブラリが担っています。
今回はcrane_plusというアーム用のrosパッケージをcloneしてsim上で動かしてみます。
アームの制御とは
ここでのアームの制御の目的はゴール地点のposeを指定することでアームの先端をその場所に移動させることです。分解するとこれは2つのタスクに分かれます。
- 目的のposeになるための各関節の角度を求める作業(IK:逆運動学)
- 現在の関節角度から上記で求めた角度に変化するための角度の変化のさせ方を計算する作業(起動生成)
今回の目的
crane+というturtlebot2用のアーム(現在ではもう売っていない?)のコントロール用のパッケージであるcrane_plus_armを使ってmoveitによるアームの制御を体験してみます。
install
moveit関連のパッケージをインストールします。
sudo apt install ros-kinetic-moveit
sudo apt install ros-kinetic-moveit-ros-visualization
サンプルの実行
ダウンロードとコンパイル
cd ~/catkin_ws/src/
git clone https://github.com/gbiggs/crane_plus_arm.git
cd ~/catkin_ws/
catkin_make
実行1
moveitそのものだけを動かすデモlaunchを起動します。
roslaunch crane_plus_moveit_config demo.launch
インタラクティブマーカーをドラッグすると先端をその位置に持ってくるための姿勢が計算されます。
Plan and Executeを押すと開始点から目標点まで移動する軌跡が計算されます。
(表示がうるさいのでrviz左上のdisplayパネルのMotionPlanning->Planning Path->Loop Animationをoffにするのをお勧めします。)
実行2
より実機に近い状態で動かします。実機の代わりのgazebo上のアームをmoveitで操作します。ターミナルを3つ開きます。
roslaunch crane_plus_simulation simulation.launch
roslaunch crane_plus_moveit_config move_group.launch
roslaunch crane_plus_moveit_config moveit_rviz.launch config:=true