Interactive web site of Télécom ParisTech's ELECINF344/ELECINF381 Robotics and Embedded Systems classes (a.k.a. ROSE, 2012 session).


Ball-E’s first moves

We are getting closer everyday to our goal, Ball-E manages sometimes to keep its balance for a bit more than a second.

Yesterday, we realized that the plastic between the wheels on the omni-wheels made a huge friction on the ball, preventing him from  moving easily. Therefore, we used a soldering iron to melt the plastic and then a dremel to sand it and it is now working much better. We are now having a hard time choosing  the coefficient of our PID algorithm. I hope you will be able to see videos of Ball-E standing by its own means soon !

Matthieu Tardivon

Some calculations to understand our components choice

Number of position for 1 turn :

e : distance between two LED

r : radius

a : angle

We want d = e

r = e * number_led and d/r = sin(e). So d ~ r*a => d = e * number_led * a.

But a = 2 * Pi /number_of_positions => number_of_positions = 2*Pi*number_led

In this calculations, number_led is 64*2 because led are staggered.

=> 830 positions

Timing for RAM:

An image is 256*256*3 = 192 kByte

We have to write 1 image in (1/16) second = 62.5 ms => 3MByte/s

We have to read 1 new position each (1/(16*830)) = 75 µs. => 39MByte/s

Memory needs to store radius pre calculation:

830*128*(8+2)*2 = 2,6 MBits

But, we can use symmetry to store this data so, 1,3 MBits is needed.

RAM we want to use is the following : http://www.digikey.fr/product-detail/fr/CY7C1357C-133AXC/428-2123-ND/1205775 but, we want to write only 8 bits and not 16 so, we can use half the memory. The memory is considered as 4 MB.We have 2 RAM : so can store on each RAm (at the end) the pre calculations.

Jeremy Sauget