A build systems is a functional program or scripts developed to automate and simplify compiling and linking source code. A meta-build system like CMake generates native makefiles and workspaces that can be used in the compiler environment of your choice. CMake is a powerful open-source cross-platform set of tools designed to build, test and package…Read more Understanding ROS Build Systems
Robotics
Step-by-step guide for contributing to Open Source projects
Contributing to open source projects can feel very daunting in the beginning. A good way to get started is to contribute small changes such as bug or documentation fixes. Most open source projects publish guidelines which outline best practices and contributors are sometimes invited to attend meetings to discuss the direction of the project. Regardless…Read more Step-by-step guide for contributing to Open Source projects
Step-by-step Autoware.Auto installation guide
Open source autonomous driving projects have simplified autonomous vehicle development, particularly where resources are constrained. Popular projects include Apollo (an open autonomous driving platform), openpilot (an open source driver assistance system), CARLA (an open source simulator for autonomous driving research) and Autoware.Auto (an open source autonomous driving platform). This article focuses on setting up a…Read more Step-by-step Autoware.Auto installation guide
Extracting Images and Sensor Data from ROS bag files to Python
The ROS bag file format is popular in robotics, where it is used to store ROS message data. Several tools for working with ROS bag files exist, such as rosbag (a tool for recording, playing back, and filtering data), rqt_bag (a tool for visualising rosbag data), rostopic (a tool for listing and echoing the content…Read more Extracting Images and Sensor Data from ROS bag files to Python
Autonomous robot hardware setup
The TurtleBot2 robot is a popular open source robotics research platform. The platform officially supports a Netbook laptop as the main computer for the robot, however, driving around with a laptop on the robot can be cumbersome. It is better to integrate a single board computer with the robot platform to allow the robot to…Read more Autonomous robot hardware setup
Setting up ROS with Python 3 and OpenCV
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
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
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
3D Computer Vision in ROS
The RealSense D435 camera can be readily set up to publish all the image and pointcloud streams via ROS topics. For an in-depth setup, read Integrating the Intel RealSense D435 with ROS. Once this data becomes available in ROS, processing it via custom nodes requires a larger ROS ecosystem for perception. Three popular 2D/3D computer…Read more 3D Computer Vision in ROS
Integrating the Hokuyo URG Lidar with ROS
The Hukuyo URG is a lightweight, affordable USB powered lidar sensor. It outputs a single planar scan with 240º scanning range at 0.36º angular resolution and scan rate of 100ms/scan. This sensor can be used for, amongst other things, indoor mapping or collision avoidance. There is presently no pre-compiled driver available for ROS kinetic so…Read more Integrating the Hokuyo URG Lidar with ROS