31
Comment:
|
4540
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
Describe LearningRobots here. | ## Please edit system and help pages ONLY in the master wiki! ## For more information, please see MoinMoin:MoinDev/Translation. ##master-page:FrontPage #format wiki #language en #pragma section-numbers 2 = Learning Robots = This wiki site is part of the [[https://venus.tue.nl/owinfo-cgi/owi_0695.opl?vakcode=DBD04&language=NL | Learning Robots]] module. <<TableOfContents>> == Connecting MATLAB and Arduino/Admoveo == === Arduino support in MATLAB (no Admoveo robot support) === * Math``Works has a software package to support Arduino directly in MATLAB. You can find the package from [[http://www.mathworks.nl/academia/arduino-software/arduino-matlab.html | its website]]. Please notice that: * You do need to login with your MATLAB account, in order to download the package and get access to other resources such as tutorials. * Check out the [[http://www.mathworks.nl/academia/arduino-software/arduino-matlab.html?sec=resources|Additional Resources]] to find a useful Webinar. * In the downloaded zip file, readme.txt has very detailed instructions for installing the firmware to Arduino and the necessary library to MATLAB. * if you plan to use servo motors, you need the [[http://arduino.cc/en/Main/ArduinoMotorShield|motor shield]] for MATLAB to control the motors properly using the given package. * To get the online documentation of the arduino class in MATLAB, type in "arduino(" and wait for a dialogue box to pop up: [[attachment:arduinomatlab.jpg|{{attachment:arduinomatlabthumb.jpg}}]] === MATLAB-Processing-Arduino/AdMoveo: Using matlabcontrol in Processing === * The matlabcontrol library for Java is available from [[http://code.google.com/p/matlabcontrol/]] * To install the library to be used in Processing: 1. Download "matlabcontrol jar with source files included" from [[http://code.google.com/p/matlabcontrol/downloads/list]]. 1. Rename the jar file (for example, matlabcontrol-4.0.0.jar) to "matlabcontrol.jar". 1. Create a directory in your Processing library path: {{{<Sketchbook location>\libraries\matlabcontrol\library}}}, put "matlabcontrol.jar" in this directory. 1. To verify your installation, start processing, go to menu "Sketch->Import Libraries", you should be able to able to import "matlabcontrol": [[attachment:matlabcontrol.jpg|{{attachment:matlabcontrolthumb.jpg}}]] * Follow the [[http://code.google.com/p/matlabcontrol/wiki/Walkthrough|Walkthrough]] to understand how to communicate to MATLAB in JAVA. * Similar approach described in the [[http://code.google.com/p/matlabcontrol/wiki/Walkthrough|Walkthrough]] can be done in Processing. Take the "Hello World" example in Java: {{{ #!java public static void main(String[] args) throws MatlabConnectionException, MatlabInvocationException { //Create a proxy, which we will use to control MATLAB MatlabProxyFactory factory = new MatlabProxyFactory(); MatlabProxy proxy = factory.getProxy(); //Display 'hello world' just like when using the demo proxy.eval("disp('hello world')"); //Disconnect the proxy from MATLAB proxy.disconnect(); } }}} The same can be done in Processing by removing the "main" method. However in Processing we need to catch the exceptions: {{{ #!java import matlabcontrol.internal.*; import matlabcontrol.extensions.*; import matlabcontrol.*; try { //Create a proxy, which we will use to control MATLAB MatlabProxyFactory factory = new MatlabProxyFactory(); MatlabProxy proxy = factory.getProxy(); //Display 'hello world' just like when using the demo proxy.eval("disp('hello world')"); //Disconnect the proxy from MATLAB proxy.disconnect(); } catch (Exception e) { //do nothing, or cry. } }}} Other examples in the [[http://code.google.com/p/matlabcontrol/wiki/Walkthrough|Walkthrough]] can be modified in a similar manner for Processing. * F.N.A. Al-Kaylani, K.J.F de Greef and N.M. Nelson had successfully using this approach in combination with Admoveo robots. See their report: [[attachment:Learning_Robots_SuggestionRobot.pdf]] == Admoveo Robot == * [[http://wiki.id.tue.nl/creapro/InstallingProcessing | Install Processing and the Processing library]] for controlling the Admoveo robot. * [[http://wiki.id.tue.nl/creapro/InstallingArduino | Install Arduino software]] * [[http://wiki.id.tue.nl/creapro/PreparingAdMoVeo | Prepare the Admoveo robot]] == Other interesting links == * AdmoveoNeuralNetwork * MaxJavaArduino * LegoBeyondToys |
Learning Robots
This wiki site is part of the Learning Robots module.
Contents
1. Connecting MATLAB and Arduino/Admoveo
1.1. Arduino support in MATLAB (no Admoveo robot support)
MathWorks has a software package to support Arduino directly in MATLAB. You can find the package from its website. Please notice that:
- You do need to login with your MATLAB account, in order to download the package and get access to other resources such as tutorials.
Check out the Additional Resources to find a useful Webinar.
- In the downloaded zip file, readme.txt has very detailed instructions for installing the firmware to Arduino and the necessary library to MATLAB.
if you plan to use servo motors, you need the motor shield for MATLAB to control the motors properly using the given package.
- To get the online documentation of the arduino class in MATLAB, type in "arduino(" and wait for a dialogue box to pop up:
1.2. MATLAB-Processing-Arduino/AdMoveo: Using matlabcontrol in Processing
The matlabcontrol library for Java is available from http://code.google.com/p/matlabcontrol/
- To install the library to be used in Processing:
Download "matlabcontrol jar with source files included" from http://code.google.com/p/matlabcontrol/downloads/list.
- Rename the jar file (for example, matlabcontrol-4.0.0.jar) to "matlabcontrol.jar".
Create a directory in your Processing library path: <Sketchbook location>\libraries\matlabcontrol\library, put "matlabcontrol.jar" in this directory.
To verify your installation, start processing, go to menu "Sketch->Import Libraries", you should be able to able to import "matlabcontrol":
Follow the Walkthrough to understand how to communicate to MATLAB in JAVA.
Similar approach described in the Walkthrough can be done in Processing. Take the "Hello World" example in Java:
1 public static void main(String[] args) throws MatlabConnectionException, MatlabInvocationException 2 { 3 //Create a proxy, which we will use to control MATLAB 4 MatlabProxyFactory factory = new MatlabProxyFactory(); 5 MatlabProxy proxy = factory.getProxy(); 6 7 //Display 'hello world' just like when using the demo 8 proxy.eval("disp('hello world')"); 9 10 //Disconnect the proxy from MATLAB 11 proxy.disconnect(); 12 }
The same can be done in Processing by removing the "main" method. However in Processing we need to catch the exceptions:
1 import matlabcontrol.internal.*; 2 import matlabcontrol.extensions.*; 3 import matlabcontrol.*; 4 5 try { 6 //Create a proxy, which we will use to control MATLAB 7 MatlabProxyFactory factory = new MatlabProxyFactory(); 8 MatlabProxy proxy = factory.getProxy(); 9 10 //Display 'hello world' just like when using the demo 11 proxy.eval("disp('hello world')"); 12 13 //Disconnect the proxy from MATLAB 14 proxy.disconnect(); 15 } 16 catch (Exception e) { 17 //do nothing, or cry. 18 }
Other examples in the Walkthrough can be modified in a similar manner for Processing.
F.N.A. Al-Kaylani, K.J.F de Greef and N.M. Nelson had successfully using this approach in combination with Admoveo robots. See their report: Learning_Robots_SuggestionRobot.pdf
2. Admoveo Robot
Install Processing and the Processing library for controlling the Admoveo robot.