-
Notifications
You must be signed in to change notification settings - Fork 652
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
Estimation diverges on Xavier NX with EuRoc dataset #350
Comments
I am not sure, and it is difficult for me to debug for you. I can recommend increasing the verbosity and seeing if there are any issues, and also inspecting the feature tracking by looking at the published images. Do you see that the estimator was able to successfully estimate, are features being extracted, and is the system publishing at full rate (use ros2 topic hz I believe to see this)? I know that on the Jetson Nano with 5W mode the system struggles / fails, but on non-low power modes code works as expected. You also might see performance issues by running it inside docker, so you might want to run it directly on the system itself. Hope this helps. EDIT: also I have not tested on humble myself, but this typically isn't an issue unless the linked libraries have had large changes. |
Thanks @goldbattle for the feedback. I am not sure if this helps, but here is some screen output
I can record a ros 2 bag for debugging. What is the minimum set of topics to record ? Thanks again for your assistance. |
Here is a ros 2 bag |
What you have printed looks ok. Can you try the Looking at |
Thank you very much @goldbattle for taking the time to check my ros bag. I recorded the bag on the same platform, not over a network. If it worked OK with you on a jetson nano, then it makes sense that it should work on Xavier NX as it has more compute power. Also, I doubt that running the system inside docker is the main bottleneck. I have used more complex software inside docker containers with no issues. I think feature tracking has some issues as it seems to be running at low speed, but I am not sure why. I will try to play with the number of features and number of cameras. What number of features did you use on the Nano? |
I set
|
Wow this is really slow : |
Here is the output of
|
We were able to run openvins with a T265 on Jetson NANO in real-time with the following important changes in the default config of EurocMAV: max_slam: 25
max_slam_in_update: 25
max_msckf_in_update: 20
num_pts: 50
downsample_cameras: true #this reduces the tracking time and CPU workload by a lot The runtime statistics are mean_time = 0.0192 | std = 0.0084 | 99th = 0.0388 | max = 0.0603 (tracking)
mean_time = 0.0006 | std = 0.0002 | 99th = 0.0012 | max = 0.0092 (propagation)
mean_time = 0.0008 | std = 0.0013 | 99th = 0.0039 | max = 0.0217 (msckf update)
mean_time = 0.0030 | std = 0.0022 | 99th = 0.0082 | max = 0.0200 (slam update)
mean_time = 0.0023 | std = 0.0085 | 99th = 0.0222 | max = 0.0915 (slam delayed)
mean_time = 0.0003 | std = 0.0002 | 99th = 0.0008 | max = 0.0088 (re-tri & marg)
mean_time = 0.0263 | std = 0.0121 | 99th = 0.0543 | max = 0.1129 (total) |
@HoEmpire I tried your configs (on V1_01_easy, EuRoc dataset), but the estimation drifts a lot. |
The Jetson Nano is not with me at this moment, so I am not sure what versions the opencv and Eigen are. ============================================
ATE LATEX TABLE
============================================
& \textbf{V1\_01\_easy} & \textbf{V1\_02\_medium} & \textbf{V1\_03\_difficult} & \textbf{V2\_02\_medium} \\\hline
openvins & 0.827 / 0.061 & 1.585 / 0.135 & 3.000 / 0.142 & 1.072 / 0.120 \\
============================================ It failed on V201 and V203. But at least I assume this config should be able to run on V101 if the tracking performs normally. |
When I ran the euroc |
You should take a look at the script folder to see how we run all the
datasets. There are some non-static periods in the machine hall which
require addressing to initialize if I remember correctly.
…On Thu, Jun 29, 2023 at 12:07 AM WZG3661 ***@***.***> wrote:
When I ran the euroc MH_01_easy dataset, it drifts far away quickly, but
if I set the downsample_cameras: ture, the estimation was just OK.
—
Reply to this email directly, view it on GitHub
<#350 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAQ6TYVCY3A52OXZFCHK25LXNUST3ANCNFSM6AAAAAAZSZHCXE>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
@WZG3661 I set @goldbattle I saw the scripts folder. For the easy ros bag, I saw the start time is at 0, so there is no difference to my case as I start estimator first and then play the bag. I am not sure what is missing. |
One difference is that it is over the ROS communication instead of reading the bag directly, so this can cause some differences. There might be some issues with limited resources and the current multi-threading implementation, I am not sure. I know one problem is that the KLT tracking from OpenCV will have lag spikes which could also cause a problem. Unfortunately I can't debug much from here for you. |
OpenVINS works fine with some tuning for ROS1. Once we switched to ROS2 and solved intra-process communication between the realsense camera and OpenVINS, the estimation diverge was worse than ROS1. The pose can float around when the stereo camera is almost static and stereo VIO can lose tracking very easily. I am also suspecting multi-threading implementation for ROS2 has some issues. To be clear, we have made our own composable node wrapper and compose both realsenseu node and openvins node into one container, and launched the container with the multi-threading mode. |
@makeecat can you please specify what sort of tunes have you done in ros1 open vins implementation? |
Hi
I have Jetson Xavier NX with a ROS2
hubmle
docker container. I cloned this repo and built it usingcolcon build
.the build took some time, but it was successful.
I downloaded one of the EuROC datasets ,
V1_01_easy
. Then, I ran the estimator usingros2 launch ov_msckf subscribe.launch.py config:=euroc_mav
. Then, I played the bag usingros2 bag play V1_01_easy
.I visulaized the
odomimu
in RViz2, and I see the estimator diverges quickly.The same process works fine on my desktop PC.
What could be the issue? Xavier NX is not powerful enough ?
@goldbattle any hints?
Thanks in advance.
The text was updated successfully, but these errors were encountered: