Items with no label
3335 Discussions

Realsense SR300's measured distance is inaccurate

Dym
Beginner
2,290 Views

I have use the the point cloud data of realsense sr300 to achieve the robot avoidance obstacle, but I find that the point cloud of obstacle is incorrect, the measure distance is shorter than the actual distance. I use the ros(indigo)under ubuntu system, and use the Intel official package realsense_camera, launch the camera_driver use "roslaunch realsense_camera sr300_nodelet_rgbd.launch". I have make a test as follows:

First, I put my robot in front of a wall, at first the camera detect the wall just as my lidar detected, the distance are almost the same, but wait a little longer time, the camera detect the wall much closer than the lidar detected, as show here.

Fig1. The correct measure result

Fig2 The incorrect result

But when I launch the camera again, the result is OK. By the way I use the default parameter of the package, and I publish a static transform from the robot base_link to camera_link.

0 Kudos
12 Replies
idata
Employee
738 Views

Hi,

 

 

Thanks for your interest in the Intel RealSense Technology.

 

 

Could you please provide more details about your robot? Which processor or development platform does it use? Additionally, please record a rosbag file when the issue occurs and sent it to us.

 

 

Regards,

 

-Yermi A.

 

0 Kudos
Dym
Beginner
738 Views

Hi,

Well, the robot is built by myself, and my processor's config is as follows:

(1) CPU Info: Intel(R) Core(TM) i5-4210U cpu@1.70GHZ

(2) memory: 3.77G

(3) storge: 112G

I only run the camera_node ,using "roslaunch realsense_camera sr300_nodelet_rgbd.launch", such phenomenon occurs occasionly, so I have record two relate bags: depth1.bag and depth2.bag. The first bag is a wrong result. And the second bag is record under the same place as the first, I just relaunch the camera driver, the measure distance is right. I only record two topics: /camera/depth/points and /tf_static(This is also published by the camera_driver).Here is the two bags:

bag1: https://pan.baidu.com/s/1slsgw8l https://pan.baidu.com/s/1slsgw8l

bag2: https://pan.baidu.com/s/1skLC04d https://pan.baidu.com/s/1skLC04d

I hope intel corporation can help me solve this problem, by the way I have try another SR300 depth camera,this problem is also exist.

Regards,

-Dong ym

0 Kudos
idata
Employee
738 Views

Hi,

 

 

We would like to let you know that the 4th Gen Intel Core is an unsupported processor for this camera. The RealSense SR300 is validated and supported only on processors 6th Gen Intel Core and above. Therefore, results on processors earlier than 6th Gen are indeterminate and we cannot vouch for the camera's behavior or accuracy. However, we will analyze the ROS bags to see if we can glean anything.

 

 

Regards,

 

-Yermi A.

 

0 Kudos
Dym
Beginner
738 Views

Hi,

Can you analyse something from the ROS bags, If you have some suggestions or advice , I can have a try. In my view, the processor of 4th Gen Intel core can driver the camera node , the measure accuracy should have no relation to the 4th Intel core or 6th core. And in my test, the camera node drive node often have a timeout error, and the imply is: "/camera/driver - Error calling rs_wait_for_frames Timeout waiting for frames". This is my problem, thank you.

Regards,

-dongym

0 Kudos
idata
Employee
738 Views

Hi,

 

 

Unfortunately, the links to the ROS bag files are broken so we have not been able to access them. The time out problem can be related to multiple causes. The depth camera transmits very large amounts of data. We have seen this error occur when a certified USB3 cable is not being used. Are you using an SR300 dev kit (peripheral) or an SR300 module (bare camera without the chassis)? Also, the 4th gen processor may be causing this issue. As stated, the camera has been proven to work only on 6th gen Intel Core processor or higher. Results on 4th gen Intel Core processor are indeterminate.

 

 

Regards,

 

-Yermi A.

 

0 Kudos
Dym
Beginner
738 Views

Hi,

Ok, I put the ROS bag on google cache, and the two links are:

bag1: https://drive.google.com/file/d/0ByZIBI1bD4Pdb1FrVmd1bWdwZ3c/view?usp=sharing depth1.bag - Google Drive

