Monthly Archives: March 2018

Software updates

Here is a quick update on current progress with the software:

  • The robot spine can now be fully translated and rotated w.r.t. the world frame. Although I mentioned in the past that this isn’t really needed until the issue of localisation is faced, it is actually useful as a testing method for the IK, as all the legs can are moving w.r.t. the base – imagine e.g. the robot moving from a crouching to standing position.
  • The spine RPY orientation in space and its two joints are temporarily set up to influence each other, such that they emulate how the robot would behave if we wanted the spine/body orientation to change while keeping the feet flat – assuming the robot is standing on a perfectly flat surface. This should all make sense once I test the body orientation kinematics on the real robot soon!
  • As the controller I have been using does not work wirelessly, it’s not convenient to always have plugged in, so I added the ability for the test program to read the keyboard input as an alternative for moving the foot target positions. The Python module used is pynput. On this issue of the controller, if anyone knows how to get an XBox One controller’s wireless adaptor to work in Linux and Python, please let me know!
  • The monolithic Python test script was becoming a bit out of hand in terms of size and use of globals, so I’ve broken up into a few separate files and classes with better encapsulation than originally. It’s not perfect or optimised, but a bit more manageable now.

Quadbot 17 Spine XYZ and KB Input

Latest test program, with keyboard input and full spine control.

QB17QuadKinematics01

Simple class diagram of the Python program, after refactoring the original single-file script.


On the hardware side, I have some new controllers to explore various ideas, namely a Robotis OpenCM9.04 and a Raspberry Pi 3. The Raspberry could be mounted to the robot with a 3D-printed case like this.

Magnetic Encoders VS Optical Encoders

Enrique del Sol - Robotics, Mechatronics & Control Research

Encoders, whether rotary or linear, absolute or incremental, typically use one of two measuring principles—optical or magnetic. While optical encoders were, in the past, the primary choice for high resolution applications, improvements in magnetic encoder technology now allow them to achieve resolutions down to one micron, competing with optical technology in many applications. Magnetic technology is also, in many ways, more robust than optical technology, making magnetic encoders a popular choice in industrial environments.

Parameter Optical Sensor Characteristics Magnetic Hall Sensor Characteristics
Principle  coded disc/scale, through beam arrangement  magnet/tape/polewheel opposed to sensor
Incremental accuracy of target  100 nm – 1 μm

(lithography process)

 5 μm – 30 μm

(magnetisation process)

Energising by external LED (20 mW)  by target (Br>220 mT)
Signal Frequency  > 1 MHz possible  < 50 kHz
Benefits  high code density, high code accuracy  robust
Disadvantages  sensitive to contamination, high alignment requirements  raw code density, medium code…

View original post 513 more words