Welcome to this new page about my research in Brain Computer Interfaces (BCI). It is the ultimate combination of my passion for neurosurgery / neuroscience, and my passion for information technology. In my first experience with neural engineering, I found it to be an exciting field, and I am looking forward to learn more.
:: LynxMove Qt ::
LynxMove Qt is an open-source and cross-platform software framework for neuroprosthesis control, written in C++ and Qt. It currently supports the LynxMotion robot arms, and has been tested on the AL5D model. The software uses the QextSerialPort library to connect with the serial port (using the USB-to-Serial-Adapter).
The current version (0.1) has been successfully used on Windows 7, Mac OS 10.7 and Ubuntu 12.04 to control the robot arm. The arm can be moved using buttons, sliders, ASCII commands and…. BCI input. The latter is achieved by keyboard input (0-9), which corresponds to a particular type of movement:
0 = Rotate base to left
1 = Rotate base to right
2 = Move shoulder forward
3 = Move shoulder backward
4 = Elbow flexion
5 = Elbow extension
6 = Wrist flexion
7 = Wrist extension
8 = Open gripper
9 = Close gripper
The step size (i.e. amount of movement for each command) can be set between 1 and 300. Note that channels are still hardcoded, using channel 0 up to 4 to connect your robot servos to.
You can download the source code from the Google Code project page.
I intend to add the source code to a true repository, but have not made up my mind on SVN vs GIT. When I have, I will adapt the link above correspondingly.
Compile and run. No additional drivers needed. Select COM port and click the Connect button.
Ubuntu recognized the USB-to-Serial-Adapter automagically, but did not offer write access to it. Type the following commond, followed by your root password, to get write access:
sudo chmod 666 /dev/ttyUSBx
and replace “x” by the number of your device (in my case, it is ttyUSB0). You can find this by typing:
Then compile and run the application. Select the serial port you just used, and click the Connect button.
Mac OS X
Supposing you use the FTDI USB-to-serial adapter cable, you can download drivers for Mac OS X here. I tested driver version 2.2.17 on an Intel Mac running Mac OS 10.7.4 (aka Lion) and it worked perfectly.
Then compile and run the application. Select the appropriate serial port from the menu and click the Connect button.
Future developments on LynxMove Qt
This is on my current To Do list:
- integrate with BCI2000 and OpenViBE
- make hardware channels customizable for users
:: MATLAB class ::
Download the MATLAB class “LynxArm” from the Google Code project page and install into a directory which is in your “path”. You can use it in custom scripts you are developing. Its use should be fairly self-explanatory from the source code and built-in documentation. Some examples:
% Create an instance of the robot arm
arm = LynxArm(‘COM4’);
% Move using BCI key input (0-9); see top of page
% Move using ASCII command
% Disconnect arm from serial port (making it available again)
See the homepage on how to contact me.