bag2: https://drive.google.com/file/d/0ByZIBI1bD4PdWDVJTjZEaXEzVEk/view?usp=sharing depth2.bag - Google Drive

And the USB3 cable we used is the SR300 manufacturer's accessory device, the USB3 cable figure as follows:

Fig1. The USB3 cable

And I also try SR300 dev kit and an SR300 module, the phenomenon are same.

Regards,

_dong ym

0 Kudos
MartyG
Honored Contributor III
738 Views

Disclaimer: I am not a RealSense robotics expert, and so my opinion on this subject should not be taken as fact.

At first, I wondered if there was drift in the environment mapping over time. Thinking more about it though, I wonder if the misalignment in measurement of distance is because the camera's processing is lagging and so the value that it is showing does not represent a real-time measurement.

As an example of what I mean ... in a PC game I am developing, the player character uses a 'raycast beam' as an obstacle radar that it projects in front of it. If the raycast is detected as touching an object then the character stops walking / running. A problem with this system though at present is that when the player character is running, if there is processing lag then the player character may collide with the obstacle because the fast travel pace of the character means that the radar does not have time to detect the obstacle and halt forward motion before the collision occurs, because the processing lag meant that the radar could not react fast enough.

If it is possible at some point for you to upgrade your camera, your robot may benefit from the new D435 camera being released in October, which is able to synchronize with external devices (and so may be able to keep in sync with your lidar better than the SR300).

https://github.com/IntelRealSense/librealsense/blob/development/doc/rs400/external_devices.md librealsense/external_devices.md at development · IntelRealSense/librealsense · GitHub

You may equally benefit from using a 6th generation processor with your SR300 instead of a 4th generation one though.

0 Kudos
idata
Employee
738 Views

Hello,

 

 

Thank you for the information provided.

 

 

We believe that the issue may be due to the 4th generation processor used in the robot. We highly recommend to upgrade to a 6th generation Intel Core or higher for best results.

 

 

Could you please share what kind of troubleshooting have you tried?

 

 

In the meantime, please run the librealsense ( https://github.com/IntelRealSense/librealsense/blob/master/doc/installation.md) SR300-live-test under /librealsense/build/unit-tests and share the results with us.

 

 

I'll be waiting for your response.

 

 

Regards,

 

Andres V.
0 Kudos
Dym
Beginner
738 Views

Hello,

I don't know your meaning, SR300-live-test under /librealsense/build/unit_tests isn't a executable file. I install the realsense driver following the instruction (https://github.com/IntelRealSense/librealsense/blob/master/doc/installation.md https://github.com/IntelRealSense/librealsense/blob/master/doc/installation.md), and build the library follow the instructions as follows:

mkdir build && cd build

cmake ../

cmake ../-BUILD_EXAMPLES:true

and the built unit_tests files' tree is like this https://drive.google.com/open?id=0B-cl2eRml3L0emQxTk0zNHZDUDA https://drive.google.com/open?id=0B-cl2eRml3L0emQxTk0zNHZDUDA

0 Kudos
idata
Employee
738 Views

Hi,

 

 

According to the instructions at https://github.com/IntelRealSense/librealsense/blob/master/doc/installation.md https://github.com/IntelRealSense/librealsense/blob/master/doc/installation.md, this is the sequence of commands:

 

mkdir build && cd build

 

cmake ../

 

cmake ../-BUILD_EXAMPLES:true

 

Generate and install binaries:

 

make && sudo make install <---we believe you are missing this step to generate the binaries.</span>

 

 

After the make commands, the unit-test binaries will be under /librealsense/build/unit-tests

 

 

Regards,

 

-Yermi A.

 

0 Kudos
Dym
Beginner
738 Views

Hi,

Thanks for your patience guidance, I am truly under the steps of the instructions at https://github.com/IntelRealSense/librealsense/blob/master/doc/installation.md https://github.com/IntelRealSense/librealsense/blob/master/doc/installation.md .May be the key problem is the processors, I'll try the 6th processors later. Thank for your reply.

Regards,

-Dongyuming

0 Kudos
idata
Employee
738 Views

Hi,

 

 

You're welcome, we are here to help you. Good luck with the 6th Gen processor tests, if you have any issue don't hesitate to contact us back.

 

 

Regards,

 

-Yermi A.

 

0 Kudos
Reply