BTW, here's the meat of my steering code. (Prepare to be amazed.) pid_output = self.pid_captured(self.cross_track_distance) desired_heading = (self.course + minmax(-90, 90, pid_output)) % 360 bearing = degdiff(desired_heading - heading) steer_for_bearing(bearing) # horribly uncalibrated Yup, that's right; I send the cross-track distance into a PID and then use the PID output to determine how big my intercept angle should be. This was basically my first shot at a steering algorithm and it worked so well that I just kept using it. But it's not working well enough now and there are so many parts that need improvement. I'm thinking that if I throw an IMU into the mix, I could still use my algorithm but make the steering changes in response to IMU updates (at a very high rate). So I'd use the old code to say "Steer 385 degrees" but use the IMU to help me direct the steering wheels there. --- [Visit Topic](https://discourse.ros.org/t/tractobots-my-attempts-at-field-robots/1486/36) or reply to this email to respond. If you do not want to receive messages from ros-users please use the unsubscribe link below. If you use the one above, you will stop all of ros-users from receiving updates. ______________________________________________________________________________ ros-users mailing list ros-users@lists.ros.org http://lists.ros.org/mailman/listinfo/ros-users Unsubscribe: