Society of Robots - Robot Forum
Software => Software => Topic started by: Half Shell on January 14, 2008, 07:50:58 PM
-
A frind of mine is currently working on a complicated project which uses some pretty complex controls engineering to stabilize a small water/underwater robot while in a wave pool. They are asking me for help but the controls algorithms are beyond me. They used MATLAB and have all the math (matricies and solving ordinary differential equations) working there, but the robot is far too small to have something like MATLAB or a PC controlling it. I know how to control all 6 of his motors/actuators with microcontrollers but I don't know how to convert the MATLAB code into embedded C code.
Furthermore, I'm kind of scared that there won't be a simple to use micro controller that can handle their code.
My questions come down to this:
- How do I know if a microcontroller can handle this?
- How can I convert MATLAB code, which I don't know, to embedded C easily? Especially since I don't know how to solve for the ordinary differential equation in C (in MATLAB they just call ode45).
This is the only forum I know of that could posibly have people that would know how to do this.
-
Microchip and Mathworks did collaborate and make a matlab/simulink plugin for MPLAB. I haven't used it but i think it creates C code from a matlab/simulink model, that is for use in the microchip C30 compiler.
http://www.kerhuel.eu/RTWdsPIC/examples/ImportSimulinkMPLAB.html (http://www.kerhuel.eu/RTWdsPIC/examples/ImportSimulinkMPLAB.html)
http://www.viddler.com/explore/KJason/videos/3/ (http://www.viddler.com/explore/KJason/videos/3/)
-
Would i be able to use that code on any micro controller though?
Right now I'm debating telling them to make it a tethered bot and somehow find a way to have MATLAB talk to a microcontroller and have it control motors.
-
check the new version of matlab 2007 , it has an embedded systems toolbox,the program help is like a tutorial.
-
I know xactly what u are looking for.Sometime ago i worked on a bot where a friend of mine wrote blob detection code in matlab and i had to make the robot follow the blob colour in realtime.What u'll have to do:
-> interface your robot to the parallel port or the serial port of the computer .This post of mine has the circuit + troubleshooting tips
http://www.roboticsindia.com/modules.php?name=Forums&file=viewtopic&t=2826 (http://www.roboticsindia.com/modules.php?name=Forums&file=viewtopic&t=2826)
-> Program your pc parallel port or serial port directly using matlab.Just type serial port in matlab help it has all the information u'll need + u can see this post for a simple run down of instructions
http://www.roboticsindia.com/modules.php?name=Forums&file=viewtopic&t=2698 (http://www.roboticsindia.com/modules.php?name=Forums&file=viewtopic&t=2698)
->u can even make it untethered using bluetooth wireless serial cable replacement ( http://www.sparkfun.com/commerce/product_info.php?products_id=8332 (http://www.sparkfun.com/commerce/product_info.php?products_id=8332) ) or using xigbee
I gess this pretty much solves ur problem
-
Hi Half Shell,
The complex controls engineering part has been realized with matlab. I guess, your friend uses some .m files, or perhaps a Simulink model (.mdl file). In the Simulink file, there is one part to simulate the behavior of the underwater robot, and there is the controller part which attempt to control the submarine.
Simulink is probably the most appropriate tool to simulate and tune the controls algorithms.
The most boring and complicate part of the project is to program a microcontroller. Since I had exactly the same problem, I built a toolbox for matlab/Simulink that make me able convert the simulink model into the binary .hex file, ready to be downloaded into a PIC24 or dsPIC.
Thanks to this toolbox, I only concentrate on the math part, and on the mechanical realization.
Please, try the toolbox (The evaluation version of the toolbox should be sufficient for this project). (You need matlab, Simulink and the toolbox Real Time Workshop, Real Time Workshop embedded coder and the one you can download here: http://www.kerhuel.eu/RTWdsPIC/download.html (http://www.kerhuel.eu/RTWdsPIC/download.html) )
And let me know if you encounter any problems.
Also, one example of realization: http://www.kerhuel.eu/RTWdsPIC/examples/IMU.html (http://www.kerhuel.eu/RTWdsPIC/examples/IMU.html)
a forum for question about the toolbox is also available: http://www.kerhuel.eu/forum/index.php
Note that I am still developing this toolbox, I would be glad if I can get your feedback.
Lubin
PS : My website has been cited by hazzer123. I would like to correct : this toolbox is not a Microchip and Mathworks collavoration ;)
-
Hi guys,
just for your information, I suggest to take a look also to my website: http://www.sim2lab.com (http://www.sim2lab.com)
Here you can find a good alternative for developing embedded systems in Simulink for dsPIC chips. The name of my Simulink blockset is SIM2LAB Blockset and offers a cost effective solution for rapid-prototyping. You can also build your own GUI (Graphical User Interface) for data logging/monitoring, as well as change on-the-fly the software parameters.
Visit my website for further details and download your evaluation copy.
Regards,
S2L