-
Notifications
You must be signed in to change notification settings - Fork 510
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
real time super slow #192
Comments
Rovio should run real-time at about 20-30 Hz using about ~20% CPU on a standard laptop CPU with default parameters out of the box. Make sure you compile in Release mode (and not debug) and that the data is piped in correctly, and that you're feeding in IMU data that's time synchronized to the camera. Rovio will not work without IMU data. |
Ok then I'm assuming some bad camera/imu sync.. how to check that? any suggestion? |
Maybe the easiest thing to do is to first check that it's running correctly on the euroc dataset, and in real-time. This will rule out that it's anything other than your data. |
ok I solved the problem of the 'fixed initial frame' (really thank you!!) Calibration resultsNormalized ResidualsReprojection error (cam0): mean 0.588927292038, median 0.488037950524, std: 0.426175123678 ResidualsReprojection error (cam0) [px]: mean 0.588927292038, median 0.488037950524, std: 0.426175123678 Transformation (cam0):T_ci: (imu0 to cam0): T_ic: (cam0 to imu0): timeshift cam0 to imu0: [s] (t_imu = t_cam + shift) Transformation (cam1):T_ci: (imu0 to cam1): T_ic: (cam1 to imu0): timeshift cam1 to imu0: [s] (t_imu = t_cam + shift) Baselines:Baseline (cam0 to cam1): Gravity vector in target coords: [m/s^2] Calibration configurationcam0Camera model: pinhole cam1Camera model: pinhole IMU configurationIMU0:Model: calibrated |
The output timeshift from kalibr is currently 0.0s. This indicates that it was run without time calibration. Could you rerun it with the |
I feel really stupid.. thank you! Adding that flag, btw, leads to a new error: Before you ask, my imu.yaml file that I used for the second step in the calibration (kalibr) is:
|
If the system has accurate hardware timestamping than That error occurs as the system has a larger time offset than kalibr is expecting (default max of 0.01s). Try setting |
Here is the link to the sensor: This is really strange:
|
So I have bad news, if this sensor is doing hardware triggering / timestamping than the driver is throwing this information away and just stamping things on arrival in software. Here is the line in the driver it happens at https://github.com/optor-vis/vi-stereo-v1/blob/master/optor_VI_Sensor_SDK_V1.0/SDK/src/optorcam.cpp#L954 The two cameras have different timing offsets because they are sent one at a time and so have different arrival times. While an offset of 1 or 2ms probably wouldn't be a deal breaker with 16ms of offset things will probably diverge pretty much immediately |
Thanks again for your support and your patience! |
If no hardware timestamps exist you don't have that many good options. You can take the values kalibr gives you and code these into the driver to get things a bit more consistent. However, these offsets will change with factors such as your CPU load and the arrival times will usually have a spread of a few milliseconds. Since you know the images and IMU are running at a fixed rate you can implement a simple kalman filter to smooth out this ripple and try hardcode the offset, though I am unsure how accurate this will get you. Most people using VI sensing have their own custom solution. Of the commercial solutions I know of that we have tested: |
many thanks again! |
One with a torch attached. Though seriously we have managed to run rovio on images that are so dark a person can barely see whats going on. As a rule of thumb the bigger the sensor and the larger the lens the more light will be captured, however you hit diminishing returns pretty quickly making active illumination a good option for dark enviroments. |
Do you have any rosbag to share? or related video/paper about these experiments? |
The darkest flights we have done were probably in the back of the building shown here https://www.youtube.com/watch?v=49WiPHkkhBw Here is a short section of rovio running on part of one of these flights |
This is reeeeally impressive! and also what I was looking for! |
What is the status of rovio running with optor camera? I have a optor camera and i have finished with calibration... but i get slow odometry results |
If you are getting slow odometry this usually means that rovio has diverged and it is falling behind real time while it tries to find new features in a large region. Unfortunately the cause of this will be that tho optor camera relies on poor time synchronization through arrival time timestamping. This combined with the fairly low quality IMU means it is unlikely to ever work well with rovio. |
Hey thanks for the info...though its a bad news for me...well is there any workarounds for better timestamping?....i found that VINS mono is working quite well with optor cam and i heard that rovio works more robust than VINS mono using optor cam.. |
Is there a way to hack trigger pins of optor camera? I want them for hardware synchronization |
I believe VINS has online time offset estimation, which allows it to compensate for these sort of issues. I am unsure about what is possible with the optor. I have never used one, just looked through its driver. |
Yep ViNS mono can compensate that issue and maybe thats the reason VINS works quite well. Do you have knowledge of hardware pins of a camera module? I can see some accessible pins HS, VS , LED out and PCLK on the back of optor cam. I was hoping if i can use one of them for hardware timestamping and synchronisation. |
@tiralonghipol Hello, could you give me a hint how to get the param of imu like this ,thank you very much: |
@chenwinki can you be more specific on your question please? what do you mean by 'get the param of imu' |
@tiralonghipol Thank you for you advice! I calibrate imu using imu_utils, and calibrate imu and camera using kalibr. but I got bad result, even when I put my VI sensor static, the result shows the VI sensor are moving(about ten meter in 100s), could you give me a hint about the result? |
The Optor / Loitor VI sensor has many problems, being a cheap sensor. The worst one is that the sync between images and imu is not really hardware |
@tiralonghipol So, you have been using the mynteye camera successfully! BEST REGARDS |
Hi @mechaliomar |
Hi. I calibrated my camera with Kalibr, and setup everything.
I was wondering which parameters can I act on in order to speed up the performance for real time..
Right now, seems like rovio keeps doing calculations on the first frame on startup and if I move the camera the frame still fixed.
I'm using an i7 pc, and the cpu in not saturated..
any hint?
Thank you!
The text was updated successfully, but these errors were encountered: