Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
stereo_cameras [2019/02/28 18:00]
paul [Custom Stereo Camera]
stereo_cameras [2019/03/31 14:49] (current)
Line 5: Line 5:
 {{::cleaned_up.gif?direct&600|}}  {{::cleaned_up.gif?direct&600|}} 
  
- 
-===== ZED Camera ===== 
- 
-==== Specs ==== 
- 
-**Name:**       ZED 
- 
-**Baseline:**   120mm  
- 
-==== Setup ==== 
- 
-I used the ZED in Primo running Ubuntu 16.04. I used the ROS driver package 
-provided. 
- 
-  * OpenCV was installed already 
-  * Installed cuda using the debian. Ran into an X server issue and ''%%glxgears%%'' didn't work. Restarted and it fixed everything 
-  * Downloaded the ZED sdk run file. Made it executable and ran it.  
-  * It installs in ''%%/usr/local/zed%%'' 
-  * Ran the ZED Explorer in the tools section of the install dir 
-  * Updated the firmware from 922 to 1142. After I updated i did notice some frame glitching every now and then 
-  * Went to the samples and built them using CMake 
- 
-==== ROS Install ==== 
- 
-  * Installed the source from github as a package in the catkin_ws workspace. 
-  * I changed the FPS in the launch file to 15. 
-  * Also can play with the confidence level. 
- 
-==== General Notes ==== 
- 
-Quality of the point cloud doesn't look great, and lots of "fall offs" on edges. 
-With that said I didn't see any speckles and CPU usage is VERY low especially 
-with the lower framerates. It is a very fast little device.  
- 
-==== Software ==== 
-Found the resolution definitions here:  
- 
-<code c++> 
-RESOLUTION_HD2K,   /**< 2208*1242, available framerates: 15 fps.*/ 
-RESOLUTION_HD1080, /**< 1920*1080, available framerates: 15, 30 fps.*/ 
-RESOLUTION_HD720,  /**< 1280*720, available framerates: 15, 30, 60 fps.*/ 
-RESOLUTION_VGA,    /**< 672*376, available framerates: 15, 30, 60, 100 fps.*/ 
-RESOLUTION_LAST 
-</code> 
- 
-So with 15 FPS and VGA resolution, and a level 25 confidence (which is now and 
-low) I'm still getting 120 mb/s throughput on the point cloud, which means i 
-have to fucking voxel grid filter it. I did find a ''%%pcl_cuda%%'' based voxel grid 
-filter though.  
- 
-Ok I think i just spent a half hour trying to get PCL with Cuda to build and I 
-am gonna go right ahead and give the fuck up. This will be a timesink like no 
-other. Gonna figure out what the nodelet manager is and attach a CPU based voxel 
-filter to and end of story. 
  
 ===== E-Con Tara ===== ===== E-Con Tara =====
