This website is now based on Jekyll

Hi, I decided to update the design of my homepage to a responsive HTML design. This makes the web page look nicer on mobile phones. I ended up using the Hyde theme which is based on Poole which in turn is based on Jekyll. I hope you will enjoy the new layout. Here is a demonstration of what Jekyll can do (also to remind myself). See Hyde example for more.

Heading 1

Heading 2

Heading 3

Heading 4

This shows the message style.

The text can be italic or bold.

Quoted text looks like this.

strike through text inserted text

Text with subscript and superscript

Horizontal line


Inline code looks like this.

def highlight
  # This is Ruby code
  some.source code

Here is a Gist from Github:

400: Invalid request

  • Bullet
  • list
    • of
    • things
  1. Enumerated
  2. List
    1. of
    2. things
Name Upvotes Downvotes
Totals 21 23
Alice 10 11
Bob 4 3
Charlie 7 9

Raspberry Pi Zumo robot

Pimoroni sells a Zumo chassis kit which is a low-cost tracked mobile platform. To build a robot, only the following additional components are required (see Github repository for more details):

  • micro metal gear motors
  • Raspberry Pi Zero W and Micro SD card
  • portable power bank
  • 4 AA rechargable batteries
  • H bridge motor driver
  • Raspberry Pi camera module
  • wires

In his seminal publication Neural Network Vision for Robot Driving Dean A. Pomerleau shows that one can train a neural network to drive using low-resolution camera images (also see video). In a similar fashion the Zumo robot can first be controlled using an XBox controller. 10 times a second a video frame together with the current motor settings are recorded. The images are downsampled to 32x24 pixels. A neural network with two hidden layers with 20 units each is trained. The output of the neural network are two vectors (one for the left and one for the right motor) with 11 units each. The first unit corresponds to driving backwards with full speed. The last unit corresponds to driving forward with full speed. Initially the robot frequently looses track and a manual override is required. Each time the manual override is used, new training data is recorded. After several iterations the robot finally achieves the desired behaviour and it can patrol the kitchen as shown in the video below.

Regularisation was used to reduce the variance. The bias of the network is quite high but this is probably due to conflicting training data (i.e. over time different drive speeds are used at the same position in the kitchen). Note that the experiment works best in controlled lighting conditions. Otherwise much more training data is required to cope with changes in illumination.

See also:

Sainsmart 6-dof robot arm

Sainsmart is selling a 6-dof robot arm. One can control the robot arm using an Arduino controller and a DFRobot I/O expansion shield. I mounted a Sunfounder Rollpaw gripper on the robot (note that the servo shaft is not compatible with the Sainsmart servos and I had to replace the wrist servo of the Sainsmart robot). I developed some software to perform smooth and synchronized motion with the robot drives. The robot can be controlled using a serial terminal. Alternatively one can use an XBox controller. The software performing inverse kinematics is demonstrated in the following video.

See also:

Orbiter 2016

Orbiter 2016 is a space simulator for PC which works even on graphics cards which are considered low-end these days. The simulator can be used to simulate launch, ascent, orbiting, space station dockings, flight to different moons and planets, atmospheric reentry, vertical landings, and landings on a runway. Click on the picture below for more screenshots:

Orbiter 2016 simulation of XR2 orbiting the Moon

Together the downloads are about 3GByte:

If you have a lot of disk space, you can install high-resolution textures.

Here is a video I made showing SCRAM ascent and ISS docking

I also made a set of videos showing a simulated flight to the Moon and back.

If you have time for some space training, I can recommend to check it out. Enjoy!

See also:

Debian Stretch

Debian is a software libre operating system for personal computers. The new Debian Stretch (9) distribution of GNU/Linux is the first Debian release to include the new KDE Plasma 5 desktop.

Debian Stretch (9) with KDE Plasma 5.8

  • Download the ISO image from the non-free section of the Debian file server. The non-free installation medium contains proprietary firmware and drivers for WiFi adapters and graphics cards where the manufacturer has not released a free software driver.
  • Write the big ISO file to a USB stick using a tool for creating bootable USB sticks and boot from it. You might have to enable booting from USB in the BIOS settings before booting.
  • Install Debian with KDE Plasma as desktop and reboot. Make sure that software updates are working.
  • Install required proprietary firmware and drivers to get WiFi, Bluetooth, and 3D graphics working. In my case I had to install firmware for the Qualcomm Atheros QCA9565 / AR9565 Wireless Network Adapter and drivers for the AMD/ATI Kabini Radeon HD 8330 graphics card. Note that I currently have unsolved connectivity and low signal issues with the Qualcomm Atheros WiFi adapter. Instead I am accessing WiFi using USB tethering with an Android phone.
sudo apt-get install firmware-atheros firmware-amd-graphics
sudo apt-get install firmware-linux-nonfree libgl1-mesa-dri xserver-xorg-video-ati
echo deb stretch main non-free | sudo tee /etc/apt/sources.list.d/deb-multimedia.list
sudo dpkg -i deb-multimedia-keyring_2016.8.1_all.deb
sudo apt-get update
sudo apt-get dist-upgrade
  • Install gstreamer1.0-libav to get the JuK music player to work:
sudo apt-get install gstreamer1.0-libav
  • Install qml-module-qtquick-xmllistmodel to get the network traffic display to work:
sudo apt-get install qml-module-qtquick-xmllistmodel
sudo apt-get install pulseaudio pulseaudio-module-bluetooth pavucontrol bluez-firmware
  • After rebooting you can pair a Bluetooth headset and use pavucontrol to redirect the output of a running media player to it.

More software I recommend:

I'll try to keep this up to date as I discover more useful things to install and setup.


See also:


First Use=false
  • Had to reenable Baloo file indexing using balooctl enable