Tutorial using ROS for ver.3

TurtleBot3による把持(自動把持)の実行

このサンプルは、物体の自動把持を行うシンプルなサンプルです。

TurtleBot3にはOpenManipulatorが付いています。

darknet_ros(YOLO)による物体認識や、Point Cloudデータを使用しています。
またYOLOによる物体認識を行うため、Ubuntu環境にCUDAをインストールする必要があります。
CUDAをインストールしなくともCPUを使用して動かすことは可能ですが、物体認識の速度が非常に遅くなります。

操作の概略は以下の通りです。

  1. キー操作でTurtleBot3を物体の手前まで移動する。
  2. なるべくカラー画像の中心付近に把持対象が映るようにTurtleBot3を動かす。
  3. キー操作で把持する物体を指定する。

上記の操作を行うと、TurtleBot3は以下のような流れで物体の把持を試みます。

  1. darknet_ros(YOLO)が、カラー画像を使用して物体認識を行う。
  2. カラー画像とPoint Cloud情報を使用して、物体の3次元座標を推測する。
  3. 算出した3次元座標の位置を把持する。

Open Manipulatorの仕様は、こちらをご参照ください。
カメラの仕様は、こちらをご参照ください。
またカメラに関しては深度センサの最短距離が短い方が都合が良かったため、RealSense R200ではなく、RealSense SR300を使用します。

Ubuntu環境の構築

本サンプルでは darknet_ros(YOLO)をUbuntu環境にインストールする必要があります。
まずはrosを使用しない通常のdarknetの動作確認を行うことをお勧めします。
darknet_rosはバージョン1.1.4で動作確認済みです。

手順は以下の通り

  1. CUDAをこちらからダウンロードしてインストールする。(前述のとおりCUDAをインストールしなくともCPUを使用して動かすことは可能です)
    (詳細は各自のPCやNVIDIA Driverの環境に合わせて行ってください)
  2. darknet_rosを git cloneする。(参考
    但し、動作確認済みのコミットをチェックアウトし、追加データもダウンロードしてください。
    $ cd ~/catkin_ws/src
    $ git clone --recursive https://github.com/leggedrobotics/darknet_ros.git
    $ cd darknet_ros
    $ git checkout ac666ab8e8e3dd23a8a95d891fb90874e63c8cb5
    $ cd ~/catkin_ws/src/darknet_ros/darknet_ros/yolo_network_config/weights/
    $ wget http://pjreddie.com/media/files/yolo.weights
  3. darknet_rosをインストールする。(参考
    $ cd ~/catkin_ws
    $ catkin_make -DCMAKE_BUILD_TYPE=Release

起動手順

まずUbuntu側を起動します。その後 Windows側を起動してください。

Ubuntu側の起動手順

新しいターミナルを開き、以下のコマンドを実行します。

$ roslaunch sigverse_turtlebot3_open_manipulator grasping_auto.launch

Windows側の起動手順

こちらを参考に[Assets/SIGVerse/ExampleScenes/Turtlebot3/OpenManipulatorSR300(.unity)]シーンを開始します。

実行

Ubuntu側の grasping_auto という名前のターミナル上でキー操作を行うとTurtleBot3を操作できます。

※操作方法の詳細はターミナルの表示を確認してください。

終了する際は、Unity側を停止させてからROS側を終了してください。

Ubuntu側

TurtleBot3GraspAutoUbuntu.png

Windows側

TurtleBot3GraspAutoWindows.png

Windows側 ("clock"を把持した)

TurtleBot3GraspAutoWindowsGrasping.png

Reference Video
(GPUを使用していないので物体認識速度は遅いです)


Front page   New List of pages Search Recent changes   Help   RSS of recent changes