Line 64: Line 10:
 An machine vision hardware company called E-Conn Systems makes an inexpensive and really great stereo camera called Tara. It is a USB 3.0 Stereo Vision Camera  An machine vision hardware company called E-Conn Systems makes an inexpensive and really great stereo camera called Tara. It is a USB 3.0 Stereo Vision Camera 
 [[https://www.e-consystems.com/3D-USB-stereo-camera.asp#key-features|link]]. It [[https://www.e-consystems.com/3D-USB-stereo-camera.asp#key-features|link]]. It
-has excellent accurate PCL creation fromranges of 0.meters to 3 meters. Below are outputs from two Tara cameras used on [[primo_robot|Primo]]. An custom self-filter and a voxel-grid-filter were used with the raw PCL output from the cameras.+has excellent accurate PCL creation fromranges of 0.meters to 3 meters. Below are outputs from two Tara cameras used on [[primo_robot|Primo]]. An custom self-filter and a voxel-grid-filter were used with the raw PCL output from the cameras.
  
 {{::stereo_rig.png?direct&600|}} {{::stereo_rig.png?direct&600|}}
Line 225: Line 171:
 allowed me to get a camera with a C-Mount lens holder, giving me access to allowed me to get a camera with a C-Mount lens holder, giving me access to
 quality and inexpensive optics, and also allowed me to vary the baseline to quality and inexpensive optics, and also allowed me to vary the baseline to
-focus accuracy on where I needed it.+focus accuracy on where I needed it. I created my own driver from a See3Cam fork  
 +that allowed me to sync the two cameras and also dynamically reconfigure exposure 
 +and sensor brightness levels. 
 + 
 +{{::img_6559.jpg?direct&600|}} 
 + 
 +In the above image, the two mono cameras separated on a rail, along with a triggering circuit in the middle comprise the custom stereo camera. Two Taras are housed above looking down on the left and right corners. 
 + 
 +{{::fwd_cam_expo.gif?direct&800|}} 
 + 
 +===== ZED Camera ===== 
 + 
 +==== Specs ==== 
 + 
 +**Name:**       ZED 
 + 
 +**Baseline:**   120mm  
 + 
 +The following is a sample output dump from the ZED camera. It had RGB coloring which was nice, and was accurate to near ranges, but for points further than 3 meters wavy inaccuracies formed. 
 + 
 +{{::zed_1.png?600|}} 
 +==== Setup ==== 
 + 
 +I used the ZED in Primo running Ubuntu 16.04. I used the ROS driver package 
 +provided. 
 + 
 +  * OpenCV was installed already 
 +  * Installed cuda using the debian. Ran into an X server issue and ''%%glxgears%%'' didn't work. Restarted and it fixed everything 
 +  * Downloaded the ZED sdk run file. Made it executable and ran it.  
 +  * It installs in ''%%/usr/local/zed%%'' 
 +  * Ran the ZED Explorer in the tools section of the install dir 
 +  * Updated the firmware from 922 to 1142. After I updated i did notice some frame glitching every now and then 
 +  * Went to the samples and built them using CMake 
 + 
 +==== ROS Install ==== 
 + 
 +  * Installed the source from github as a package in the catkin_ws workspace. 
 +  * I changed the FPS in the launch file to 15. 
 +  * Also can play with the confidence level. 
 + 
 +==== General Notes ==== 
 + 
 +Quality of the point cloud doesn't look great, and lots of "fall offs" on edges. 
 +With that said I didn't see any speckles and CPU usage is VERY low especially 
 +with the lower framerates. It is a very fast little device.  
 + 
 +==== Software ==== 
 +Found the resolution definitions here:  
 + 
 +<code c++> 
 +RESOLUTION_HD2K,   /**< 2208*1242, available framerates: 15 fps.*/ 
 +RESOLUTION_HD1080, /**< 1920*1080, available framerates: 15, 30 fps.*/ 
 +RESOLUTION_HD720,  /**< 1280*720, available framerates: 15, 30, 60 fps.*/ 
 +RESOLUTION_VGA,    /**< 672*376, available framerates: 15, 30, 60, 100 fps.*/ 
 +RESOLUTION_LAST 
 +</code> 
 + 
 +So with 15 FPS and VGA resolution, and a level 25 confidence (which is now and 
 +low) I'm still getting 120 mb/s throughput on the point cloud, which means i 
 +have to fucking voxel grid filter it. I did find a ''%%pcl_cuda%%'' based voxel grid 
 +filter though.  
 + 
 +Ok I think i just spent a half hour trying to get PCL with Cuda to build and I 
 +am gonna go right ahead and give the fuck up. This will be a timesink like no 
 +other. Gonna figure out what the nodelet manager is and attach a CPU based voxel 
 +filter to and end of story. 
 + 
 +===== Filtering ===== 
 + 
 +Voxel grid filtering from the PCL library was used to significantly lower the data throughput on the PCLs generated by the stereo cameras. On the left image below is a raw PCL dump and on the right is a voxel grid filtered one. 
 + 
 +{{::voxel_filter.png?600|}} 
 + 
  
-{{::fwd_cam_expo.gif?direct&600|}} 
  • stereo_cameras.1551376803.txt.gz
  • Last modified: 2019/02/28 18:00
  • by paul