[[projects:projects]]:[[robots]]:[[autonomy]] ====== Piloting ====== the current method works when steering_angle is 0 when steering is <> 0, then heading is changing (as well as position) first calc the new heading then calc the new position (already done) treat steering_angle as a bearing, that is, an angle in degrees, add it to the previous heading to get the new heading * lastKnownHeading + steering_angle = newHeading * heading = orientation of the vehicle * heading+helm = prediction of future course * course = actual travel = line from previous position to current position * simmode = precise * heading is set instantly to what we want we want it to be * line: heading = course, line from prevpos to current positon * arc: heading is assumed to be perpendicular to the ray from cone to current position * both: on nextleg, heading jumps to next leg from * no drift * simmode = helmed * heading is what it is * course is what it is * set helm bring course back to what we want * includes drift * when we reach a cone * change bearing to next cone * set helm to steer a circle - how to calculate this based on radius and speed? * stay in the circle until heading = bearing