Package: triorb_camera_capture

更新履歴

1.1.0

  • 画像のENQUEUEをtimer_callbackの最後に全カメラ同時に行うように変更
  • gainを設定可能
  • gain, exposureを設定時にauto_exposureをオフにするように変更

camera_capture API

カメラ画像受信

  • Topic:(prefix)/camera(0-N) # 末尾の整数はカメラのID
  • Node:(prefix)_camera_capture
  • Type:sensor_msgs/Image
  • Frequency:最大1/0.02 Hz
  • Usage:
    root@orin-nx-XXX:~/$ ros2 topic info /camera0; ros2 topic hz /camera0
    Type: sensor_msgs/msg/Image
    Publisher count: 1
    Subscription count: 0
    average rate: 9.537
          min: 0.072s max: 0.240s std dev: 0.04572s window: 13
    ...
    average rate: 10.766
          min: 0.064s max: 0.240s std dev: 0.02494s window: 266
    

カメラデバイス一覧取得

  • Topic:(prefix)/get/camera/state
  • Node:(prefix)_camera_capture
  • Type:triorb_sensor_interface/srv/CameraDevice
  • Usage:
    root@orin-nx-XXX:~/$ ros2 service call /get/camera/state triorb_sensor_interface/srv/CameraDevice
    ...
    response:
    triorb_sensor_interface.srv.CameraDevice_Response(result=[triorb_sensor_interface.msg.CameraDevice(device='/dev/video0', topic='/camera0', id='cam0', state='awake', rotation=0, exposure=800, gamma=1.0, timer=0.02), ...])
    

カメラデバイスの起動・終了

  • Topic:(prefix)/set/camera/state
  • Node:(prefix)_camera_capture
  • Type:triorb_sensor_interface/srv/CameraCapture
  • Usage:
    root@orin-nx-XXX:~/$ ros2 service call /set/camera/state triorb_sensor_interface/srv/CameraCapture '{request: [{device: /dev/video0, topic: /camera0, id: camera0, state: wakeup, rotation: 0, exposure: 500, gamma: 1.0, timer: 0.1}, {device: /dev/video2, topic: /camera1, id: camera1, state: wakeup, rotation: 0, exposure: 500, gamma: 1.0, timer: 0.1}]}'
    ...
    response:
    triorb_sensor_interface.srv.CameraCamture_Response(result=['success','success'])
    

camera format

  • width 1600
  • height 1300
  • pixel format GREY (gray scale 8bit)

If you want use other formats, change following variables.

  • width, height in cap_cam.cpp (for width and height)
  • V4L2_PIX_FMT_GREY in CameraCapture.cpp (for pixel format)

use multiple camera

  • see launch/multi_camera_launch.xml