Humanitarian Robotics: Autonomous Landmine Detection Rover

Although war is not happening, the dangerous impact is still tangible today. Landmine has been one of the threats left by the past wars, killing 15,000–20,000 people every year according to UN Mine Action Service. Demining efforts cost US$ 300–1000 per mine and imposing danger to people, resulting one person is killed and two are injured for every mines cleared.

HRATC 2017

Robot can be really helpful in solving this problem, as it is designed to do the “dull, dirty, dangerous, and difficult” tasks. In 2017, IEEE Robotics Automation Society’s Special Interest Group on Humanitarian Technology (RAS–SIGHT) held a competition. The competition was Humanitarian Robotics and Automation Technology Challenge (HRATC), held at the 2017 International Conference on Robotics and Automation (ICRA’17).

Autonomous Landmine Detection Rover
Continue reading Humanitarian Robotics: Autonomous Landmine Detection Rover

Monte Carlo Localization

Monte Carlo localization (MCL) is also known as particle filter localization. Given a map of an environment, the algorithm estimates the position and orientation of a robot as it moves and senses the surrounding. The algorithm uses particle to represent the distribution of likely states, with each particle representing a possible state.

The algorithm starts by distributing the particles in the configuration space. After that, it starts to loop its three main parts, namely motion update, sensor update, and resampling. During motion updates, particles are shifted into new possibilities of states. Whenever the robot senses the environment, the particles are resampled using the recursive Bayesian estimation. Lastly, the particles with higher likelihood tend to survive in the resampling process.

Continue reading Monte Carlo Localization

Programming for Robotics – ROS: Exercise 3

This post is a continuation of previous project, on learning ROS. The lecture and exercise is given by Robotic Systems Lab. – ETH Zurich, can be accessed through this website.

This time, the exercise goal is to make the robot hit the pillar in the simulation environment. The pillar position is found by measuring closest distance from LIDAR measurement. The speed is set to be constant and a simple P controller is made to direct Husky towards the pillar. Both speed and P-gain is written in param file, making it easy to tune avoiding re-build the code. A marker in RViz is created to visualize location of the pillar.

Exercise 3

The video above shows my result for the exercise. You can find the exercise paper sheet on this link.


Thanks to Robotic Systems Lab – ETH Zurich for sharing this helpful course!

Programming for Robotics – ROS: Exercise 2

This post is a continuation of previous project, on learning ROS. The lecture and exercise is given by Robotic Systems Lab. – ETH Zurich, can be accessed through this website.

This second lecture is focused on ROS package structure, ROS C++ client library, ROS subscribers and publishers, ROS parameter server, as well as RViz visualization. I haven’t included integration and programming with Eclipse in my work.

Exercise 2

The video above shows my result for the exercise. You can find the exercise paper sheet on this link.


Thanks to Robotic Systems Lab – ETH Zurich for sharing this helpful course!

Programming for Robotics – ROS: Exercise 1

Recently, I found an interesting website to learn about ROS and Gazebo. This website is provided by Robotic System Lab – ETH Zurich. Even though I’ve made several ROS project, including the one for my internship at ProtoSpace Toulouse – Airbus, the online course has a lot to offer about ROS.

The first lecture is an introduction to ROS, such as masters, nodes, topics, and launch files. The lecture file can be found in this link. At the end of the lecture, an exercise is given which require students to control a simulation in gazebo using keyboard input as well as to make a launch file.

Exercise 1

The video above is a simulation of the exercise, controlled by keyboard using teleop_twist_keyboard.

Continue reading Programming for Robotics – ROS: Exercise 1