Your feedback + Christmas gift

Hi guys,

We noticed that you are struggling with our documentation in terms of not finding the right entry point for you getting started.
Besides, some of you are not aware of where to find our samples or tutorials and need more help to understand our API, even after having scanned our sample code. We are also well aware of the broken search bar, which will be fixed soon.

Therefore, we want to make your life easier so that you familiarize with our hardware and software stack more profound and faster.

In order to tackle these issues, we need your feedback. Please share us your experience of working with our samples, tutorials and API.
What is it that you find missing, that needs more explanation and that you wish to be included but isn’t?
Share us the very ugly, the bad and also the good - we will address it and we will make it better!

Since Christmas is not far away from now, we will give out 1 of 10 NVIDIA T-shirts to each of you who contributes on this or the AGX related post until Tuesday, 3pm CET+2 and got chosen randomly under all contributors. Your Christmas gift will then be shipped as soon as possible.

Best regards,
Fabian

Hey!

Let me start with a small list of what troubled us the most:

  1. MultiThreading capabilities are not explained well within DriveWorks (or not implemented well).

We have been told that the SAL is not thread safe, but we have proven in our code that it can work in multithreaded environment without locks.

ImageStreamers seems to be a great source of SegFaults for a great number of developers trying to tackle the multithreading with DW. When we reimplemented NvMediaProducer and CudaConsumer using NvMedia library we fixed the issue.

We believe in fast pipelines in our car software, therefore lack of multithreading in your samples is confusing as the potential is clearly there.

  1. Some useful parts were removed from DriveWorks 1.2.

For example - Object tracking is now not consistent with DriveNet. It DW 0.6 there was sample using both DriveNet object detector and tracker. I suppose it was left out for next release because it didn’t make it to the deadline?

  1. Some tools/parts doesn’t work for us out of the box.

Recording tools might use some love. We had to reimplement them ourselves.

You cannot use H264 serialization (CameraSerializer) on virtual camera - we don’t quite understand why the encoder needs a handle to the sensor, when the image properties are later passed to the serializer anyways. The use case is when you want to visualize some new stuff on already recorded data.

  1. Some concepts could use some more space in the documentation.

Like F-Theta camera model - We were completely unaware we could use it on Pinhole cameras.

Some parameters are only mentioned in the docs.

Proper migration guide.

If you think the information is too detailed, then put it in the extra section. I think the developers would gladly read some extra information on interesting topic.

  1. Drive PX2 fans are noisy even when not under workload.

Improvements and good things:

  1. Camera calibration and tools around it definitely got improved by a leap. While it’s still not perfect it was a huge improvement.

We think that new teams would appreciate some interactive intrinsics calibration. Even if you could calibrate only at 4 FPS, it would still be helpful as the extra frames could get dropped. It would be choppy - yes - but helpful.

  1. Speed gains. This seems to be opposed by making the platform less stable (^ see ImageStreamers), yet I listed it as a plus.

  2. NvMedia framework has a lot of different and also interesting samples.

  3. Documentation got improved.
    We still think there is a lot of room for improvement (check the previous list), but some parts got upgraded and they weren’t just plain copy-paste from previous version.


What we wish for:

  1. Greater C++ standard support on the board. At the moment we are cross compiling and linking the C++ lib statically, which is not ideal.

  2. Our greatest wish is for open sourcing. If you could consider open sourcing some of the libraries (like DriveWorks), we believe that the current development community around Drive platform, under the supervision of the NVIDIA, could greatly contribute to the project by fixing the issues and improving the software - thus making the platform more attractive.

  3. Samples for NvMedia framework to be remade in C++ with nice component design -> so the developer could extract some required parts rather easily. Also adding CMake support to the samples might save the developers some time.

=======================================================

I might ask around the office some more and update the list.

Also if you would like to discuss any point I have mentioned feel free to contact me.

Best regards,
Jan

There are documents for a lot of things, but unfortunately they are not very well documented.
Especially for someone starting with Nvidia development will struggle.
We need to login for everything, sometimes you login but you get to see authentication as pending.

Happy new year folks and thanks for your feedback, we really appreciate your help.

As I have sent you a message already, the shirts will leave our office this week.

  • Fabian