ctu-mrs / mrs_octomap_mapping_planning

Metapackage containing MRS Octomap-based 3D mapper and planner.
GNU General Public License v2.0
12 stars 2 forks source link

CUDA support ? #3

Closed dookei closed 2 years ago

dookei commented 2 years ago

Hi @klaxalk, have you tried to run Octomaps this with CUDA support? I read that it improves the performance in 4 fold.

klaxalk commented 2 years ago

Hey, we have not. Not that we would not need the performance, but our drones do not have CUDA-capable GPUs, so it does not make much sense for us. Instead, we are now investigating other mapping libraries, such as UFOMap or VoxBlox. Octomap is rather old.

dookei commented 2 years ago

Hi, ahh yes that true you guys are using the NUCs. Wouldn't be an option to move to the Jetsons? Nvidia even "offers" some GEMS on the ISAAC SDK for cuda accelerated image processing. I am currently still using the jetson Tx2 but the new Xavier NX looks quite promising.

klaxalk commented 2 years ago

The Jetsons are actually not that much powerful. They are good for the vision tasks, however, for the rest of the system, they are quite weak. And for us, the vision is just one little piece of a large puzzle, so we generally don't want a PC that is tuned just for that. We still need to be able to do control, tracking, trajectory generation, path planning, mapping, exploration, navigation, saving data. And the current Intel i7 are quite good at most of that, except for image processing. Another issue is the connectivity. In the recent DARPA SubT Finals, we had a drone with a single Intel NUC with Ouster OS1-128, 2x RealSense, 2x Bassler camera, 1x Mobilicom, 3x FTDI. Correct me if I am wrong, but having that all on a Jeston would be a challenge (2x ethernet, 2x USB 3.0, 5x USB 2.0... Not mentioning Jeston is a really a pain for configuration. You can't just boot it up from a USB flash drive and reinstall the OS. It might be good for showcasing some vision-based research, but we have had not much use for it in our lab.

dookei commented 2 years ago

Hi @klaxalk, yes regarding the CPU power on the jetsons, I totally agree with you. The 6-core NVIDIA ARM v8.2 64-bit CPU from the new xavier nx are more than enough for our current tasks. And if its enough for skydio to perform full collision avoidance and mapping its also enough for me ;-)

On the connectivity I don't see the issue. The carrier boards available for the jetsons are quite customizable and flexible. I currently have a jetson connected with 7x USB3 cameras several I2C TOF sensors, 2x UART(toFCU) 1x USB2.0(to FCU for flashing), 250 Gb SSD ,wifi, etc . I still have alot of peripherals available like ethernet, CSI, HDMI,CAN, SPI, etc.

Regarding the configuration, yes it is indeed a pain, but that is due to is hardware configuration flexibility. Lately I just create a image clone (from our latest setup) over the USB (OTG dev), and flash it into other jetsons. Takes long, sure, but complex is not. Just one command and let it do is thing. One could also simply copy it into an SD card or SSD if speed is required. I am currently developing a carrier board, with the jetson xavier nx as CC, specific for Drones. Of course I would like to have something with more CPU power...but is either CPU or GPU...unfortunately currently not both. The issue I see in the current sold systems for drone developers is redundancy and flexibility. That's why I am aiming for something with power redundancy, FCU integrated redundancy and connectivity flexibility. For some use cases, you just need CSI cameras, others USB, others just ethernet, some they want all. But one should not compromise this connectivity with big and bulky carrier boards. Anyway thanks for your valuable input. ;-)

Quick update: Nvidia is going to release the jetson Orin NX next year. https://www.nvidia.com/en-us/autonomous-machines/embedded-systems/jetson-orin-nx/