The Robot Operating System (ROS) does not currently work out-of-the-box with Python 3. ROS officially supports Python 2.7 and ROS 2 supports Python 3 natively. Since Python 2.7 support is now deprecated, and most robots in 2020 still use ROS (not ROS 2), it becomes neccessary to set up Python 3 with ROS in order…Read more Setting up ROS with Python 3 and OpenCV
Optimising the RealSense R200 camera for outdoor use
The RealSense cameras are widely used on robots which often have to venture outdoors. Using any camera outdoors can pose some challenges with glare from sunlight. The RealSense D435 camera's default settings work quite well outdoors. This is however not the case for the older R200 cameras. This tutorial outlines how to optimise the R200…Read more Optimising the RealSense R200 camera for outdoor use
Running the RealSense R200 camera with librealsense and pyrealsense legacy libraries
The legacy Intel RealSense cameras such as the R200/F200/SR300/LR200/ZR300 can be challenging to work with because support is limited. Documentation is sparse, so this tutorial provides a step by step guide for installing librealsense and pyrealsense for running the older RealSense R200 camera in ROS or natively in Python. Install librealsense The first part of…Read more Running the RealSense R200 camera with librealsense and pyrealsense legacy libraries
Consistent USB sensor device naming
Popular robotics sensors such as the Hokuyo laser range finder have a USB interface. Plugging in the sensor will normally cause Ubuntu to set up USB communication via the /dev/ttyACM0 port which allows the sensor to interface with the OS, provided the correct permissions are set. The official hokuyo_node ROS package recommends using the following …Read more Consistent USB sensor device naming
A comprehensive guide to overcoming Repetitive Strain Injury (RSI): Part III
The final, and perhaps most important strategy for overcoming RSI is a physical therapy exercise program coupled with mentally overcoming the fear of perceived injury. Such a program should be tailor made to suit your personal needs by a qualified physiotherapist. This will allow for healing of the tendons and strengthening of the muscles as…Read more A comprehensive guide to overcoming Repetitive Strain Injury (RSI): Part III
Secretly searching for a domain name
Have you ever searched for a domain name, discovered it was available, only to see it vanish (or drastically increase in price) a couple of hours later as you were about to buy it? Registering a domain can unexpectedly turn into a frustrating game of cat and mouse. This is mainly due to a practice…Read more Secretly searching for a domain name
A comprehensive guide to overcoming Repetitive Strain Injury (RSI): Part II
This three part series is a comprehensive guide to beating RSI with hardware, software, and physiotherapy exercise strategies. Part I outlined the hardware strategies so this article will focus on software interventions for overcoming RSI. Regular breaks and rest The best way to combat repetitive strain injury is to interrupt the strain cycle by taking…Read more A comprehensive guide to overcoming Repetitive Strain Injury (RSI): Part II
A comprehensive guide to overcoming Repetitive Strain Injury (RSI): Part I
Writing algorithms for robots is fun, so fun that one can really loose track of time spent at a computer. Repetitive strain injury (RSI) is a gradual process of straining tendons and muscles in the wrist, hand and arm due to repetitive strenuous motions such as using a computer mouse or typing. This can result…Read more A comprehensive guide to overcoming Repetitive Strain Injury (RSI): Part I
Converting the KITTI dataset to rosbags
The KITTI Vision Benchmark Suite dataset is a popular robotics dataset from Karlsruhe Institute of Technology and Toyota Technological Institute at Chicago. Several benchmarking datasets are provided including stereo, flow, scene flow, depth, odomerty, object, tracking, road, semantics and the raw data. To use this dataset in ROS, the streams should first be converted to…Read more Converting the KITTI dataset to rosbags
Using the RealSense SDK to access the camera
The RealSense SDK provides an API for accessing the camera hardware directly. Accessing the camera via the SDK locks it, until access is released. This tutorial will cover how to use the RealSense SDK for C++ development using the simple example of accessing the camera's intrinsic calibration parameters. Recall that the intrinsic camera matrix for raw…Read more Using the RealSense SDK to access the camera