CAN and CCP/XCP for Error Detection and Calibration


CAN logger kvasser

Kvaser reached out to me about writing a sponsored post to put on this site. I have used many Kvaser CAN interfaces in the past. Since they work well and are reliable I agreed. I also dont know anything about CCP/XCP; so this should be interesting. This is my first time accepting a sponsored post […]

Machine Learning Methods


Decision tree

There are many terms that are thrown around about machine learning. But what do they all mean? and what are the differences? Lets start with machine learning. Machine learning “gives computers the ability to learn without being explicitly programmed” (Arthur Samuel, 1959). Machine learning is a large and complex field with many algorithms that mostly […]

Drive Kinematics: Skid Steer & Mecanum (ROS Twist included)


drive kinematics

Hi all I am often in need of the basic kinematic motion equations for skid steer vehicles. I have also recently been working with mecanum wheeled vehicles. The skid steer equations are fairly simple and easy to find, however I will include it in different versions and include a ROS approach. The mecanum wheel equations […]

Book Review: Peer Reviews in Software by Karl Wiegers


peer review in software

I have been part of many software teams where we desired to do code reviews. In most of those cases the code reviews did not take place, or were pointless and a waste of time. So the question is; how do you effectively conduct peer reviews in order to improve the quality of your systems. […]

Adaptive RRT – ARRT (with code)


Adaptive RRT

Hi all Back in 2010 I was taking an AI class where we learned about Rapidly Exploring Random Trees for motion planning. For my final project I developed an adaptive version of the RRT that I named ARRT. I decided to post it here to share with others. The post below is based from the […]

Software Development Principles


Fix Bad Code

Hi all I have often thought about what the proper software methodology should be for the various robots that I build. My thoughts have evolved over time as I have seen these tool work. I do not have any formal software engineering training, however these are things that I have seen, heard, read, etc.. that […]

Developing Trust in Autonomous Robots Seminar from Michael Wagner


ASTAA reliability method

Hi all I recently had the opportunity to hear a talk from a colleague that I have worked with many times over the last bunch of years. The talk was all about how to build safe and robust systems. This is a critical topic that we often pass-over but needs to be addressed if robots […]

Robot Motion (Path) Planning Overview


motion planning example

This post is going to be a summary of the different motion planning (ie. route finding) algorithms that are commonly used. I am not going to detail any of the particular algorithms, but rather give you a launchpad for finding a suitable algorithm for your application. You should remember that often you will mix and […]

PID Control (with code), Verification, and Scheduling


PID equations

Hi all PID controllers are the workhorse of the controls world. PID controllers have the goal of taking some error in your system and reducing it to 0. While there are many other control strategies out there PID is probably the most common (unless you count human control) outside of just setting a setpoint. There […]

Book Review: Robotics, Vision and Control Fundamental Algorithms in MATLAB by Peter Corke


vision control matlab

Hi all Here is a book review on Peter Corke’s Robotics, Vision and Control, published in 2011 (and 2013). I decided to review this book since it has a lot of Matlab code (I know I complain about Matlab later on) and examples that *could* be useful when developing real systems, testing a specific algorithm, […]

Coordinate Systems (Where in the world is your robot?)


coordinate frames

Hi all There are many ways of expressing your position in the world. We can use those same methods to represent where in the world your robot is. At the highest level there are two types of coordinate frames; global and local. In the global frame the robots position is specified based on a pre-established […]

Kalman Filtering – A Practical Implementation Guide (with code!)


kalman filter equations

Hi all Here is a quick tutorial for implementing a Kalman Filter. I originally wrote this for a Society Of Robot article several years ago. I have revised this a bit to be clearer and fixed some errors in the initial post. Enjoy! Note: The post has been translated into Russian here and is hosted […]

Software that Forms a Robot


software flow in a robot

Hi all While many people find it boring, one thing that has always interested me is the software infrastructure of a robot. By infrastructure I mean the code that all robots have and that binds everything else together. This includes the things like the interprocess communication (IPC) method, the system executive, the health monitor and […]

Software repositories or just plain repo


git repository

Hi again There are many software repositories out there that can be used for backing up your files or sharing them with others. Repositories can be useful when you are the only developer or also when you are working with a team. It should also be noted that you can use the repos for storing […]