Closed lukehutch closed 4 years ago
The computational requirements depend on so many factors, not only on the sensors and CPU, so one cannot list system requirements.
Just to give you examples:
The only thing I can say about CPU for sure is SSE/vector math is used heavily and more cores are better to find more loop closures. GPU is not used.
@gaschler Fair enough. But I still have no idea of even what ballpack we're talking, within an order of magnitude or so. Can Cartographer be run in realtime on a Raspberry Pi, albeit with low snapping resolution etc.? (I'm guessing not.) What about a laptop or small form factor PC? (I'm guessing maybe, for a mid-to-high-end laptop, depending on the settings, but probably not on a low-end laptop.) Or should I only really consider capturing the data on a low-powered CPU for later offline processing on a high-end desktop or server?
3D algorithm: PCs can handle multiple lidars in realtime with plenty of loop closing. Again, the is leeway by setting parameters differently.
2D algorithm: Any recent x86 64 bit device, also small ones, should be fine. My PC is usually ~ten times faster than realtime for the "Deutsches Museum" example in Cartographer ROS.
If the compiler does not use vector math for the target platform, it will be slower by a factor. We implement the math with Eigen, so the compiler can choose with operations to use for your target platform.
Thanks. On the second part of my question, is there a hardware assembly and hardware/software integration getting started guide somewhere?
Thanks. On the second part of my question, is there a hardware assembly and hardware/software integration getting started guide somewhere?
Not that I know of. Closing as answered.
The documentation says, re. hardware requirements:
However, this is not enough information when spec'ing out on-board computational hardware for a specific sensor, if Cartographer needs to run on-device. For example, approximately how much CPU power would be needed to run Cartographer in realtime with an Ouster OS-1^16 (327,680 points/sec) vs. OS-1^64 (1,310,720 points/sec) vs. OS-1^128 (2,621,440 points/sec) sensor, or for one vs. two Velodyne VLP-16 sensors?
More generally, it would be great if somebody could please put together a quick guide of how to assemble a complete Cartographer system from parts (i.e. which sensors are recommended, how they should be mounted (e.g. at what optimal angle, if using two LiDAR sensors), what the computational requirements are, what the power draw would be, how to set up the whole software stack, etc.).