2D SLAM (Simultaneous Localization And Mapping) on an Android device.
The robot is driven by a dsPic33 microcontroller, and gets distance and angle environnement data from its 360° - 6hz LIDAR sensor. The robot communicates with the android device through a bluetooh transmitter.
This android app gets data from the robot (bluetooth communication). The robot send two different types of frames : LIDAR data frames and robot location frames.
The app opens a Bluetooth socket to receive robot data. Once connected, it decodes the received frames, and real-time display the robot location, its orientation, and the robot environnement discovered by the LIDAR.
The app is able to detect LIDAR spurious data : every 5 seconds, all measured points with a lower occurence than a fixed level are removed.
Below the map displayed as seen by the robot : red points have a too weak occurence.
A few moments later, the red points have been removed.
You will find the sourcecode of the project in the app/src/main/java/com/test/luc/projetcartographie/ directory.