Использование данных о движении приводов, для оценки перемещения

Интернет-магазин

Новости Arduino

16 декабря 2013г.
Flutter - платформа разработки, основанная на Arduino
01 марта 2013г.
TV-выход на Arduino
08 февраля 2013г.
Raspberry Pi медиацентр своими руками
08 ноября 2012г.
Пополнение в библиотеке - Bionic Arduino на русском языке
04 июля 2012г.
Сонар для слепых на базе Arduino Mini Pro
30 мая 2012г.
Новости Raspberry Pi или шесть мучительных недель
16 мая 2012г.
Подключение датчика движения к Ардуино
14 февраля 2012г.
Arduino Pong - игровая платформа

Контактные данные

Телефон:
(093) 503-26-13
Электронная почта:

 

Главная Библиотека Arduino Использование данных о движении приводов, для оценки перемещения

Использование данных о движении приводов, для оценки перемещения

Одометрия  (Odometry — от греческих слов hodos  ( «перемещение», «путешествие») иmetron  ( «мера», «измерять»)) — использование данных о движении приводов, для оценки перемещения. 

Одометрия применяется: 
* в роботах (для подсчёта пройденного пути) 
* станках с ЧПУ  (для отслеживания положения инструмента),
* принтерах (для отслеживания положения печатающей головки),
* устройствах управления, например — компьютерных мышках  (для отслеживания перемещения)

Одометрия не является методом определения положения, а лишь средством его оценки.

Стандартной схемой одометрии робота, является использование энкодеров, считывающих угол поворота колёс. 

Используя разные типы энкодеров, можно добиться отслеживания не только угла, но и направления вращения (например — используя коды Грея).

Т.о., если робот движется, то отслеживая данные энкодеров, можно легко узнать пройденное им расстояние:

C = 2*PI*R = PI*D

— формула длины окружности
, где R — радиус колеса (соответственно, D — диаметр колеса).

За один оборот колеса, робот сдвигается на расстояние C.
Пусть, энкодер, связанный с колесом, даёт за один оборот — N отсчётов.
Т.о., пройденное расстояние можно вычислить по формуле:


   n    n
L
= --- * C = --- * 2*PI*R = (n/N)*PI*D
   N    N

, где
L — итоговое пройденное расстояние (за заданный промежуток времени),
n — суммарное число отсчётов энкодера (за заданный промежуток времени),
N — число отсчётов энкодера за один оборот колеса,
R — радиус колеса (D — диаметр колеса).

Разумеется, очевиден недостаток этого метода — он не может учитывать «проскальзывания» или «заклинивание» колеса.

Пример: в старых — шариковых компьютерных мышках, была известная проблема — «проскальзывание» шарика.
Сейчас этой проблемы не существует, т.к. используются оптические мышки, работающие на принципахвизуальной одометрии.



Рассмотрим робота с дифференциальным приводом  (differential drive robot) (стандартная конструкция — два ведущих колеса и, при этом, каждое колесо приводится в движение отдельным двигателем. 
Пример: робот-пылесос iRobot Roomba).
Инкрементные энкодеры, расположенные на колёсах робота, фиксируют «пройденное расстояние».

Новое положение центра O робота в момент времени t+1 будет составлять (в радианах):

O  (t+1) = O  (t) +   (Dr - Dl)/W

, где 
O (t) — положение робота в момент времени t
Dr — расстояние, пройденное правым колесом робота
Dl — расстояние, пройденное левым колесом робота
W — ширина робота

Расстояние, пройденное за этот промежуток времени можно оценить так:

D (t,t+1) = (Dr + Dl)/2


— линейная аппроксимация криволинейной траектории (т.о., чем больше интервал времени между отсчётами — тем хуже приближение).

Для отображения координат робота на карте можно рассчитать его Декартовы координаты:

X  (t+1) = X  (t) + D  (t,t+1)*cos  (O  (t+1))
Y
(t+1) = Y (t) + D (t,t+1)*sin (O (t+1))



Т.о., одометрия — недорогое средство, которое даёт хорошую кратковременную точность и позволяет реализовать большую частоту дискретизации. 
Однако, необходимо учитывать, что при рассмотрении более длительных промежутков времени, накопление погрешностей приводит к увеличению ошибки ориентации, которая растёт пропорционально пути, пройденному роботом. 

Источники погрешности:
* погрешность измерения радиуса колёс
* различные размеры колёс (для роботов у которых больше одного колеса)
* ошибки подсчёта импульсов от энкодеров
* низкая частота обработки одометрии

Последнее, например, может привести к следующей ошибке:

— всё тот же робот с дифференциальным приводом, два ведущих колеса которого оборудованы инкрементными энкодерами, которые накапливают информацию о перемещении робота. 
При этом, слева, изображена ситуации, когда робот двигается по прямой линии, и поэтому, значения энкодеров равны. 
А справа, изображена ситуация, когда робот совершил огибание препятствия.
Синий энкодер считает 80, а зелёный считает 40 — это означает, что робот выполнил правый поворот. Тем не менее, робот затем повернул влево, и в конечной позиции, энкодеры насчитали одно и то же значение (оно больше, чем значения на левом рисунке, так как робот проехал большее расстояние, следуя по S-образной кривой). 
Теперь, если управляющее программное обеспечение робота, считает значение датчиков только в их конечном положении, то естественно предположить, что робот двигался по прямой линии. 
Вот и получается, что низкая частота обработки данных от энкодеров может привести к ошибкам.

данные о движении приводов, оценка перемещения, differential drive robot, энкодеры, одометрия

12.12.2012, 6626 просмотров.

Корзина пуста

Перейдите в каталог, выберите требуемый товар и добавьте его в корзину.

Метки