In this project the goal will be to localize a car driving in simulation for at least 170m from the starting position and never exceeding a distance pose error of 1.2m. The simulation car is equipped with a lidar, provided by the simulator at regular intervals are lidar scans. There is also a point cloud map map.pcd already available, and by using point registration matching between the map and scans localization for the car can be accomplished. This point cloud map has been extracted from the CARLA simulator.
Each tap will increase the throttle power. Three presses is a good amount of throttle power.
A single tap will stop the car and reset the throttle to zero if it is moving. If the car is not moving it will apply throttle in the reverse direction.
Tap these keys to incrementally change the steer angle. The green line extruding out in front of the red box in the image above represents the steer value and its end point will move left/right depending on the current value.
cd /home/workspace/c3-project
cmake .
make
su - student
cd /home/workspace
./run-carla.sh
cd /home/workspace/
./cloud_loc
All of the work for the project can be found within c3-main.cpp .
ICP matching was implemented in this project.
In this project, the chosen algorithm for aligning point clouds is 3D ICP algorithm. The voxel filter is used to reduce the number of points in the point clouds and it has a parameter called ‘filterRes’ that determines the size of the voxels. The ‘filterRes’ value is set to ‘0.5’ in this project. The number of iterations is another parameter that affects the accuracy and speed of the algorithm. The number of iterations is set to ‘4’ in this project. The scan that is transformed by the algorithm is named ‘newscanCloud’. The video that follows demonstrates the result of implementing these steps on a car that drives autonomously. The car was able to drive a distance of 170 meters without exceeding a pose error of 1.2 meters.

