Make it walk

Cette année j’ai proposé un sujet de stage de fin d’études (master 2 recherche) qui consiste à faire marcher un quadruped à 12 degrés de liberté. Contrairement à faire marcher un hexapode, ceci n’est pas un problème tout à fait évident à resoudre. Voici les premiers resultats :

Read More

Balanced ternary adder

J’ai reçu les switches DG403, voici ce que ça donne une fois soudé :

Pour le premier essai du multiplexeur ternaire je tente le demi-additionneur, il prend deux trits en entrée (A + B) et il sort le résultat (S) et le retenu (C). Les entrées et les sorties sont affichées avec des LEDs bicouleurs : rouge pour -1, éteinte pour 0 et verte pour 1. L’opération calculée est donc A + B = S + C*3.

S,C B
-1 0 1
A -1 1,-1 -1,0 0,0
0 -1,0 0,0 1,0
1 0,0 1,0 -1,1

Et un petit essai avec un additionneur complet

L’additionneur complet possede trois entrées A,B et Cin, et il donne deux sorties S et Cout de sorte à ce que
A+B+Cin = S + 3*Cout.

Les trois tables suivantes donnent 27 configurations possibles. Les données sont presentées par trois tables : une pour chaque valeur de Cin. Les cellules des tables sont les couples de (S,Cout) correspondants aux entrées :

Cin = 0 B
-1 0 1
A -1 1,-1 -1,0 0,0
0 -1,0 0,0 1,0
1 0,0 1,0 -1,1
Cin = -1 B
-1 0 1
A -1 0,-1 1,-1 -1,0
0 1,-1 -1,0 0,0
1 -1,0 0,0 1,0
Cin = 1 B
-1 0 1
A -1 -1,0 0,0 1,0
0 0,0 1,0 -1,1
1 1,0 -1,1 0,1

Read More

Fatigué du binaire

Je prépare un cours sur l’architecture des ordinateurs, et un des projets qui seront associés à ce cours serait la construction d’un ordinateur ternaire from scratch, le seul composant utilisé sera le switch analogique DG403. Je viens de fabriquer les PCB pour les premiers tests :

La plupart de mes étudiants ne se sont jamais posés la question de pourquoi nos ordinateurs fonctionnent en base 2, voire même si c’etait possible de faire autrement! Il serait le temps d’y répondre.

Read More

Least squares view on the linear quadratic regulator

One day of a math-oriented programmer or how I read wiki

— Hi, my name is %username and I secretly disclose the brackets in sums expressed in sigma notation to understand what is happening.
— Hi %username!

I have few students who want to implement a segway-style two-wheeled balancing robot like the one I have shown few posts ago:

They thought to use a PID regulator, but failed to find good coefficients and came to ask for a help. I am not an expert in the control theory, however I saw a guy to mention that he failed with PID, but that LQR worked out for him. So I took my time to document me on the LQR, and I wanted to explain to you whait I learned. It is also a good opportunity to show you how I read math text, it is a major part of my work. This page does NOT explain how to build balancing bots, it is an introduction to LQR. I suppose that you have a basic understanding of least squares, for example, read this page.

Read the rest here.

My original post in Russian is available here.

Read More

Connect(); // 2016

A team from Microsoft has ported my computer graphics course to C# language as an interactive workbook. It is included in the distribution of Xamarin as a sample workbook, and will be used as a support by the Xamarin Team during Microsoft Connect(); // 2016 event

The team will be on stage at November 17th 10:00am – 11:00am PST.

tinyrenderer-sml-orig

As far as I know, it was also presented during the MVP Global Summit 2016 (I was not able to attend since I do not have the Most Valuable Professional award 😉 )

Read More