-3
$\begingroup$

I'm implementing a BCI-Wheel Chair Control System where signal are extracted from the arm into MATLAB -> feature extraction -> classification -> Control signal

The delay should be minimal between muscle movement and when control signal is sent

I've read that windows is not optimal for this purpose (not even 8.1?) Can anyone suggest any solutions to speed up the process as I've described from a OS/hardware perspective?

$\endgroup$

closed as primarily opinion-based by hotpaw2, jojek, Matt L., Paul R, Peter K. Aug 18 '14 at 8:59

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.

  • $\begingroup$ This is a very opinion-based question (or the answers would be). As the selected answer says, though, you're pretty much stuck with non-real-time OSes if you need to run Matlab unless you have some of the funkier simulink extensions for non-PC systems. $\endgroup$ – Peter K. Aug 18 '14 at 9:05
0
$\begingroup$

Your choices are Windows (various flavors,) Mac OSX, and Linux (even more flavors.) Those are the operating systems that Matlab runs on.

blackibiza's comments about ARM aren't relevant here, because Matlab only runs on Intel or AMD x86 processors.

Of the three, linux is more customizable. You can strip a linux system down so that there's less stuff going on in the background, and you can use the realtime patches to improve things more.

Since you are using Matlab directly, I would assume you are still protoyping your system. At that stage, I would think you would work with whatever you are most comfortable with so long as it doesn't cause an obvious unacceptable performance problem.

If you are trying to move beyond the prototype stage, then I think you should look at the MathWorks Embedded Coder pages. This offers support for converting Matlab code into C code that you can compile and run on various embedded systems - including ARM.

$\endgroup$
0
$\begingroup$

Linux and Real-Time Linux patch are the answer. Especially if you are dealing with ARM boards, it gives you the minimum overhead possible, using an headless or terminal-only system. Quoting the an article ( http://www.linux.com/news/featured-blogs/200-libby-clark/710319-intro-to-real-time-linux-for-embedded-developers) featured on linux.com,

if your embedded device has some "must have" deadlines to respond to then the PREEMPT_RT patch would probably be sufficient. I've heard that some of the Garmin navigational devices run with Linux patched with the PREEMPT_RT kernel.

What PREEMPT_RT gives you over the normal kernel is not only faster response times, but more importantly, it removes all unbounded latencies. An unbounded latency is where the amount of delay that can occur is dependent on the situation

You can get more infos about Real Time patch and RTLinux (Real Time Linux with the applied patch) here:

https://rt.wiki.kernel.org/index.php/Main_Page

$\endgroup$

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