🌱 Digital Garden

Search

Search IconIcon to open search

Algorithmic Thinking

Updated Jul 5, 2023

Here are some real world examples of problems I have encountered that required algorithmic thinking for their solution.

# A Study of Light Inverse Kinematics algorithm

Please see the GeoGebra interactive lesson that I made, and the code here.

This was required in development of the controller for A Study of Light. The requirement is to move the tip of the pipette to some cartesian coordinate (x, y). However, the robot’s degrees of freedom are rotation-based (outer ring angle, pipette yaw angle).

I solved this using a notepad and a 4 hour train journey. The key insight was that the robot arm’s base must be positioned at equal distance from the centre of the bowl and from the target location (in a 2D top-down reference frame). so for some target point T and the origin O, the robot must be moved (with the outer ring) to either intersection of the two circles around T and O with radius R, where R is the length of the pipette arm / distance from centre. The rest is basic trigonometry.

# IMU motion tracking without gravity or magnetic fields

For my final year MEng project, I derived and implemented a solution to motion track arbitrary kinematic chains without the usual requirement of gravity or magnetic fields. This required learning significant quaternion maths.

I solved this by thinking very hard while moving my limbs and thinking about the concept information. The core was the drift-correction mechanism, taking advantage of the information provided by the difference in accelerations between joints, once centripetal acceleration had been accounted for.

You can see more, including links to the poster and report here