Package Organization For a ROS Stack [Best Practices]

What is the best package organization for your ROS stack? How can your better separate your code into different packages? Although there is no right answer to this question, and everyone is free to do what they think is best, I’ll try to give here some feedback from my own experience. I have analyzed what … Read more

Arduino and the STL library (C++)

So, you are using Arduino and you wonder if you can use the Cpp STL library in your code. The good news is: yes that’s possible! Even if some feature will still be lacking, or some others will be limited, you will be able to use things like std::vector and std::string in your Arduino programs. … Read more

Setup Raspberry Pi Hardware Permissions

Raspberry Pi hardware permissions can be quite tricky. So, you are using hardware functionalities with your Raspberry Pi 4 (or 3B, 3B+), and always getting errors such as “Permission denied”? This might be the case if you use I2C, SPI, UART, or simply the GPIOs on the Pi, with a user that isn’t root. In … Read more

ROS Param Command Line Tool – Practical Example (rosparam)

This tutorial is a practical guide on how to use rosparam command line tool to debug ROS Params. ROS params are really useful to launch your ROS application with different setup settings, without having to re-write and re-compile any part of your code. With the rosparam command line tool, you’ll be able to test your … Read more

Create a ROS Node Outside a Catkin Workspace

In this tutorial I’ll show you how to create a ROS node outside a catkin workspace – both for Python and Cpp. Most of the post is dedicated to linking ROS libraries to a Cpp file, because as you’ll see it’s quite simple for Python. Why would you want to create a node outside of … Read more

Introduction to WiringPi (for Raspberry Pi)

WiringPi is a Cpp library for Raspberry Pi. With this library you can use many of the functionalities provided by the GPIO header: digital pins, SPI, I2C, UART, etc. Although there are many Python libraries for Raspberry Pi GPIOs, Cpp is quite a bit behind. Fortunately, there is WiringPi. In this post you’ll install WiringPi, … Read more