[StabiloRose] Calibration first step OK

With Anatole we calibrated the first hemisphere of our ball, i.e. getting the spherical coordinates of each of the 182 LEDs, according to their position on the strip. We entered the data into our little homemade simulator and run the same test that was done yesterday. We turned on each LED, one after the other in the order of the strip.

The simulation and the experiment give the same pattern \o/ So far, so good.

Artur and Clément are currently calibrating the other part.

SR simu gif

[HeRos] IR working well, now taking care of the design


During the end of last week, I spent most of my time improving the IR part of our project. Now everything’s working great, each frame received is sorted in order to see if it has not been already received by another receptors in the previous milliseconds. Frames are then send to the phone via Wi-fi or to the computer through the serial usb.

Today was a great day, we have been able to stream video via wi-fi to the smartphone !! It was so cool to see our little HeRos hanging out on the table and streaming video with its camera ! Soon we’ll have everything ready to start playing with our Heros 😉

I spent most of the day designing the look of our HeRos. I had to remember how to use Solidworks (I used it 2 or 3 times in preparatory school) but it was fun to imagine how our little baby’s style 😉 Here is a picture, enjoy 😉  :Capture d'écran de 2015-04-13 20-27-21

[StabiloRose] Assembly and IMU

A bit of mechanics today. We continued the assembly of the ball. The printed part and the case are fitting together. The next step is about placing the LEDs, which is not going to be easy. We haven’t decided the pattern we will use yet. It will strongly influence the future development of our project.

I also worked on the IMU and on the visualization of the data. I noticed a strange behavior related to the axes. The datasheet of the BNO055 gives the default axes for the measurements (see figure below). However, the default axes for the fusion algorithm are never mentioned. As the heading angle can be retrieved from the register EUL_DATA_X, we can logically think that the heading angular defines a rotation around the X axis. But no ! The heading angle defines a rotation around the Z axis, which is by the way the most used convention. This was not a big deal. A few rotation and parameters to modify and it is now all right. These hours of openGL were usefull.


[StabiloRose] IMU data visualization

Today, I’m working on a simple openGL-based program to visualize the data provided by the IMU. Just to remind you, our IMU is a BNO055 from Bosch. This little chip integrates a 9-axis IMU, a microcontroller running AHRS algorithms. The program displays a simple shape, which should rotating according to our board position. It retrieves Euler angles from the IMU. The communication will be allowed by the USB-CDC and a shell command.

Ideally, this program is going to provide a model of our system (sphere and LEDs). It will help us to determine the format of our images and frames sent to the ball.


[StabiloRose] Printing

The major part of the day have been spent on researches about spherical images and geodes. In parallel, a few element of sphere have been printed. As Julien explained to me, the printer is not precise enough to make pieces that fit perfectly into one another. I’ll add more slack between the different pieces of the assembly. We will file the one we already have.

Here is a simple timelapse of a printing. The real time is 55 minutes. The angle might have been better. I’ll try with another one next time. Watching a 3D printer is hypnotic. This is the first time I’m using one personally. The feeling of achievement is really intense. I remember my SolidWorks classes when I was in high school. That was great. But now, one hour after modelling your piece, you can hold it in your hand ! It is just magic.

[StabiloRose] Found a Full-View Spherical Image Format

Shigang Li and Ying Hai are genius. This post is an answer an issue raised by Sam this afternoon. The question was “Is there a format to represent spherical images ?” At least it is not standard, but that’s is not the subject. I found a paper which deals with this. The authors take advantage of the tessellation of the sphere and the flatten representation of a geode to store the pixels in a simple 2D array. With good properties, this latter forms a clever datastructure in which you can retrieve the neighbors from a pixel for example.

It is only an idea but I think it is a good way to explore. Even all the assets of this representation, it is not perfect. It limits the number of LEDs to 252 because of the regularities and the subdivisions of a geode. Moreover, it leads us to place the LEDs precisely. But I like the idea of representing a spherical image by a 2D array. We may be able to adapt it. I hope so.

This concept is the first step of a long process. After the implementation, we have to automatize the transformation of images. Simply because they can not be found under this format currently.


tesselatedSpheretessellatedSphere flat

[StabiloRose] First element printed !

It took only 55 minutes to print out first element. The result is great. The surface and the parts to fit the different elements together are clean. We are currently printing another one to check that the fitting is correct.

Results announcement in 50 minutes…

3d printerelementSphere


[StabiloRose] Design is ready

As expected, the design is over. Nothing really new compared to yesterday. We started to print an element of sphere. It will take about an hour.  Thus, there may be a few modification to fit the 3D printer constraints. Like yesterday, here are the 3D models.

Element of sphere

PCB and its support

Exploded view

I agree, it looks a bit like a mine.


[StabiloRose] Design

After the challenge and the practical work on ChibiOS, we are back on the design of the sphere. As we have already said and thanks to Loki, we are going to use two spheres. The internal one will carry the LED strips, the PCB and the battery. The external will provide a smooth shape.

This latter is not going to be printed. We bought a PVC-injected one. We found transparent balls with a diameter of 18 centimeters in a creative hobbies shop. This way, we maximize the usage of the 3D printer. The internal sphere will have a 16 centimeter diameter, the maximal one the printer is able to build. This gives us a 1cm-margin to place the LED strips.

As there are components on both surfaces of the PCB, we can’t “paste” it on a surface. We designed a sandwich-like support. We also put empty spaces to make the USB connector and the switches available. In the end, the LEDs will be carried by 3D grids which will make them easier to install. We won’t be forced to paste them. This makes the determination of the strips position easier.

Here are a few links to the model (3D PDF viewer required). The design is not completed yet. That’s why you can’t see any grid. We ‘ll see what is technically possible with the printer. There’s no hole for the micro usb connector too. The last point is to build a “system” to carry the battery and determine its precise position.

PCB and support

Element of sphere

Exploded view

You’ll see the final version tomorrow.

StabiloRose Assembly

[StabiloRose] Case

I’m proud to present our case for StabilorRose. We haven’t discussed about it wet. It won’t likely be transparent. Its diameter is 18 cm.

StabiloRose case