Trackball Rotation using Quaternions

The Arcball or Trackball is an elegant and intuitive input method to rotate and manipulate a three-dimensional scene with the mouse. The idea behind was proposed by Ken Shoemake [Shoemake] and is quite easy to understand and to implement which led to the fact that today it is actually the primary mechanism that people use to rotate objects in 3D computer environments.

Inverse Kinematics of a Stewart Platform

In industry and science often hydraulic Stewart Platforms are deployed for their robustness, fast acceleration and retention force, but only few publications focus on a cheap design using electric motors. In recent years many hobbyists built Stewart Platforms, but either they are not documented well or they are built to have a proof of concept without much theory behind. With this article I want to close this gap, derive the inverse kinematics of the Stewart Platform using cheap servo motors and provide a software library to visualize and build own platforms.

Drawing an upright star polygon

Drawing a regular star with \(n\) edges that stands upright on the ground should be easy with a rotation by \(\Delta\alpha=\frac{1}{n}\) around the center of the star. For each of the \(2n\) edges we toggle between the inner and the outer radius like so:

LightsOut Solution using Linear Algebra

LightsOut is an electronic single player game manufactured by Tiger Toys in 1995. In the original version, 25 lights are arranged in a 5 by 5 lattice. Each of these lights can either be on or off and its state can be inverted with a button related to that light. Additionally, all four horizontally and vertically adjacent lights - forming a cross - get inverted as well when a single light gets pressed. The goal is to turn all lights out, starting with a random pattern of lights, although we will see that not every pattern has a solution.

How to plot a covariance error ellipse

A typical way to visualize two-dimensional gaussian distributed data is plotting a confidence ellipse. Lets assume we have data \(D\sim\mathcal{N}(\mu, \Sigma)\) and want to plot an ellipse representing the confidence \(p\) by calculating the radii of the ellipse, its center and rotation. The following plot shows randomly drawn data and the ellipses for \(p\in\{0.9, 0.95, 0.99\}\):

Create a circle out of three points

A circle is a set of infinite points in two dimensions. However, a circle is clearly described by three of such points. The opposite direction is also correct as long as not all three points are on a straight line.

Make a Fair Coin from a Biased Coin

If we have a biased coin, i.e. a coin that comes up heads with a probability not equal to \(\frac{1}{2}\), how can we simulate a fair coin? The naive way would be throwing the coin 100 times and if the coin came up heads 60 times, the bias would be 0.6. We could then conduct an experiment to cope with this bias.

Mathematics of a roller chain animation

Given two circular sprockets \(C_1(M_1, r_1)\) and \(C_2(M_2, r_2)\) with their midpoint and radius, we want to find a way to put a chain around them and animate the links like this:

Determine if a number is a perfect square

Checking if a number is a perfect square is a trivial task when a square root function is available. Calculating the floored square root squared should result in the original number:

Operate a Syma S107G Remote Control Helicopter with an Arduino

Some time ago I saw people reverse engineering the infrared protocol of the Syma S107G toy helicopter and I wanted to get my hands on it as well. It is a coaxial helicopter, which means that it doesn't require a torque cancelling tail rotor. Yaw is controlled by using the speed difference to a second rotor underneath the main rotor, which spins in the opposite direction. It's really astonishing what good quality you get for just 20 bucks. It crashed quite often and it still flies like new.