# Tutorials

## Sample based-optimisation-based planner with signed distance fields cost map

Rapidly-exploring random trees (RRT) and their variant are a very power solution for solving motion planning problem in robotics, but they suffer from finding an optimise solution and the generated path is usually jerky with redundant movements. Sample based-optimisation-based planners benefit the robustness of RRT and the possibility of imposing a cost function. Here in this work, I …

## Solving of optimisation problem with evolutionary algorithm (LM-CMA-ES)

Limited-Memory CMA-ES (LM-CMA-ES)  is a variation of CMA-ES which has been tailored for large-scale optimisation with limited memory. As a warm up here, I have used this algorithm to solve the min point of the following function: $$z= -( 4 \times e^{- ( (x-4)^2 +(y-4)^2 ) }+ 2 \times e^{- ( (x-2)^2 +(y-2)^2 ) } )$$ The function …

## Stitching image using SIFT and Homography

This Matlab tutorial I use SIFT, RANSAC, and homography to find corresponding points between two images. Here I have used vlfeat to find SIFT features. Full code is available at my GitHub repository Major steps are: 0.Adding vlfeat to your Matlab workspace:

1.Detect key points and extract descriptors. In the image below you can see some SIFT key …

## Dynamic Time Warping with Python

Dynamic Time Warping (DTW) is a method to align two sequences such that they have minimum distance. For instance, two trajectories that are very similar but one of them performed in a longer time. Here is an example of my code with python. Here is my ROS package with C++ for DTW.

## Analytic distance metric for Gaussian mixture models

In many applications, you need to compare two or more data sets with each other to see how much they are similar or different. For instance, you have measured the height of men and women in Japan and Netherlands and now you like to know how much they are different. Two commonly used method for measuring distances …

## Colour based object Tracking with OpenCV

In many applications, you need to track an object. One simple method is color based tracking. I have developed a simple tool for that with OpenCV. All you have to do is just to adjust the High and Low values of HSV slider in the left window till you filter the image and you only see your …

## Lucas–Kanade method optical flow with MATLAB

In this tutorial, I will show you how to estimate optical flow based on Lucas–Kanade method.  This project has the following scripts: Optical_flow_estimation, myFlow, myWarp, computeColor, flowToColor. The myFlow does the main job, it gets two images and a window length (patch length) and a threshold for accepting the optical flow.  In the following, you see the myFlow.  You can uncomment figure function calls …

## Displaying Adjusted Frequencies of signal with Fast Fourier transform

In this tutorial, I will show you how to get Fast Fourier transform of a signal and then correctly display the signal. Link to the code in my Github repository.

Getting Fourier transform of the signal:

## 6DOF pose estimation with Aruco marker and ROS

ArUco is a simple yet great library for augmented reality applications. In this tutorial, I’m gonna show you how to track ArUco marker and estimate their 6DOF pose with ROS. For this tutorial, you only need a USB camera. You need to calibrate your camera before first. If you don’ know how to that just follow my other tutorial …

## Send CMake param to catkin

It quite often happens that you need to send a CMake parameter to your catkin project, for instance, you need to build your code for debugging mode. The correct syntax is:

another example: