Идея не нова, на робофоруме уже встречалась. То, что вы предлагаете, сделать теоретически можно. Представим, что трасса в голове робота уже есть (полученная как вы описали - к этому мы еще вернемся). Весь вопрос в том, как этими данными воспользоваться. Вот вы говорите: на прямых ехать быстро. Моторы робота не абсолютно идентичны, будет увод, его надо компенсировать, нет гарантии, что на очень большой скорости это удастся. Скоро поворот - максимальная скорость снижается. А за какое время она снизится? Нужно знать динамические характеристики робота. Некоторые делали так: каждое отклонение от линии соответствует своему разбалансу скоростей моторов. Практика показала, что такой метод проигрывает ПД регулированию.
Теперь насчет получения линии. Чтобы проехать первый круг - уже нужен какой-то регулятор, причем желательно именно тот, который будет работать на высоких скоростях. Допустим пишем в память примерно так: едем ровно столько то импульсов энкодера, вот отклонение на 1, при нем проехали столько то, при таком отклонении проехали столько то. Мне кажется, что когда поедем второй раз - путь будет уже другим: будут и заносы, и небольшие вылеты с трассы. Все данные рассинхронозируются.
Может быть я ошибаюсь, но мне кажется, что лучше ПД регулятора для лайнтрейса ничего не придумать. Но я вас не отговариваю, опыт - критерий истины. Попробуйте ваш алгоритм, а потом ПД регулятор (настроенный, конечно). А результаты опыта - сюда. Вот и узнаем, кто прав