Path planning for autonomous vehicles