25
tfとカメラパッケージ + NEXTAGE OPENの事例紹介 近藤 豊 http://youtalk.jp/ros @ youtalk 第3回ROS勉強会

tfとカメラパッケージ + NEXTAGE OPENの事例紹介

Embed Size (px)

Citation preview

tfとカメラパッケージ + NEXTAGE OPENの事例紹介

近藤 豊

http://youtalk.jp/ros @youtalk

第3回ROS勉強会

近藤 豊 博士(工学)

•  奈良先端大小笠原研究室でアンドロイドの人間らしい  振る舞いを研究

•  現在はカワダロボティクスで協働ロボットの開発に従事

2 第2回の発表資料:http://youtalk.jp/rosjp-2nd

目次 •  tf – 公式チュートリアルの学習 –  RVizを使った可視化

•  カメラパッケージ –  gscam:UVC(Webカメラ)ドライバ –  camera_calibration:カメラのキャリブレーション –  cv_bridge:ROS <-> OpenCVの画像変換 –  ar_track_alvar:ARマーカ認識 –  ueye_cam:NEXTAGEの頭部・ハンドカメラドライバ

3

座標変換はバグの温床 •  でもロボット開発とは切っても切れない関係...

4

学部4年の研究 http://youtu.be/5XNHj_d5fcI

修士2年の研究 http://youtu.be/pjSzW7ZOwhk

tf(transform frame) •  復数の異なる座標系(フレーム)間の変換を担う –  /tf:全フレームの親子関係からなるツリー – 各ローカルフレームは/tfに対してPub/Sub

5

フレームの可視化 $  rtmlaunch nextage_ros_bridge nextage_ros_bridge_simulation.launch

GUI:=false $  rosrun tf view_frames $  evince frames.pdf

6 NEXTAGE OPENのツリー

RVizによるフレームの可視化 $  rosrun tf static_transform_publisher 0 0 0 0 0 0 1 map WAIST 100

$  rosrun rviz rviz

7

画面左下のAddボタンを押して “TF”, “RobotModel”ビューを追加

tf チュートリアル •  http://wiki.ros.org/tf/Tutorials のPython版を少し改良

$  cd /path/to/catkin_ws/src $  git clone https://github.com/ros-japan-users/rosjp_tutorials $  cd .. $  catkin_make --pkg learning_tf

8

1. Publisherの実装 $  roslaunch learning_tf start_demo1.launch

9

2. Subscriberの実装 $  roslaunch learning_tf start_demo2.launch

10

3. 固定フレームのPublisher $  roslaunch learning_tf start_demo3.launch

11

課題1 •  static_transform_publisherを使って、3と同じことを   実現してください。 http://wiki.ros.org/tf#static_transform_publisher

12

4. tfと時間の関係性 $  roslaunch learning_tf start_demo4.launch

13

5. 過去フレームの問い合わせ $  roslaunch learning_tf start_demo5.launch

課題2 •  turtle3を追加し、turtle1, turtle2, turtle3で隊列を 組んでください。

14

カメラのROS API •  トピック –  camera/image_raw (sensor_msgs/Image) 画像のストリーミング

–  camera/camera_info (sensor_msgs/CameraInfo) カメラの内部パラメータ出力

•  サービス –  camera/set_camera_info (sensor_msgs/SetCameraInfo) カメラの内部パラメータ設定

15

gscam •  UVC(Webカメラなど)のドライバ

$  sudo apt-get install ros-hydro-gscam $  ls /dev/video* /dev/video0 /dev/video1 $  roslaunch gscam v4l.launch DEVICE:=/dev/video0 PUBLISH_FRAME:=true

$  rosrun image_view image_view image:=/v4l/camera/image_raw

16

cv_bridge •  ROS sensor_msgs/Image <-> OpenCV cv::Matの変換

$  sudo apt-get install ros-hydro-cv-bridge $  cd /path/to/catkin_ws/src $  git clone https://github.com/ros-japan-users/rosjp_tutorials $  cd .. $  catkin_make --pkg learning_cv_bridge $  roslaunch learning_cv_bridge start_demo.launch image:=/v4l/camera/image_raw

17

課題3 •  nodes/cv_bridge_broadcaster.pyに何か画像処理を 実装してください。

•  roscppを使って、C++インタフェースでも実装して  みましょう。

18

camera_calibration •  単眼・ステレオカメラのキャリブレーション

$  rosrun camera_calibration cameracalibrator.py --size 9x6 --square 0.024 image:=/v4l/camera/image_raw camera:=/v4l

19

ar_track_alvar •  ARマーカ認識 –  ARToolKitより性能が優れ、ライセンスも安心 –  Kinectを使った高精度化も可能

$  sudo apt-get install ros-hydro-ar-track-alvar $  cd /path/to/catkin_ws/src $  git clone https://github.com/ros-japan-users/rosjp_tutorials $  cd .. $  catkin_make --pkg learning_ar_track_alvar

20

ar_track_alvar $  roslaunch learning_ar_track_alvar v4l.launch

21

課題4 •  NEXTAGEのCAMERA_HEAD_Lにv4l_frameを 子フレームとして取り付けてください。

•  紹介したパッケージなどを組み合わせて、一つデモを作ってください。

22

ueye_cam •  NEXTAGEが内蔵するIDS uEyeのカメラドライバ

$  git clone https://github.com/youtalk/ueye_cam $  git checkout nextage-cams $  cd .. $  catkin_make --pkg ueye_cam $  roslaunch ueye_cam stereo.launch

$  roslaunch ueye_cam hand.launch

23

※正式採用ではueyeを使うかも https://github.com/tork-a/rtmros_nextage/issues/103

NEXTAGEの頭部ステレオキャリブ $  rosrun camera_calibration cameracalibrator.py --size 9x6 --square 0.024 --approximate=0.1 right:=/stereo/right/image_raw left:=/stereo/left/image_raw right_camera:=/stereo/right left_camera:=/stereo/left

24

第4回ROS勉強会 兼 第2回NEXTAGEハッカソン!? 乞うご期待

25