3
$\begingroup$

For our Minor “Robotics and Vision” we need to use ROS to create a system that can navigate to and from a coffee machine. The available hardware consists of a robotic platform from "Dr Robot", and a manipulator that uses actuators from Dynamixel. The system should use computer vision to navigate the robotic platform and manipulator.

Besides the robotic platform and manipulator, we have a limited budget of 500 euros to get all the other necessary hardware, including the processing device(s). This/these devices need to run the ROS core and nodes that are responsible for: - Analyzing environment with computer vision; - Controlling the engines; - Controlling the manipulator; - Interfacing with a database.

After research we found that we could use a PC, like an Intel NUC or a custom PC. Or we could use several Raspberry Pi’s to run separate nodes, and let them communicate within a network. We tried to find out how much computational power was necessary to fulfill our requirements, but after searching online for a while we could not find a fitting answer.

Our question is if anyone knows how much computation power we need to fulfill our aforementioned requirements, or how we could find out (without spending the entire budget).

EDIT:

The problem for us is that we are using the V-model, which means that we design our entire system before implementing it, therefore we have to decide on what type of hardware we use for the system before we "are allowed" to write any software. This makes it impossible to test it before ordering the computing part.

$\endgroup$
  • 1
    $\begingroup$ I have to point out that the V-model is a horrible model for any engineering project unless you a comic-book genius like Reed Richards or Tony Stark. And even these fictional people tend to improve their inventions after a short time. $\endgroup$ – NomadMaker Apr 7 '18 at 3:18
3
$\begingroup$

Edit:
With the new information in your post I would highly recommend going for more computing power than you think you need. It is always to have a little extra wriggle room than to be stuck with not enough.

Raspberry Pi's have the awesome advantage of the easily accesable GPIO. ROS is good but adds extra complexity over a single system. On the flip side, using multiple Raspberry Pi's allows you to develop and prove up each system individually.

Alternatives to the Raspberry Pi are:


Think about solving the problem differently. I get the impression that you expect to get it working first time without having to re-engineer anything. Instead consider creating a few prototypes first before designing your final system. Similar to the iteration/spiral model

Your first prototype is going to be your proof of concept. I have a philosophy of using computers/processors/equipment that far exceeds my minimum requirements for the proof of concept. That way you can prove that each system works, without having the problem of needing just a little more of this or that.

In your case that would mean that I would start off with a full blown computer (probably something I had lying around spare). It could even mean that you prove up each section on separate hardware and combine it at a later stage.

Then you can refine your design down until you have it running on the minimum hardware required. This will most likely require you to take measurements of the resources and processing power you use.

So how does this all fit into your 500 euro limit? In most cases the requirement is that the final design costs 500 euros. How you get to that final design isn't counted. Even if it is, you can usually get decent second-hand hardware for practically nothing.

$\endgroup$
  • $\begingroup$ The problem for us is that we are using the V-model, which means that we design our entire system before implementing it, therefore we have to decide on what type of hardware we use for the system before we "are allowed" to write any software. This makes it impossible to test it before ordering the computing part. $\endgroup$ – Foitn Oct 5 '17 at 13:45
1
$\begingroup$

This largely depends on the environment and the sensors on your robot.

First, are you required to only use computer vision for navigation? If not, I would recommend at least adding wheel encoders. The encoder can give you pose over time that drifts while vision can update your pose. You can also add a gyro for better heading, but you need to remove bias etc...

Second, can you modify the environment? You can put marker in you environment for the computer vision algorithm. There are types of marker you can use to extract the robot pose. This would probably be your best option if you want to use a computer like raspberry pi. If you are going to try slam or something, you will probably need a better computer.

Edit: The Jetson computers are a pretty good for computer but may just be out of your budget.

$\endgroup$
  • $\begingroup$ Good question, we have a dr robot jaguar 4x4, which has a 640x480 camera, LIDAR and wheels with encoders. To problem is that we know that one raspberry pi would probably not be sufficient, but what if we use like 4-5 raspberry pis and let them share the load and have them communicate using ROS $\endgroup$ – Foitn Oct 5 '17 at 13:57
  • $\begingroup$ Great. You should use those encoders for dead reckoning and update with vision. I think you will struggle with the raspberry pi to be honest. I would recommend building your system with a better computer if possible. $\endgroup$ – Ralff Oct 5 '17 at 14:02
  • $\begingroup$ Does your answer include using multiple RPis? $\endgroup$ – Foitn Oct 5 '17 at 14:18
  • 1
    $\begingroup$ Yes. But, if you do try to use RPis, I'm sure you will need multiple to get close to real time performance. $\endgroup$ – Ralff Oct 6 '17 at 3:37

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.