Появились новые мысли. В своем первом посте я ошибся насчет траектории движения. Вращение на месте - это не движение по бесконечно большой дуге, все проще. При вращении на месте центр масс остается неподвижным (пока рассматриваем сферического коня в вакууме). Если одно колесо крутится на полную, а другое стоит на месте, то центр масс движется по окружности радиусом равным расстоянию между колесами. В любом случае после полного оборота робот окажется в той же точке, откуда начал движение. Ну а мы хотим двигаться вперед (пока вперед, а там посмотрим). Для определенности пусть робот вращается против часовой. Максимальное отклонение центра масс от начального положения будет через 90 градусов. Если после этого выровнять скорости колес, то центр масс тут и остановится. Когда робот станет передом в ту сторону, куда мы едем - снова делаем разные скорости колес, но теперь уже наоборот. Теперь мы максимально сдвинемся вперед через 270 градусов. Снова делаем скорости одинаковые, доворачиваем передок и все повторяем. Робот дугами в 90 градусов поедет вперед, при этом вращаясь все время в одну сторону.
Теперь возвращаемся на линию. Понятно, что нужен датчик спереди, чтоб робот знал где у него перед
![Very Happy :D](http://roboforum.ru/images/smilies/biggrin.gif)
. И нужны два датчика по бокам, прямо рядом с колесами. Задний датчик не нужен. Ну и постоянно нужно знать какую фазу движения делает робот, пересекает он линию в нужный или не нужный раз.
Но ехать такими дугами не очень эстетично, да и датчики у колес несколько мешаются. Можно поставить их ближе к переду, например под углами 60 и 300 градусов (а не 90 и 270). Дуги будут меньше, скорость упадет, плавность возрастет. Также на плавность будет влиять рассогласование скоростей колес - больше рассогласование - больше дуга.
Ну а если линия начала поворачивать - не беда. Передний датчик ее найдет. Поступательная скорость мала (и ее можно еще уменьшить, уменьшив рассогласование скоростей), ее можно подобрать такую, что робот просто не сможет потерять линию. И никакого ПИД регулятора не надо
![Smile :)](http://roboforum.ru/images/smilies/smile.gif)
. Как вы заметили, в моих рассуждениях ничего нет про энкодеры - тут они не нужны. Таким образом робота можно собрать на тиниавр. Цветомузыкой конечно придется пожертвовать, но пару светодиодов подключить к каналам моторов можно. Красный и зеленый, и чтоб при вращении они накладывались. Думаю эфект будет красивым. Вот только выключать такого робота будет трудновато.
Ну а напоследок вопрос: как по простому вычисляют центр масс? Приведу пример. На деревянной доске лежит кирпич. Известны габариты и того и другого, известны координаты их центров масс, а вот вес не известен - нет у меня маленьких весов. Плотность тоже не известна - вес не рассчитать. В общем известна только геометрия. Могу я узнать центр масс? Логика говорит что нет, но может я чего-то не знаю? А если вес я все-таки узнаю - как считают общий центр масс?