Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам > Робототехника

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.12.2016, 09:02   #1
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9825
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: Синхронизация вращения колес у робота

В данной теме приведен пример, само собой углы поворотов можно задавать разностью импульсов в переменной course, желательно иметь две переменные по одной на каждое колесо
Admin вне форума   Ответить с цитированием
Старый 06.12.2016, 11:36   #2
Paul_B
Member
 
Регистрация: 06.12.2016
Сообщений: 35
Вес репутации: 0
Paul_B is an unknown quantity at this point
По умолчанию Re: Синхронизация вращения колес у робота

Цитата:
Сообщение от Admin Посмотреть сообщение
В данной теме приведен пример, само собой углы поворотов можно задавать разностью импульсов в переменной course, желательно иметь две переменные по одной на каждое колесо
Если робот едет прямолинейно, то можно каждые 100 единиц (5 оборотов колеса) обнулять два счетчика (левого колеса и правого) при длительном прямолинейном движении, и при начале прямолинейного движения, т.е. при завершении поворота. Далее, если опять же едет прямо, то при разнице в счетчиках на 2 единицы включать корректировку. Тут возникает вопрос - на сколько делать разность скоростей правых и левых колес для выравнивания разности (10% текущей скорости?).
А в поворотах уже считать реальные показания счетчиков и вычислять угол поворота, исходя из ширины базы робота, диаметра колеса и скорости внутреннего колеса.

Т.е. получается, что IntOn() должна включаться всегда, как какой-то двигатель начинает движение (чтобы не дублировать надо ввести булевую переменную, отражающую включена функция или нет), а IntOff() - когда оба двигателя останавливаются и при этом обнулять оба счетчика (левый и правый) и присваивать false той самой введенной переменной.

Последний раз редактировалось Paul_B; 06.12.2016 в 11:46.
Paul_B вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 15:18. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика