Государственный Университет Аэрокосмического Приборостроения диплом

Вид материалаДиплом
5.5 Постановка задачи для эксперимента
5.6 Используемое аппаратное обеспечение
5.7 Описание бортового контроллера робота «феникс 3»
5.8 Используемый радиоканал
5.9 Подготовка эксперимента
5.10 Проведение эксперимента
Список использованных источников
ПРИЛОЖЕНИЕ А - Текст подпрограммы модуля начальной микроконтроллера ультразвукового измерителя дальности
Приложение В - Текст подпрограммы модуля 4. Обработчик прерывания CAN
Приложение Г - Схема электрическая принципиальная основного модуля ультразвукового измерителя дальности
Подобный материал:
1   ...   8   9   10   11   12   13   14   15   16

5.5 Постановка задачи для эксперимента



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

После успешного завершения макетных испытаний измерителя была проведена проверка разработанного модуля в рабочих условиях в составе упрощенного варианта системы избежания столкновений.

В качестве макета был использован мобильный робот Феникс-3. Структура системы управления была аналогичной использованной в студенческих исследовательских проектах Феникс-1,2 [1 - 3]. Однако следует указать, что ряд структурных узлов был существенно переработан.


Для проведения натурных испытаний разработанная система измерения дальности монтировалась на экспериментальный колёсный робот Феникс-3 с дистанционным управлением. Ультразвуковые датчики монтировались по периметру робота, что даёт возможность измерять расстояние до объектов по пути движения. Собираемая информация в реальном времени передаётся и записывается на ПК, размещённый на борту робота, как и информация о действиях оператора, управляющего роботом. Также имеется возможность управления перемещением робота по командам с бортового ПК.

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

Важно было проверить работоспособность ультразвуковой части устройства в реальных рабочих условиях.

5.6 Используемое аппаратное обеспечение



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

Как показали проведённые ранее испытания, устройство способно обеспечивать требуемые технические характеристики при питании только от источника 5В, поэтому для упрощения была использована общая плата преобразователя питания 12 – 5В, которая используется на роботе также для питания основного контроллера.

5.7 Описание бортового контроллера робота «феникс 3»



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

Плата закреплена на специальном несущем основании, которое устанавливается в отсек робота. К ней с помощью разъёмных соединителей подключается передняя панель, на которой размещены разъёмы питания, соединения с выходными мостами, элементы внешней индикации, и управления. На макетной плате также закрепляется радиоприёмный модуль.


Контролер вырабатывает управляющие сигналы, поступающие на мосты управления двигателями. Мосты обеспечивают усиление по мощности сигналов ШИМ, сформированных платой контроллера, а также переключение их полярности в соответствии с сигналом направления вращения. Эти мосты были заимствованы из проекта робота “Феникс-2”.

Схема электрическая принципиальная платы контроллера и мостов управления двигателями робота приведена в Приложении Г и Приложении Д соответственно. Контроллер устанавливается в доработанную корзину стандарта “Евромеханика”, образующую приборный отсек робота. Как видно из рисунка, коммуникации мостов и датчиков робота оказалось целесообразным вынести на переднюю панель контроллера.


Внешний вид модуля контроллера робота «Феникс-3» представлен на рисунке 35. В ходе эксперимента он выполнял следующие функции:

  • управление выходными мостами коллекторных двигателей привода колёс робота.
  • приём и декодирование сигналов пульта дистанционного управления оператора.
  • взаимодействие с внешней системой по интерфейсу RS-232 (управление внешней системой скоростью вращения колёс, экстренная остановка, передача информации вовне о командах оператора).


Для осуществления функции принудительного управления перемещением робота (экстренное торможение) необходимо наличие внешней системы с интерфейсом RS-232. В качестве такой системы было решено использовать портативный компьютер.

Поскольку установка интерфейса CAN в компьютер была экономически нецелесообразна из-за высокой стоимости промышленного интерфейсного конвертора, было принято решение на время эксперимента заменить в ультразвуковом измерителе интерфейс CAN на уже имеющийся в наличии RS-232. Это было достигнуто аппаратной доработкой основного модуля измерителя и коррекцией его низкоуровневого ПО. Поскольку в интерфейсе RS-232 отсутствует какой-либо собственный протокол обмена данными, был реализован программно и использован собственный протокол ASK-bus 3.1.


