ifm / libo3d3xx

Driver and utilities for IFM Efector O3D3xx depth cameras
Apache License 2.0
38 stars 39 forks source link

Triggering multiple cameras from oem partition #99

Closed mikeNike9 closed 7 years ago

mikeNike9 commented 7 years ago

Tom

Can I use the same Frame Grabber on the Camera with multiple camera objects? I have been trying a few things today but have not succeeded. I will try and add a new IP address but it will continue to grab the default camera IP address when I call the the FrameGrabber. auto cam = std::make_shared(); auto cam2= std::make_shared("192.168.0.71"); auto fg = std::make_shared(cam2, o3d3xx::IMG_AMP|o3d3xx::IMG_RDIS|o3d3xx::IMG_CART); auto im = std::make_shared(); EXPECT_TRUE(fg->WaitForFrame(im.get(), 1000)); pcl::PointCloud::Ptr cloud = im->Cloud();

This will return the point cloud of cam and not of the cam2 (192.168.0.71)

I have other ways grab the points off the other cameras but figured I would try and grab a frame for fun first.

tpanzarella commented 7 years ago

Mike,

The OEM framegrabber is a "zero copy" framegrabber. I.e., it returns to you data directly from the internal imager buffers -- it does not get its data from the PCIC server on the device. If you want to fetch data from a remote camera from code running on another camera, you need to use the standard libo3d3xx TCP framegrabber -- I.e., at that point you are building a distributed system and a network connection is required.

graugans commented 7 years ago

@mikeNike9 you should either cross compile the standard framegrabber like @tpanzarella said or implement an onboard camera daemon which is managing the data collection and distribution for you. In the second approach you may can reduce the data size my some kind of pre processing on each node.

tpanzarella commented 7 years ago

Christian, is the standard TCP framegrabber included on the OEM images still?

On Jun 29, 2017, at 8:52 AM, Christian Ege notifications@github.com wrote:

@mikeNike9 you should either cross compile the standard framegrabber like @tpanzarella said or implement an onboard camera daemon which is managing this for you. In the second approach you may can reduce the data size my some kind of pre processing on each node.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

graugans commented 7 years ago

@tpanzarella no, there was no reason because of the zero-copy approach.

tpanzarella commented 7 years ago

Two use cases I can think of include:

  1. Multi camera systems
  2. One code base that cross-compiles (and runs) to on or off-board deployment.

On Jun 30, 2017, at 5:19 AM, Christian Ege notifications@github.com wrote:

@tpanzarella no, there was no reason because of the zero-copy approach.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.