Differences between revisions 1 and 13 (spanning 12 versions)
Revision 1 as of 2012-05-08 20:38:14
Size: 31
Editor: 195-241-239-132
Comment:
Revision 13 as of 2012-05-08 22:58:56
Size: 4190
Editor: 195-241-239-132
Comment:
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-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.
}
}}}


== 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.

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:

      attachment:arduinomatlab.jpg

1.2. MATLAB-Processing-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.

    2. Rename the jar file (for example, matlabcontrol-4.0.0.jar) to "matlabcontrol.jar".
    3. Create a directory in your Processing library path: <Sketchbook location>\libraries\matlabcontrol\library, put "matlabcontrol.jar" in this directory.

    4. To verify your installation, start processing, go to menu "Sketch->Import Libraries", you should be able to able to import "matlabcontrol":

      attachment:matlabcontrol.jpg

  • 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 }
    

2. Admoveo Robot

JunHu: LearningRobots (last edited 2014-02-19 22:57:04 by JunHu)