Differences between revisions 12 and 13
Revision 12 as of 2012-05-08 22:51:26
Size: 2797
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 36: Line 36:
 * 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.
}
}}}

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)