October 31, 2007 (1900 hrs), VICTORVILLE, CA. In case you have not heard it yet, CajunBot did not make it to the finalists. We did come very close, having finally gotten all the pieces of the puzzle. But we ran out time to do the fine tuning.CajunBot did exit the challenge with a bang, literally. She knocked a car parked on the side of the road (as part of the test environment) in Area B, shooting the car across the road, over the curb, into a house.
In this test area, DARPA had created a neighborhood scenario, with 15-20 cars parked on both sides of the road. The robots were expected to weave through these vehicles. The DARPA Urban Challenge Requirements document did mention the need for having the capability to avoid a vehicle partly protruding in the lane. But the requirement was almost mentioned as an afterthought, like something good to have. The emphasis in the requirements document, as also the site visit evaluation, was on avoiding stalled vehicles on two lane roads.
Over the last few months W\we had focused on our energies on passing vehicles stalled on a road, essentially blocking a whole lane. It turned out that capability was not even relevant for the NQE.
After having finished Area A and C, we finally began focusing on the requirement for Area B. Yesterday evening we did not have a clue on how to handle driving through neighborhood. Since the start of NQE we had come up with various solutions, but none were satisfactory. However, last night things started falling in place. Around 2100 hrs (9:00pm) Pablo, I think, suggested using ‘particle field’ approach. In this approach the path of the vehicle is treated as particles. Objects (like cars) on the road act as forces that push the particles. This approach sounded very promising, and I encouraged him to code it up.
Around midnight he had a solution, but it did not behave as expected. It resulted in paths that would make the vehicle go way out of the road to avoid something.
In the discussion, Daro came up with the brilliant idea of treating the path not as independent particles, but as an elastic string. The particles of the string pull each other.
Pablo coded the solution, and at some point fell asleep. Daro kept ticking, tuning the system. By about 7:00am in the morning we could see that the method worked in a simulated environment.
By 10:00am we were ready to run in Area B. The run did not go off well. The bot did not even make the progress she had made yesterday.
We got back to the motorhome, and continued fine tuning the system. We were offered to run again about 2:00pm.
This time around, CajunBot was a completely different beast. She cruised through the initial segments, areas she was earlier hesitating to go through. She was clipping at 25mph, and looked real good.
But once in the neighborhood with all the parked cars, she clipped a car while trying to avoid it.
Data from the run indicates that the method Pablo and Daro came up with worked really good. The only limitation was it was not tuned well enough. The forces exerted by the objects were a bit too weak. So while CajunBot attempted to swerve, she did not swerve hard enough. In the process she could not avoid the parked car.
The fender bender knocked CajunBot out of the challenge.
While I am disheartened, I am not disappointed. I think this small band of boys from Louisiana has shown that they can take on a challenge, and have fun with it as well.
Dr. Tether’s parting words were, “will see you next time.” We may be down, but not out, if no one wins the challenge. We have gained considerable experience, and will come back stronger next time.
– Arun Lakhotia