ikfast on AVR microcontroler

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

ikfast on AVR microcontroler

Metabolik
Hi everyone,
I am a new guy on the openrave community, so excuse me if I can take some time to understand your reply.

I have made an hexapode robot with 4DOF legs. Each legs has it's own microcontroler. For the moment i have implemented my own IK code in C language executed in the leg microcontroler. A main board (Raspberry-PI) transmit position command to each legs.
My home-made IK is a little bit slow and very difficult to maintain, I would like to use OpenRave IKfast in my system to replace my program inside the microcontroler.

I have try to compile the IKfast generated code with AVRGCC but some lib who probably have not been ported...

What do you think about this idea? It's an utopia? Someone has it already succeeded this kind of thing? The adaptation to the microcontroler will be dificult?

Thank you,

Metabolik
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: ikfast on AVR microcontroler

Rosen Diankov
Administrator
Dear Metabolik,

please send us the error messages of your compiler. perhaps we can debug this over mail.



2013/9/27 Metabolik <[hidden email]>
Hi everyone,
I am a new guy on the openrave community, so excuse me if I can take some
time to understand your reply.

I have made an hexapode robot with 4DOF legs. Each legs has it's own
microcontroler. For the moment i have implemented my own IK code in C
language executed in the leg microcontroler. A main board (Raspberry-PI)
transmit position command to each legs.
My home-made IK is a little bit slow and very difficult to maintain, I would
like to use OpenRave IKfast in my system to replace my program inside the
microcontroler.

I have try to compile the IKfast generated code with AVRGCC but some lib who
probably have not been ported...

What do you think about this idea? It's an utopia? Someone has it already
succeeded this kind of thing? The adaptation to the microcontroler will be
dificult?

Thank you,

Metabolik



--
View this message in context: http://openrave-users-list.185357.n3.nabble.com/ikfast-on-AVR-microcontroler-tp4026746.html
Sent from the OpenRAVE Users List mailing list archive at Nabble.com.

------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60133471&iu=/4140/ostg.clktrk
_______________________________________________
Openrave-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/openrave-users


------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60133471&iu=/4140/ostg.clktrk
_______________________________________________
Openrave-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/openrave-users
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: ikfast on AVR microcontroler

Metabolik
Dear Rosen,
Thank you for your interest.
Sorry I have a PC problem for the moment and i can't build. I will give you some exact errors during this weeks.
I want to use AVR libC modules to compile one of your example code like ikfastloader.cpp.
But some modules do not exist in AVR libC module liste like the vector module for example, and it's used in openRave functions.
In this connditions it is possible to cross compile IKFAST for AVR? Someone have already try to do something like this?
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: ikfast on AVR microcontroler

baxelrod
Hi Metabolik,

I have not tried to compile IKFast for the AVR, however, I am pretty familiar with AVR microcontrollers.  Unfortunately, I think this will be a significant challenge.  AVR micros just aren't built for floating point math.  Ikfast does almost everything in floating point, and makes HEAVY use of trigonomic identities.  Even if you get around the missing libraries such as <vector>, <limits>, <algorithm>, and <complex> and manage to get it to compile and run.  I am guessing it is going to be super slow.  

What you should probably do is take the ikfast generated code and refactor it for an 8bit micro.  For example, use integer math wherever you can, use lookup tables instead of builtin trigonometry functions.  I'm sure there are other tricks, but I am not that familiar with microcontroller optimizations.  

But it does sound like an interesting (and challenging) problem.
-Ben

-----Original Message-----
From: Metabolik [mailto:[hidden email]]
Sent: Tuesday, October 01, 2013 11:08 AM
To: [hidden email]
Subject: Re: [OpenRAVE-users] ikfast on AVR microcontroler

Dear Rosen,
Thank you for your interest.
Sorry I have a PC problem for the moment and i can't build. I will give you some exact errors during this weeks.
I want to use  AVR libC modules
<http://www.nongnu.org/avr-libc/user-manual/modules.html>   to compile one
of your example code like  ikfastloader.cpp <http://openrave.org/docs/latest_stable/coreapihtml/ikfastloader_8cpp-example.html>
.
But some modules do not exist in AVR libC module liste like the vector module for example, and it's used in openRave functions.
In this connditions it is possible to cross compile IKFAST for AVR? Someone have already try to do something like this?



--
View this message in context: http://openrave-users-list.185357.n3.nabble.com/ikfast-on-AVR-microcontroler-tp4026746p4026757.html
Sent from the OpenRAVE Users List mailing list archive at Nabble.com.

------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60134791&iu=/4140/ostg.clktrk
_______________________________________________
Openrave-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/openrave-users



------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60134071&iu=/4140/ostg.clktrk
_______________________________________________
Openrave-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/openrave-users
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: ikfast on AVR microcontroler

Metabolik
Thank you baxelrod for your advice.

I already have consider this kind of solution but my robot is still in developpement and the size and characteristics of legs could be changing.

If I rewrite the generated IK code I will have to redo this work at every change! If I want a permanent system, i need to rewrite the python code to generate the IK for AVR directly.
This seem to be really tricky!
In reality I don't know the impact of a 4 DOF IKFAST computation on a RaspberryPi! If the execution time is not so long, this would be probably better if I execute the code directly into the RaspberryPi.
Someone have an approximative estmation of the execution time for this?
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: ikfast on AVR microcontroler

baxelrod
Yeah, using a more powerful machine like a RaspberryPi, Gumstix, BeagleBoard, etc. is probably a better path forward than a microcontroller.
-Ben

-----Original Message-----
From: Metabolik [mailto:[hidden email]]
Sent: Tuesday, October 15, 2013 7:28 AM
To: [hidden email]
Subject: Re: [OpenRAVE-users] ikfast on AVR microcontroler

Thank you baxelrod for your advice.

I already have consider this kind of solution but my robot is still in developpement and the size and characteristics of legs could be changing.

If I rewrite the generated IK code I will have to redo this work at every change! If I want a permanent system, i need to rewrite the python code to generate the IK for AVR directly.
This seem to be really tricky!
In reality I don't know the impact of a 4 DOF IKFAST computation on a RaspberryPi! If the execution time is not so long, this would be probably better if I execute the code directly into the RaspberryPi.
Someone have an approximative estmation of the execution time for this?



--
View this message in context: http://openrave-users-list.185357.n3.nabble.com/ikfast-on-AVR-microcontroler-tp4026746p4026782.html
Sent from the OpenRAVE Users List mailing list archive at Nabble.com.

------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register > http://pubads.g.doubleclick.net/gampad/clk?id=60135031&iu=/4140/ostg.clktrk
_______________________________________________
Openrave-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/openrave-users



------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60135031&iu=/4140/ostg.clktrk
_______________________________________________
Openrave-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/openrave-users
Loading...