Vim is a powerful text editor that supports multiple programming languages and comes with a whole host of features such as a multi-level undo tree, powerful search and replace, and an extensive plugin system allowing for customisation. One advantage of using a text editor over an IDE is speed. The official Vim C++ Wiki page…Read more Setting up Vim for C++ development
How the Intel RealSense R200 camera works
The Intel RealSense R200 is a USB powered long range stereoscopic camera that can be used for robotics and HCI computer vision applications. About the camera The camera consists of two infrared and one full HD colour imaging sensors, as well as an infrared laser projection system. As a result, the camera provides three video…Read more How the Intel RealSense R200 camera works
Getting started quickly with Deep Learning
Machine learning is a fascinating field. Roboticists should invest the time and effort in understanding the fundamentals of machine learning. When it comes to deep learning, it's possible to get started quickly by using a library with pre-trained models. However, building your own models (however simple they might be in the beginning) is a great…Read more Getting started quickly with Deep Learning
How to host your website on GitHub Pages with a custom domain
If you have a simple website (some Javascript with CSS and HTML) and you're looking for a place to host it for free, GitHub is not a bad choice. You have the option of hosting without a custom domain (username.github.io/repository) or you can use your own custom domain (example.com). This guide assumes that your personal…Read more How to host your website on GitHub Pages with a custom domain
ROS performance testing: C++ vs Python
ROS supports both Python and C++ programming languages, however, using Python can come at a performance cost. I did an experiment to test this by writing four combinations of publisher to subscriber and then checking whether the real loop rate (of the publisher) is equal to the actual loop rate of the subscriber. The combinations…Read more ROS performance testing: C++ vs Python
Using ROS with OpenCV
When developing perception algorithms for robotics, OpenCV is an excellent open source computer vision library to use. Like ROS, it has interfaces for both Python and C++ and is designed for real-time applications. ROS Kinetic actually comes with OpenCV v3.2.0. There are two packages, both available on the GitHub link from the ROS Wiki, that…Read more Using ROS with OpenCV
Git cheat guide
A great way to share and use opensource code is through GitHub. Here are some tips on getting started. How to update remote Github with changes from local copy Creating a Github repository is fairly straightforward. Once this is cloned to a local location, you will want to synchronise any changes. To synchronise the remote…Read more Git cheat guide
How to fix distorted HDMI sound (Ubuntu 16.04 LTS)
Upgrading to Ubuntu 16.04 LTS resulted in distorted sound when connecting my laptop to a TV and trying to play sound through the HDMI TV connection. The fix was to change the default.pa PulseAudio config file as follows: Open the config file using sudo gedit /etc/pulse/default.pa Change the line load-module module-udev-detect to load-module module-udev-detect tsched=0.…Read more How to fix distorted HDMI sound (Ubuntu 16.04 LTS)
How to edit layered PSD files in GIMP
GIMP is an open source cross-platform image editor that is similar to Adobe Photoshop. The learning curve for GIMP is pretty steep so this post aims to describe how to edit layers of a PSD file. In this example, we assume that we want to add our own image to a mock-up similar to what…Read more How to edit layered PSD files in GIMP
Tools for accelerated learning
Learning new tools, programming languages, algorithms, middle-ware, or even math is a way of life for any roboticist. And learning fast is equally important. Here are some useful platforms for learning. Programming languages Assuming you already know how to code, learning a new language involves getting familiar with new syntax, libraries and sometimes new paradigms.…Read more Tools for accelerated learning