Для обмена данными с основным модулем ультразвукового измерителя дальности и контроллером робота было разработано специализированное высокоуровневое программное обеспечение. Данное ПО устанавливается на портативный компьютер и обеспечивает выполнение следующих функций:

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


Более подробно контроллер описан в [14-15].

5.8 Используемый радиоканал



Для экспериментов использовался комплект системы дистанционного управления Hitec FOCUS 6 (рисунок 36). Он включает в себя пульт управления и приёмник. Структура сигнала, выделяемого приёмником, представлена на рисунке 37.





Сигнал управления представляет собой пачку из 6 импульсов. Первые 4 импульса содержат информацию о положении по осям X и Y первой и второй ручек управления. 5 импульс содержит информацию о положении переключателя «gear», а шестой – о положении ручки «CH6». В среднем положении ручек длительность соответствующего импульса составляет 1,6 мс. При изменении положения ручек соответственно увеличивается или уменьшается длительность импульсов. В крайних положениях изменение длительность изменяется примерно на 0,6 мс. Длительность паузы между импульсами составляет примерно 1,5 мс. После завершения передачи пачки, через 20 мс начинается формирование новой пачки в соответствии с текущим положением ручек управления.

Далее производится частотная модуляция радиосигнала в соответствии с сформированным сигналом. Центральная частота несущей – 40,675 МГц. Приёмник радиосигнала выделяет модулирующую пачку из принятого радиосигнала.

Приём сигналов осуществляется приёмным модулем из комплекта дистанционного управления, установленным на основную плату контроллера (рисунок 40). Декодирование сигналов управления выполняется программно с помощью низкоуровневого ПО, записываемого в память микроконтроллера на приёмной стороне. Для отсчёта временных интервалов используется один из встроенных таймеров микроконтроллера.

5.9 Подготовка эксперимента



Для измерения расстояния до объектов было установлено 2 комплекта излучатель-приёмник спереди и сзади робота, как показано на рисунке 38.

Сам измерительный модуль и ноутбук также были установлены на робот (рисунок 39). Так как в использованном ноутбуке отсутствовал встроенный интерфейс RS-232, то были дополнительно установлены переходники USB-RS232 для обмена данными между компьютером, основным модулем ультразвукового измерителя расстояния и контроллером робота, как это показано на рисунке 40.





Соединение ноутбука с ультразвуковым измерителем осуществлялось с помощью специального кабеля с разъёмами «719» - DB9, а с контроллером робота – при помощи стандартного кабеля интерфейса RS-232. Питание основного модуля измерителя и контроллера робота осуществляется от бортовой аккумуляторной батареи робота напряжением 12В через модуль преобразователя напряжения 12 – 5В. Выходные мосты двигателей робота питаются от отдельного комплекта аккумуляторных батарей также напряжением 12В. Портативный компьютер имеет встроенный источник питания.

5.10 Проведение эксперимента





Испытания установленной системы производились в полевых условиях (рисунок 41).


Как показали предварительные испытания, в выбранной конфигурации максимальное стабильно измеряемое расстояние составляет 1 м при отражении от препятствия из картона. Учитывая, что большинство статических объектов в полевых условиях обладают не худшей отражательной способностью, выбрано пороговое расстояние равное 0,8 м.

В ходе эксперимента робот на скорости около 3 м/с был направлен в кирпичную стену вначале при движении вперёд, а затем при движении назад. После достижения порогового значения робот останавливался на расстоянии примерно 0,2 м. Отсюда можно сделать вывод, что время реакции системы в целом составило (0,8-0,2)/3 = 0,2 с.

По результатам испытаний можно сделать следующие выводы:

  • Полученные результаты подтвердили работоспособность предлагаемых схемотехнических и программных решений в целом.
  • Суммарное время реакции системы оказалось равным 0,2 с. Для данного случая оно оказалось достаточным для выполнения поставленной задачи, однако в целом для систем реального времени оно является достаточно большим. Требуется проведения дополнительных исследований задержек, вносимых отдельными узлами системы и в частности, определение реального значения времени, требуемого на получение данных о расстоянии до объекта.



ЗАКЛЮЧЕНИЕ



