Vzense is a company that specializes in providing ToF (time-of-flight) 3D sensors and people-counting systems for various industries. As a leading provider in this field, we are dedicated to developing cutting-edge technologies that meet the various needs of our customers.
Vzense DS77C
With another breakthrough, we are glad to present our latest 3D ToF cameras, DS86 and DS87. And this article is a brief introduction to the new cost-effective ToF sensing solutions, including their features, differences, and applications. If you are interested in it, keep rolling!
Table of Contents
Introduction of 3D ToF Camera
A 3D ToF (time-of-flight) camera is a type of camera that uses infrared light pulses to capture three-dimensional images of a scene or objects. The 3D ToF camera emits a series of infrared light pulses, which bounce off of surfaces and objects in the scene, and then are detected by the camera’s sensors. By measuring the time it takes for the light to travel from the camera to the object and back, the camera can calculate the distance between the object and the camera.
Advanced Update in Vzense’s DS86 & DS87
The new products adopt a side outlet design with a compact body structure, making installation and operation more convenient. As new members of Vzense’s DS series, DS86 and DS87, are industrial-grade depth cameras based on SONY CW iToF chip technology.
Compared to the DS77C, the previous generation of Vzense RGB-D cameras, the DS86 and DS87 have reduced their volume and weight by nearly 50% while improving the precision of depth images and the resolution of RGB images.
Features and strengths of Vzense’s DS86 and DS87
The DS86 and DS87 3D ToF cameras stand out due to their key features. They support a measurement distance range of 0.15-5.0m and use the Sony DepthSense iToF sensor for higher precision and steadier data acquisition. The cameras also support Depth HDR mode and have a better performance in dim environments with ambient light, making them suitable for use in complex lighting conditions.
The DS86 and DS87 also have optimized RGB image analysis and processing, allowing for clear and detailed color images. Real-time three-dimensional data capture is possible due to their microsecond-level synchronization between RGB and depth images. Additionally, the cameras are versatile and reliable for various applications, supporting soft and hard trigger modes and simultaneous operation of multiple cameras.
Differences Between Vzense’s DS86 and DS87
Though they share many commonalities, the DS86 and DS87 have some key differences. Firstly, in terms of power supply, the DS87 supports PoE+ and 12V~24V DC power input, while the DS86 supports only 12V~24V DC power input. Regarding physical connection, the DS87 features M12 and M8 aviation plugs, whereas the DS86 has an RJ45 connector and M8 aviation plugs.
Another difference between the two cameras is their IP rating. The DS87 has a higher IP rating of IP67, while the DS86 has an IP rating of IP42, indicating that DS87 is more resistant to dust and water ingress.
Applications of Vzense’s DS86 and DS87
- Logistics: Industrial 3D ToF cameras can accurately identify parcels in sorting areas, providing real-time location information. This improves the sorting process’s accuracy, speed, and efficiency, leading to faster delivery times and increased customer satisfaction.
- Agriculture: The Vzense’s 3D ToF camera has practical applications in agriculture, providing precise depth information about the environment to help autonomous ground vehicles navigate through farmland more accurately, avoiding damage to crops.
- Manufacturing: By adopting the appropriate algorithm, ToF+ RGB depth cameras can differentiate pallets from other objects based on their 3D shape and size in real time. This enables the AGV to react and adjust its approach to the pallet more efficiently and accurately in warehouse environments.
- Physical testing: When 3D ToF cameras adopt specialized algorithms which can analyze the changes in the distance and velocity of objects in the camera’s field of view and determine whether they are consistent with falling. This can help the camera identify intentional movement and accidental falling.
- Animal husbandry: By adopting appropriate software to the 3D ToF cameras, the number of animals passing through a specific area can be counted by tracking when they enter and exit that area.
Summary
Based on the discussion above regarding the DS86 and DS87, we believe that you have had a preliminary understanding of them. As the most powerful and competitive 3D ToF cameras on the market, there is a lot of untapped potential.
And we, Vzense, one of the top companies in 3D Time-of-Flight technology, are ready to explore more opportunities with you.
testtest
for(1)
{
}
while
if
else
#include <sys/timeb.h>
/*
省略部分代码
*/
//Starts capturing the image stream
status = scStartStream(deviceHandle);
if (status != ScStatus::SC_OK)
{
cout << "scStartStream failed status:" << status << endl;
return -1;
}
cout << "Software trigger test begins" << endl;
//delay for start stream ready.
this_thread::sleep_for(chrono::milliseconds(3000));
//1.software trigger.
//2.ReadNextFrame.
//3.GetFrame acoording to Ready flag and Frametype.
//4.sleep 1000/frameRate (ms)
for (int i = 0; i < frameSpace; i++)
{
timeb time_start, time_end;
//call the below api to trigger one frame, then the frame will be sent
// if do not call this function, the frame will not be sent and the below call will return timeout fail
status = scSoftwareTriggerOnce(deviceHandle);
ftime(&time_start); // record the start timestamp
if (status != ScStatus::SC_OK)
{
cout << "scSoftwareTriggerOnce failed status:" <<status<< endl;
continue;
}
//If no image is ready within 1000ms, the function will return ScRetGetFrameReadyTimeOut
status = scGetFrameReady(deviceHandle, 1200, &FrameReady);
if (status != ScStatus::SC_OK)
{
cout << "scGetFrameReady failed status:" << status << endl;
//this_thread::sleep_for(chrono::seconds(1));
continue;
}
//depthFrame for example.
if (1 == FrameReady.depth)
{
status = scGetFrame(deviceHandle, SC_DEPTH_FRAME, &depthFrame);
if (depthFrame.pFrameData != NULL)
{
cout << "get Frame successful,status:" << status << " "
<< "frameTpye:" << depthFrame.frameType << " "
<< "frameIndex:" << depthFrame.frameIndex << endl
ftime(&time_end);// record the end timestamp
uint64_t unix_end = time_end.time * 1000 + time_end.millitm;
uint64_t unix_start = time_start.time * 1000 + time_start.millitm;
uint64_t unix_exposure_end = depthFrame.deviceTimestamp;
cout << "one frame total time delay from trigger: " << unix_end - unix_start << endl;
if ((unix_end - unix_exposure_end) > 2000)
{
cout << "NTP/PTP is not work !!!" << endl;
}
else
{
cout << "time delay from exposure end: " << unix_end - unix_exposure_end << endl;
}
}
}
this_thread::sleep_for(chrono::milliseconds(1000 / frameRate));
}