[[Tutorial using ROS for ver.3]] &color(red){&size(30){Melodic版バックアップ};}; * TurtleBot3による把持(自動把持)の実行 [#e93a5390] このサンプルは、物体の自動把持を行うシンプルなサンプルです。 TurtleBot3にはOpenManipulatorが付いています。 darknet_ros(YOLO)による物体認識や、Point Cloudデータを使用しています。~ またYOLOによる物体認識を行うため、Ubuntu環境にCUDAをインストールする必要があります。~ CUDAをインストールしなくともCPUを使用して動かすことは可能ですが、物体認識の速度が非常に遅くなります。 操作の概略は以下の通りです。 + キー操作でTurtleBot3を物体の手前まで移動する。 + なるべくカラー画像の中心付近に把持対象が映るようにTurtleBot3を動かす。 + 番号を入力し把持する物体を指定する。 上記の操作を行うと、TurtleBot3は以下のような流れで物体の把持を試みます。 + darknet_ros(YOLO)が、カラー画像を使用して物体認識を行う。 + カラー画像とPoint Cloud情報を使用して、物体の3次元座標を推測する。 + 算出した3次元座標の位置を把持する。 Open Manipulatorの仕様は、[[こちら>http://emanual.robotis.com/docs/en/platform/turtlebot3/manipulation/#manipulation]]をご参照ください。~ カメラの仕様は、[[こちら>http://emanual.robotis.com/docs/en/platform/turtlebot3/appendix_realsense/]]をご参照ください。~ またカメラに関しては深度センサの最短距離が短い方が都合が良かったため、RealSense R200ではなく、RealSense SR300を使用します。 ** Ubuntu環境の構築 [#c709f1fe] 本サンプルでは darknet_ros(YOLO)をUbuntu環境にインストールする必要があります。~ まずはrosを使用しない[[通常のdarknet>https://github.com/pjreddie/darknet]]の動作確認を行うことをお勧めします。 手順は以下の通り + CUDAを[[こちら>https://developer.nvidia.com/cuda-downloads]]からダウンロードしてインストールする。(前述のとおりCUDAをインストールしなくともCPUを使用して動かすことは可能です)~ (詳細は各自のPCやNVIDIA Driverの環境に合わせて行ってください) +darknet_rosを git cloneする。([[参考>https://github.com/leggedrobotics/darknet_ros]])~ melodicブランチの動作確認済みのコミットをチェックアウトします。 $ cd ~/catkin_ws/src $ git clone --recursive -b melodic https://github.com/leggedrobotics/darknet_ros.git $ cd darknet_ros $ git checkout b9d9a7dd +darknet_rosをインストールする。([[参考>https://github.com/leggedrobotics/darknet_ros]]) $ cd ~/catkin_ws $ catkin_make -DCMAKE_BUILD_TYPE=Release ※GPUとCUDAの組み合わせによっては、catkin_make時に"Unsupported gpu architecture 'compute_30'"というようなエラーが出るかもしれません。 ~ その場合は、darknet_rosのCMakeLists.txtのcompute_30に関わる行をコメントアウトすれば回避できると思われます。 ** 起動手順 [#bc27b1e9] まずUbuntu側を起動します。その後 Windows側を起動してください。 *** Ubuntu側の起動手順 [#l39593fd] 新しいターミナルを開き、以下のコマンドを実行します。 $ roslaunch sigverse_turtlebot3_open_manipulator grasping_auto.launch *** Windows側の起動手順 [#df821e14] [[こちら>Tutorial using ROS for ver.3#open_scene]]を参考に[Assets/SIGVerse/ExampleScenes/Turtlebot3/OpenManipulatorSR300(.unity)]シーンを開始します。 ** 実行 [#sd88b953] Ubuntu側の grasping_auto という名前のターミナル上でキー操作を行うとTurtleBot3を操作できます。 ※操作方法の詳細はターミナルの表示を確認してください。 ※画像処理負荷が高いため、ロボットのカメラ画像送信間隔は1000[ms]にしています。 ~ (もしも送信間隔を短くしたい場合は、turtlebot3_with_open_manipulator_SR300/RosBridgeScriptsにアタッチされているTurtleBot3PubSR300RGBControllerのSending Intervalを小さくしてください) 終了する際は、Unity側を停止させてからROS側を終了してください。 Ubuntu側(細部は最新版とは異なる場合があります) #ref(TurtleBot3GraspAutoUbuntu.png) Windows側(細部は最新版とは異なる場合があります) #ref(TurtleBot3GraspAutoWindows.png) Windows側 ("clock"を把持した)(細部は最新版とは異なる場合があります) #ref(TurtleBot3GraspAutoWindowsGrasping.png) ---- ''参考動画'' (GPUを使用していないので物体認識速度は遅いです) #youtube(eZgu1bO7KMM)