Выполненное макетирование и проведенные натурные эксперименты позволили сформулировать ряд выводов:

  • проведённые испытания подтвердили работоспособность предлагаемых схемотехнических и программных решений в целом.
  • требуется проведения дополнительных исследований задержек, вносимых отдельными узлами системы и в частности, определение реального значения времени, требуемого на получение данных о расстоянии до объекта.
  • использование измерителей в динамически изменяющихся условиях работы без дополнительной поддержки не гарантирует получение заявленных результатов. Поэтому использование ультразвуковых измерителей расстояния без использования дополнительной поддержки допустимо только в случае, если условия работы системы чётко оговорены (отражающая способность объектов, пределы измерения расстояния до них). В противном случае необходимо использовать комплексирование системы другими типами датчиков.
  • представляется перспективным исследование структуры системы с одним источником зондирующих сигналов и несколькими приёмниками.


В заключение автор выражает благодарность коллективу СКБ ГУАП и команде проекта Феникс-3 да всестороннюю поддержку в реализации данного проекта.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ



1.Проект “Робот Феникс-1”/ Д.А.Астапкович, А.А.Гончаров, А.С.Дмитриев, А.В.Михеев // Сборник докладов пятьдесят девятой международная студенческая научно-техническая конференция ГУАП. Часть I, 18-22 апреля 2006, г,Санкт-Петербург. ГУАП. С.211-216.

2. A. Dmitriev, A. Mikheev, Autonomous Robot "PHOENIX-1". URL: ссылка скрыта

3. Проект Феникс-2 URL: ссылка скрыта

3. А.В. Бурдуков. Автономный робот “Феникс-3”. Научная сессия ГУАП: Сборник докладов Часть II, Вычислительные системы и программирование, 26 октября 2009, г,Санкт-Петербург, с.116-122.

4. A. Burdukov, Autonomous robot “Phoenix-3”, proc. “Information and communication technologies and higher education-priorities of modern society development”, International forum, department of operative polygraphy, SUAI, may 26-30 2009, p/41-49

5. Г.Н. Горностаев Введение в этологию насекомых фотоксенов. // Тр. Вестн. энтомол. об-ва. 1984. Л.: Наука, Т.66. С.101—167.

6 Д.Н. Лапшин, Д.Д. Воронцов, Активация эмиссии эхолокационных сигналов совок (Noctuidae, Lepidoptera) в ответ на ретрансляцию эхоподобных стимулов// ДАН. 1998. Т.362. №4. С.567—569.

7 Д.Н. Лапшин, М.В.Федорова, Р.Д. Жантиев Ультразвуковая эхолокация у совок (Lepidoptera, Noctuidae) // ДАН. 1993. Т.331. №6. С.781—783. .

8. Ультразвуковая локация летучих мышей. URL: ссылка скрыта

9. Обзор систем безопасности. URL: ссылка скрыта

10. Nomad 200 hardware manual. Part number: DOC00005, Nomadic technologies inc.

11. Garcia Robot Using Two SRF08 Rangers for Obstacle Avoidance URL: ссылка скрыта

12. URL: ссылка скрыта
  1. DS41159E. PIC18FXX8 Data Sheet (Microchip corp.)

14. А.В. Бурдуков Макетирование многоканальной системы ультразвукового зрения робота "Феникс-3" ссылка скрыта

15. А.В. Бурдуков Система дистанционного управления роботом "Феникс 3" ссылка скрыта

ПРИЛОЖЕНИЕ А - Текст подпрограммы модуля начальной микроконтроллера ультразвукового измерителя дальности



#include "p18F458.h"

#include

#include


#pragma config OSC=ECIO

#pragma config OSCS = OFF

#pragma config WDT = OFF

#pragma config LVP = OFF


void CANconfig(void) {

Can2CAN=CAN2510Init(CAN2510_RESET & CAN2510_CLKOUT_OFF & CAN2510_RXB0_STDMSG & CAN2510_RXB0_STDMSG, CAN2510_BRG_4x, CAN2510_RXB0_EN & CAN2510_RXB1_EN, CAN2510_SPI_FOSC4, CAN2510_SPI_MODE00, CAN2510_SPI_SMPMID);

Can2CAN=CAN2510Init(CAN2510_RESET & CAN2510_CLKOUT_OFF & CAN2510_RXB0_STDMSG & CAN2510_RXB0_STDMSG, CAN2510_BRG_32x, CAN2510_RXB0_EN & CAN2510_RXB1_EN, CAN2510_SPI_FOSC4, CAN2510_SPI_MODE00, CAN2510_SPI_SMPMID);

начальные настройки

if (Can2CAN==0) { //если удалось его запустить

Can2CAN=CAN2510SetMsgFilterStd(CAN2510_RXB0, 0xffff, mask0);

Can2CAN=CAN2510SetMsgFilterStd(CAN2510_RXB1, 0xffff, mask0);

CAN2510SetBufferPriority(CAN2510_TXB0, CAN2510_PRI_HIGH);

CAN2510SetMode(CAN2510_MODE_NORMAL);

}

}


