This is a C++ library with ROS interface to manage two-dimensional grid maps with multiple data layers. There is a typo in "Recovery of Occupancy Probabilities" section of the algorithm.
You must also include an appropriate launchįile and a sample a map generated by your code in the format Please include a READMEįile that briefly describes what your code does, how it works, and Submit this project checking the final version of your code with theĬommit message "MAPPING PA FINAL SUBMISSION". (or the map!) to avoid colliding with obstacles. Randomly drives the robot around its environment, using the scan data If you have extra time, write a simple wandering robot node that That the robot will be controlled through teleoperation. The mapping code described above only handles the problem ofĬonstructing a map from sensor data it doesn't handle the problem ofĬontrolling the robot during the mapping process.
(0,0) and the endpoint of the scan at fixed intervals and update the
A simple approach is to generate a series of points between Here is determining which grid cells intersect with the laser Occupancy Grid Maps with Forward Sensor Models. Worth 85% of the overall grade for this project.įor the second stage of the project you will implement the algorithm Marked grid squares shouldĬompleting this version of the mapping algorithm correctly is Once all of this is working correctly you should be able to watch your Step 3: Update the appropriate entries in the map.The sensor coordinate frame to the map coordinate frame. ROS also includes some C++ utility functions designed to facilitate working with laser scans:.This python module would probably be helpful: Require you to figure out which points correspond to the appropriate Using this topic would avoid the need for trigonometry, but it would This topic includesĪll of the Kinect data as points in the sensor coordinate frame. A third possibility is to ignore the /scan.Reusable, but it adds communication overhead to an already slow Publishes PointCloud messages to a new topic named A more modular approach would be to create a new node that.This is a bit more complicated, but it will make Step 2 more PointCloud message containing all of the scan points. A second approach is to use the scan data to create a.The scan message and employ some trigonometry to convert each scan The simplest approach is to iterate through each entry in.There several ways this could be accomplished: The scan message into points in the sensor coordinate frame. This will require you to complete several steps:
The first stage of this project is to complete a simple binary mappingĪlgorithm that works under the assumption that all grid squares areįree until they are observed to be occupied. This project will be much easier if you get comfortable using rviz. Once all of the necessary nodes have been started, try visualizing the