Skip to content

Comment on Fast line-following robots

Comments

There is a similar competition in Germany called the CaroloCup. Here is a video of our run when I was still a student [1].

We used model-predictive control which evaluated about 10k trajectories with look-ahead, which works really well even when tires begin to degrade after a few minutes. You can see the effects in the video towards the end, where the car starts to slide, but the controller manages to catch it in time.

Our CV was a bit more complex as we had to deal with missing line segments. We pre-processed the camera image with a distance transform, then used an optimization pass written in opencl to fit a 3rd-order polynomial to the image.

[1] https://www.youtube.com/watch?v=Of_D_Z9gbeg

a1k0nOP

Nice! Are you doing probabilistic roll-outs, iLQR, or SQP, or what? What does your model look like? I've been struggling with this -- not sure how complex the tire dynamics model needs to be, for instance; do you need the whole Pacejka magic formula or is tanh() good enough?

We opted not to use a tire model at all, because we weren't sure how well something like Pacejka would transfer to model-size.

Instead, we built an empirical transfer function from (target yaw rate, speed) -> steering wheel angle. To get to this function, we measured the yaw rate during a steady-state circular test at different speeds and steering wheel angles. Then do some kind of regression to get a continuous function. During the test, also eyeball when the tires start to slip, then use this to limit max lateral velocity.

Of course this does not take into account changing tire conditions at all. We thought about estimating the slip angle from CV or using controller oscillations as indicators, but never got around to it.

Do you know if there's work on adapting to the vehicle dynamics on the fly? The comment about tires degrading made me thing that there should be some parameters in the model corresponding to how degraded the tires are, and instead of relying purely on feedback to correct for model-mismatch, you could try to get a better model on the fly.

a1k0nOP

I'm aware of one paper which tries to fit a local polynomial model to the lateral dynamics, and they have a different model for different positions on the track (it requires really good localization to work): https://arxiv.org/abs/1610.06534

I had some of the vehicle parameters as part of my EKF for a while, but it led to some instabilities in the control.

The main problem is that it's really hard to know what the car's instantaneous lateral velocity is. I think the best you can do is check the difference of velocity*gyro yaw rate and lateral accelerometer measurement to get a noisy lateral acceleration measurement, and that can tell you how well your tires are hooking up. I might try fitting a least-squares model on the fly with something like that.

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.