void setup(void){

ADCON0bits.ADON=0; //выкл АЦП

ADCON1=6;

CANCON=0x30;

CMCON=7;

TRISB=255; //вкл вход INT

TRISC=0xE2;

TRISD=0xff;

TRISEbits.TRISE0=0;

TRISEbits.TRISE2=0;

PORTC=0;


//настройка таймера 1

T1CON=0x35;

T3CON=0x9D;


//Настраиваем прерывания

RCONbits.IPEN=1; //Разрешить систему приоритетов


INTCON2bits.INTEDG0=0; //разрешение прерываний и установка приоритетов для CAN-а.

INTCONbits.INT0IE=0;


IPR1bits.TMR1IP=1; //высокий приоритет прерывания таймеру 1

PIE1bits.TMR1IE=1; //разрешить прерывания от таймера 1


PORTBbits.RB1=0; //начальное состояние управляющих линий контроллера CAN

//PORTBbits.RB2=0;


mask0[0]=2;

mask0[1]=0;

mask0[2]=0;

mask0[3]=0;


CANconfig();

INTCONbits.GIEH=1; //Разрешаем высокоуровневые прерывания

INTCONbits.GIEL=1; //Разрешаем низкоуровневые прерывания


}


Приложение Б - Текст подпрограммы модуля таймера циклических измерений программы модуля начальной микроконтроллера ультразвукового измерителя дальности




void InterruptHandlerLow(void);

void InterruptHandlerHigh(void);


void MeasureCycle(unsigned char channel);


#pragma code InterruptVectorHigh=0x08 //это выполнится на высокоприоритетном прерывании

void InterruptVectorHigh(void) {

_asm

goto InterruptHandlerHigh //там основной обработчик

_endasm

}


void MeasureCycle(unsigned char channel)

{

PORTEbits.RE0=channel; //выбираем рабочий канал

PORTCbits.RC0=1; //запуск посылки импульса и начала измерений

PORTCbits.RC0=0;

}


#pragma code

#pragma interrupt InterruptHandlerHigh //основной обработчик

void InterruptHandlerHigh() {


if (INTCONbits.INT1IF) {


PORTEbits.RE2=1; //читаем данные из ПЛИС

HiDist4=PORTD; //вначале старший байт

PORTEbits.RE2=0;

LoDist4=PORTD; //потом и младший


INTCONbits.INT1IF=0;

}


if (PIR1bits.TMR1IF) {


MeasureCycle(0);


PIR1bits.TMR1IF=0;


}


Приложение В - Текст подпрограммы модуля 4. Обработчик прерывания CAN




if (INTCONbits.INT0IF) {


ReadType=CAN2510DataReady(CAN2510_RXBX);

if ((ReadType==2) | (ReadType==3)) {

ReadType=CAN2510DataRead(CAN2510_RXB1,&ReadID,&ReadLength,ReadBuffer);

NextReadOp();

}

if ((ReadType==1) | (ReadType==3)) {

ReadType=CAN2510DataRead(CAN2510_RXB0,&ReadID,&ReadLength,ReadBuffer);

NextReadOp();

}


void NextReadOp(void) {

if (ReadType==CAN2510_STDRTR) {

WriteBuffer[0]=HiDist4;

WriteBuffer[1]=LoDist4;

CAN2510LoadBufferStd(CAN2510_TXB0, 1, ReadLength, WriteBuffer);

CAN2510LoadBufferStd(CAN2510_TXB0, 1, 2, WriteBuffer);

CAN2510SendBuffer(CAN2510_TXB0);

}

Приложение Г - Схема электрическая принципиальная основного модуля ультразвукового измерителя дальности






Приложение Д - Схема электрическая принципиальная выходного каскада ультразвукового измерителя дальности (1 канал)






ПРИЛОЖЕНИЕ Е







ПРИЛОЖЕНИЕ Ж