I’m just looking at this. My approach is to convert the angle/speed a velocity vector (which is simple enough [theta & speed into 2d velocity vector]), go through the process of changing the velocity to avoid collision and then converting it back into the angle of steering.
The converting back [vector to theta,speed] however is not a simple equation and you need to use numerical methods to do this. I’ve found that the speed converges really quickly (~1 iteration), but no so the angle (~5 iterations). I’ve also found that I need to use double point precision. So this is not cheap. The partial derivatives for angle are quite long as well.
I’m still trying to work out a good system that allows it to respond to a pure sideways movement (suggested by rvo)
which of course is impossible with a car.
My task is for fish, so I’m working on 3d obstacles (which is an interesting task in itself).
I hope this helps and gives you some ideas. I’m just giving pointers so don’t expect anything on github.
My fish video…fish demo