Autonomous navigation for the VipaLab shuttle
Research internship at Institut Pascal: pure-pursuit waypoint tracking and LiDAR-based obstacle avoidance for VipaLab, an autonomous electric vehicle, developed in the Cobaye simulator and run in real time.
Problem
VipaLab is an autonomous electric vehicle at Institut Pascal in Clermont-Ferrand. To drive a mission on its own it has to follow a route given as a list of waypoints smoothly, and when its LiDAR sees an obstacle in the way, change the route to get around it and carry on to the end of the mission.
What I did
I spent my 2015 summer internship in Roland Chapuis’s group building both parts.
Waypoint tracking. I implemented pure pursuit: at each control step the vehicle picks a goal point a lookahead distance ahead on the path and steers along the arc that reaches it, with curvature 2x / l². A longer lookahead gives smoother control, a shorter one tighter tracking, so the lookahead is the main tuning knob. Position comes from the vehicle’s odometry and the path is stored as a list of waypoints.
Obstacle avoidance. The multibeam LiDAR returns are transformed from the LiDAR frame through the vehicle’s GPS pose into global coordinates. Obstacles outside the current corridor between waypoints, or outside the heading range, are ignored. If one sits inside the safety area (the vehicle width plus 0.5 m on each side), the planner inserts a new waypoint beside it, on whichever side has more free space, parallel to the original route. If there is not enough room, the vehicle stops. The system was designed for static obstacles.
Result
In the Cobaye simulator the vehicle followed the route and avoided obstacles as designed (the video above), and the code was then run in real time. Avoiding moving obstacles, which needs prediction of their future positions, was left as future work.
diagrams
scroll sideways on small screens