Arduino code for autonomous robotic navigation and obstacle avoidance applications on the Moon

(1 customer review)



This project provide an experimental analysis of the effects of lunar dust simulant on the ability of two different sensors to provide data for autonomous robotic navigation and obstacle avoidance applications on the Moon. The two sensors investigated are the Microsoft Kinect for Xbox 360, a structured light depth sensor; and a Hokuyo UTM-30LXEW, a scanning ToF depth sensor.

The scanning lidar data is broken into two sets: first echo only data to simulate a single echo sensor, and last echo data to observe the effectiveness of the multi-echo functionality. Five test scenarios were set up to accommodate various target sizes and distances. Testing was conducted at multiple dust levels to compare with a reference case, i.e. no dust, for each scenario. A total of eight target planes are extracted for each of these dust levels from the three different sensor datasets and analyzed for errors. Accuracy is determined by the percentage of a target which is visible and the average distance to the target plane as compared to the reference case.


program has finished recording the desired number of images from the Kinect, the user is given the option to either enter a new number to record the corresponding additional images or enter zero to exit.


Another custom program named PCD_Reader simply allows the user to open a point cloud file after the recording process to assess the image and determine whether it is satisfactory.


All depth images from the lidar and Kinect were analyzed using the same software: PCD_Analyzer. This is another custom program which uses the PCL to handle the point cloud depth data. It takes a single command line argument, which is the filename of the image to be processed, and uses the RANSAC algorithm to extract planar objects. Once the file is loaded, the user is asked to input three parameters: the axis to which the desired plane is perpendicular, the distance threshold value, and the plane variance angle.
A higher distance threshold will cause points from farther in front of the plane and behind it to be included in the returned data, allowing for a thicker target plane. The plane variance angle determines the number of degrees the plane angle is allowed to be offset from perpendicular to the axis. The algorithm attempts to find a plane matching the provided characteristics and then offers the user a menu with various command options. A screenshot of the command line window showing the menu options is given in Figure 1.

PCD_Analyzer Command Window

PCD_Analyzer Command Window



This code has a document (124 pages) which describe the algorithm and circuit in detail.

Arduino code for wearable Sensor System

Arduino code for a programmable mask positioning system


1 review for Arduino code for autonomous robotic navigation and obstacle avoidance applications on the Moon

  1. blank


    Excellent programmer!!!

Add a review