このサンプルは、物体の自動把持を行うシンプルなサンプルです。
TurtleBot3にはOpenManipulatorが付いています。
darknet_ros(YOLO)による物体認識や、Point Cloudデータを使用しています。
またYOLOによる物体認識を行うため、Ubuntu環境にCUDAをインストールする必要があります。
CUDAをインストールしなくともCPUを使用して動かすことは可能ですが、物体認識の速度が非常に遅くなります。
操作の概略は以下の通りです。
上記の操作を行うと、TurtleBot3は以下のような流れで物体の把持を試みます。
Open Manipulatorの仕様は、こちらをご参照ください。
カメラの仕様は、こちらをご参照ください。
本サンプルでは darknet_ros(YOLO)をUbuntu環境にインストールする必要があります。
まずはrosを使用しない通常のdarknetの動作確認を行うことをお勧めします。
手順は以下の通り
$ cd ~/catkin_ws/src $ git clone --recursive https://github.com/leggedrobotics/darknet_ros.git $ cd darknet_ros $ git checkout 1027a280
$ cd ~/catkin_ws $ catkin_make -DCMAKE_BUILD_TYPE=Release※GPUとCUDAの組み合わせによっては、catkin_make時に"Unsupported gpu architecture 'compute_30'"というようなエラーが出るかもしれません。
まずUbuntu側を起動します。その後 Windows側を起動してください。
新しいターミナルを開き、以下のコマンドを実行します。
$ roslaunch sigverse_turtlebot3_open_manipulator grasping_auto.launch
こちらを参考に[Assets/SIGVerse/ExampleScenes/Turtlebot3/OpenManipulator(.unity)]シーンを開始します。
Ubuntu側の grasping_auto という名前のターミナル上でキー操作を行うとTurtleBot3を操作できます。
※操作方法の詳細はターミナルの表示を確認してください。
※画像処理負荷が高いため、ロボットのカメラ画像送信間隔は1000[ms]にしています。
(もしも送信間隔を短くしたい場合は、turtlebot3_with_open_manipulator/RosBridgeScriptsにアタッチされているZEDMiniPubCameraImageControllerのSending Intervalを小さくしてください)
終了する際は、Unity側を停止させてからROS側を終了してください。
Ubuntu側(細部は最新版とは異なる場合があります)
Windows側(細部は最新版とは異なる場合があります)
Windows側 ("clock"を把持した)(細部は最新版とは異なる場合があります)
参考動画 (GPUを使用していないので物体認識速度は遅いです)