I would like to build a visual SLAM robot (just for self-learning purpose) but I get frustrated how I know which processor and camera should be used for visual SLAM.

First, for the processor, I have seen three articles, which shows different systems are used for implementing their SLAM algorithm:

  1. Implementing SLAM algorithm (however it uses ultrasonic sensor rather than visual sensor) in Raspberry Pi (processing power is only 700 MHz) in Implementing Odometry and SLAM Algorithms on a Raspberry Pi to Drive a Rover

  2. I have also seen that Boston Dynamics use Pentium CPU, PC104 stack and QNX OS for their Big Dog project, BigDog Overview November 22, 2008

  3. Then, I also found a project uses a modern XILINX Zynq-7020 System-on-Chip (a device that combines FPGA resources with a dual ARM Cortex-A9 on a single chip), for a Synchronized Visual-Inertial Sensor System, in A synchronized visual-inertial sensor system with FPGA pre-processing for accurate real-time SLAM

But after reading those, I have no clue how they end up with those decisions to use those kinds of processors, stacks or even OSes for their project. Is there a mathematical way, or a general practice, to evaluate the minimum requirement of the system (as cheap and as power efficient as possible) for an algorithm to run?

If not, how could I know what processor or system I have to prepare for a visual SLAM robot? If there is no simple answer, it is also cool if you can recommend something I could read to have a good start.

Secondly, I also cannot find clear information which camera I should use for a visual SLAM robot. I also have no idea how they evaluate the minimum requirement of the camera. I found a lot of papers saying they use RGB-D camera but when I Google to find one, there are very few commercially available. The one I found is Xtion Pro Live from ASUS Global (for $170 which is quite affordable for me), but they are out of stock. Are there any practice I can choose a suitable camera system for visual SLAM too?

Sorry if my question is too long. I feel that choosing the system and camera looks like a thing that requires a lot of experience and background knowledge. So rather than direct suggestions, it is cool if you have some ideas/recommended resources for me to learn the general ways people make such decisions in general or in similar projects, if any.


In college I served as the team leader in development of an autonomous underwater vehicle (AUV). In the beginning we were confronted with very much the same question you are presenting right now. Ultimately it came down to, we knew that we didn't know what we didn't know. Collectively we had all had some amount of embedded systems development experience, but jumping from making a small dual axis gimbal project to making a completely autonomous robot capable of interpreting it's environment was massive, and we had no idea the level of computing we would need. That being said, we were relying heavily on vision systems which, from doing some small experiments with a Raspberry pi attempting to interpret live video feeds, we knew was going to be processor intensive. Therefore, our solution was to GO BIG. As the centeral processor we crammed in a Gigabyte Core i7-6500U. It more than adequately addressed all our requirements. With something like this, you can't necessarily know what all you are going to need system wise until you are done. Then you can look at how much your system requires and scale down to more appropriate hardware afterwards. I hope this helps. I know it's a frustrating situation to be in.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.