INDEMIND binocular camera tutorial

The INDEMIND camera has two global exposure cameras, a wide-angle camera, a horizontal field of view of 120 degrees, and a vertical 75 degrees. The image frame rate can reach 200HZ at 640x400 resolution and up to 50Hz at 1280x800 resolution. 1KHZ IMU (IMU model is ICM-20602, performance is similar to MPU 6050) [3] Data frequency, with hardware synchronization function. The camera baseline is 12cm, the estimated depth range is about 0.1-10m, and it comes with a depth estimation function. The output depth image is 640x400, 25Hz. It is an ideal equipment for VIO, the most important thing is that it is cheap. Since the tutorials on the official website are relatively simple (it can be said to be very simple), especially for the tutorials in the ROS environment, it is a bit unfriendly to us as a novice. Directly following the steps on the official website, the camera data cannot be read and published to Therefore, I made some notes on the topic I prepared for future reference. At the same time, I shared the ROS node I wrote on the blog for your reference. (The system version I use is ubuntu1604+ROS-Kinetic version)

Update log:
——2020-2-8 fixed the release of depth data/indemind/depth/point_cloud
——2020-2-7 added the release of the camera_info topic——
2020-2-5 revised and released on the official basis ROS node driver, can successfully read left and right images

1 Camera driver installation

1.1 Install the driver

First download the SDK package on github:

git clone https://github.com/INDEMIND/SDK-Linux.git

Secondly, install the dependency packages needed by the camera
a) Install cmake

sudo apt-get install cmake

b) Install google-glog + gflags

sudo apt-get install libgoogle-glog-dev

c) Install BLAS & LAPACK

sudo apt-get install libatlas-base-dev

d) Install SuiteSparse and CXSparse

sudo apt-get install libsuitesparse-dev

1.2 Test demo running

cd to the SDK-Linux-master/demo directory and create a folder named build

cd demo
mkdir build
cd build
cmake ..
make

Insert picture description here
Then, cd to the SDK-Linux-master/lib/1604 directory and modify the  running permissions of TestIndem and TestIndem.sh

sudo chmod 777 TestIndem
sudo chmod 777 TestIndem.sh

Run test code

sudo ./TestIndem.sh

Then you can see the effect. If the following effect is displayed, it proves that you have successfully installed the driver.
Insert picture description here
When the camera is still at startup, you can see the camera's internal parameters and other information.
Insert picture description here
This demo comes with a SLAM library, which can run the binocular example. The site is on the road outside the hometown, and it feels the depth of the SDK currently provided by the camera. The effect of grayscale is very good, but the pose estimation is not robust enough, and the final start point and end point do not coincide, and there will be deviations when rotating. The following is the test result:

Indemind camera comes with SLAM demo test

1.3 ROS driver node

The official ROS node tutorial [1] is located here, and there will be more errors if you run it directly. Here I will not follow the official steps, I will directly use my modified ROS node for instructions ( code link ) [2]
1) Download the code on github and place it in your ROS workspace. Then compile,

cd catkin_ws
source devel/setup.bash
catkin_make

2) After copying files compiled successfully libslam.so , headset.yaml and libusbdriver.so (three files in the lib directory packet following ROS - indemind_stereo / lib) to the directory "~ / catkin_ws / devel / lib / indemind_stereo" below (At present, I only thought of using this method to add files in the past. I don’t know if I can automatically install files in the past by modifying CMakeList.txt. If anyone knows a lot, please guide me.)
Insert picture description here
3) Enter the super user authority and start the node ( The ROS node must be started under super user authority, and the camera must be plugged into the USB3.0 port)

sudo -s    
cd catkin_ws
source devel/setup.bash
roslaunch indemind_stereo stereo.launch

At this time, you can see that the left and right destination images are displayed in RVIZ. Use rostopic list to see the topics published by this node. /indemind/image_left and /indemind/image_right represent the left and right destination images, and /indemind/imu is the IMU data

Insert picture description here
Insert picture description here

1.4 Supplement

Copy the plugin folder under the lib directory of the ROS package to the directory "~/catkin_ws/devel/lib/indemind_stereo" , and then restart the node to see the output depth map.
Insert picture description here
Reference link:
[1] Official tutorial https://indemind-sdk.readthedocs.io/zh_CN/latest/src/sdk/ros%20SDK%20anzhuang.html
[2] ROS node modification https://gitee.com/cenruping /indemind_stereo.git
[3] SLAM hardware experience-INDEMIND binocular IMU camera: https://zhuanlan.zhihu.com/p/69479261

Guess you like

Origin blog.csdn.net/crp997576280/article/details/104246265