Click here to Skip to main content
15,868,141 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I'm working on Image-processing with Open-CV in Linux, and I want to make a robot. I thought instead of using a microcontroller and learning how to program it and how to build a board for it, I use a single computer with Linux OS to handle all of my needs. My robot is a Humanoid and It has many motors,sensors, and a camera. Norm is using a separate IMU for motors and sensors, But I wanted to know is it possible to doing all of task with single board(a mini-PC with Linux OS)?
Posted
Comments
Richard MacCutchan 15-Feb-14 5:15am    
Yes it's possible, but it all depends on the actual details of the application. It is impossible to give a valid answer based on so little information.
Nelek 15-Feb-14 7:30am    
OP gave you an answer, but posting a new comment. Have a look below
hor_313 15-Feb-14 6:43am    
For details, you can consider a Nao-humanoid robot. Is it possible to implementation it by only one mini-PC board(If our board has every ports we need)? We won't deal with delay problems in practice?
Richard MacCutchan 15-Feb-14 7:36am    
Sorry, that is not details. I suggest you try whatever it is you want to do and see what happens. As I said before, it is impossible to answer such a general question.
hor_313 15-Feb-14 10:04am    
Thanks Richard, but I want to know if it is possible i do it. I don't want after spending some money and much time I know that the way I chosen is wrong! I want to know someone did it before?

1 solution

Yes, it is possible. Consider that modern smart phones do a good deal of real time processing and they are just one example.

In my opinion the question is not, whether it's possible to do real time work under Linux, but how difficult it will be to implement certain things. Depending on how time critical some tasks may be, it might be necessary to resort to implementing certain parts as a device diver or on the kernel level or dedicate one processor core to a certain task.

That is the reason why some developers sometimes use dedicated satellite processor for particularly time critical tasks. It is sometimes easier to do it that way than to run it all under one operating system.

Sorry for the rather general answer, but your question was rather general.
 
Share this answer
 
Comments
hor_313 15-Feb-14 9:53am    
Thanks nv3.
What about dual core processors(like newer cortex-M series of ARM)? Or what about virtual cores? Is it possible make virtual cores in Linux to do critical tasks? Or using Multi-threading technique?
About last line of your answer, what did you mean about doing that with more than one operating system?! you said " It is sometimes easier to do it that way than to run it all under one operating system." . Did you mean multi-core systems have more than one OS?
nv3 15-Feb-14 10:15am    
Sure, having multiple cores at your disposal helps, even if you don't explicitly assign threads or processes to cores. But at the stage you are right now, I would rather take a look at the most time-critical things you have to do and decide, how to implement them. As long as you are talking about things in the millisecond range, you probably can handle things quite easily from a normal user level programs. If you need anything to respond faster than that, you will have to look into device-driver or kernel programming. And
if it turns out that even a normal context switch is too long a period for your process,
then start looking into dedicated hardwar.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900