4
$\begingroup$

I am very new two robotics, however I have a working stereo algorithm which I want to combine with a SLAM algorithm. I am developing this system for an other application but I decided integrating it on a robot first and testing it might be a good way to get used to the system and test its behaviour in a realistic environment. (rather than testing it in some kind of software simulator only) However, I want the system to be autonomous and running on-board of the rover.

The system I am talking about will consist of:

a stereo camera a rover with wheels with one motor each possibly some kind of sensor that "measures" the movement, e.g. how much the wheels turned maybe some distance sensor

Appart from this it's only software the stereo software is already developed, the SLAM algorithm not. Therefore it is currently impossible to say how much RAM it needs. I am currently running the stereo-vision only on an i7 in approx. 1s.

Now my question: as mentioned I have no idea about robotics, and also my electronics knowledge is limited, so I have no idea what I need for this robot when it comes to the processor and the electronics.

I read some stuff about the Raspberry Pi and Arduino boards but I have no idea what to make from this. I am afraid that a Arduino will not be able to handle the computational load of the stereo vision and the SLAM algorithm but I read that Raspberry Pis are not the first choice when interfacing with sensors is needed (in this case my stereo cameras). Also I found the Leika kit which is a robotics kit for the Raspberry Pi. Maybe this would be a good option for me?

Maybe an entirely different system would be even more advisable?

Possibly someone else build an equally complex system before and can give me some advise form his/her experience?

$\endgroup$
  • 1
    $\begingroup$ I could be wrong, but even the Pi or beaglebone might not be powerful enough. It may require a laptop. $\endgroup$ – Airuno2L Jul 25 '14 at 12:05
  • $\begingroup$ @Airuno2L I fear this, too. If a laptop is required this would mean that I send the stereo images to my laptop and the wheel "commands" back to the robot? Is this possible with both the arduino and the Pi? $\endgroup$ – Svenja Woicke Aug 1 '14 at 12:14
  • 1
    $\begingroup$ This would only be possible on a pi/beaglebone or other Linux board. Rudimentary wifi adapters exist for Arduinos, but there is no way data rates will be high enough. Keep in mind that most arduinos run at 16 mhz. $\endgroup$ – David Aug 1 '14 at 17:44
6
$\begingroup$

Stereo vision and SLAM are pretty heavy algorithms, both in terms of the processing power and RAM required. You can forget about running this on a little microcontroller like an Arduino. These run at tens of MHz, and have only a few KB RAM.

At the very least you'll need something running at hundreds of MHz with hundreds of MBs of RAM. You didn't say exactly what i7 you were using, but these typically run at several GHz clock speed, and would have several GB RAM installed. On this machine, your stereo vision took a whole second to process. On a Beaglebone, you might expect this to take tens of seconds at best.

I recommend using a small laptop computer to process the vision, and something like an Arduino to interface the laptop to the rest of the robot. The laptop can talk to the Arduino over the USB serial port, which should have ample bandwidth for that.

This is quite a common way to prototype a robot:

Laptop Robot

$\endgroup$
2
$\begingroup$

Arduinos are slow. They run at 16mhz and don't normally have more than 10 kb of ram (the due has more, but still well under 1 mb. I personally would look into a beaglebone or udoo as they are both a lot faster than a raspberry pi. However, if you don't have much experiance with robotics and your project doesn't require it, I would avoid it

Also, your question isn't very directed. You might want to edit it to make it more so (it could be closed as not specific or the likes)

$\endgroup$
  • $\begingroup$ what kind of information do I need to add in order to make the question more directed? $\endgroup$ – Svenja Woicke Jul 31 '14 at 6:40
  • 1
    $\begingroup$ Currently your question is asking what would be the best for xyz task which is highly optional. I'm no expert in asking questions on stack exchange sites, but asking something that could be measured by more exact metrics would help. For example, asking how many FLOPS various platforms can achieve or what hardware similar tasks have been done before on might help. If you have part of the algorithm running on a x86 machine stating how much ram it uses would also help. $\endgroup$ – David Jul 31 '14 at 17:39
0
$\begingroup$

There's a lineup of NVIDIA products designed specifically for SLAM/CV/etc in mind. You may take a look at Jetson TK1/TX1/TX2, that include several ARM cores as well as GPU unit for parallel image processing and are available as the developer kits and as a separate modules.

The best part of these modules, they use ARM version of Ubuntu so you may develop the software on your desktop PC, using CUDA running on NV GPU board, then easily recompile and have it working on your robotics appliance, probably without changing a single line in your code.

Please, google for "jetson slam" to see a bunch of projects.

$\endgroup$
0
$\begingroup$

The Arduinos are mostly Microcontroller boards. This means that they are good for controlling sensors and actuators in real time, but not so good at controlling complex tasks.

Single Board Computers (SBC's) are better for the more complex tasks, such as video, SLAM, and communicating with other computers.

I would not use a Raspberry Pi for this, because the Pi isn't all that powerful or fast.

I like the Udoo. It is an i86 platform rather than ARM. However, one of it's most interesting things is that it contains an Arduino-compatible (complete with headers for shields) on board and directly connected to the main processor.

Another computer that I like using for the main brain of a computer is the Intel NUC. These are tiny little computers that can do a lot more than most people think. I've never had problems installing Linux on them.

$\endgroup$

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.