2. DCM
DCM или Device Communication Manager е част от NAOqi системата.
Това е един софтуерен модул, който управлява комуникацията на
всички устройства (board, sensors, actuators и т.н.) без камерите.
DCM се инсталира автоматично, когато NAOqi е инсталиран. Важна
функция на DCM е да свързва upper level и lower level архитектурите.
DCM се свързва чрез Head Devices, i2c interface, Chest Board, USB
interface.
3. Upper Level Architecture Високо ниво Архитектура
DCM структура
Следващите два метода могат да се използват, за да
могат различните модулите да използват сензорите
и задвижващите устройства на робота.
1/ За да се достъпят сензорите, трябва да се открие
стойност в паметта ALMemory, която има на
спомагателносто устройство. DCM автоматично
обновява стойностите на сензорите в паметта.
Модулите използват само новообновените стойности
на сензорите.
2/ Модулите използват стойности обновени от DCM
чрез Time Command. Но този метод не може да
промени DCM стойноста директно в паметта
ALMemory. В този случай е получена заявка от DCM,
а стойността на задвижващото устройство в паметта
е променена в самия DCM.
4. Upper Level Architecture Високо ниво Архитектура
Time Command – използна се за доставяне на
команда, отнасяща се до това кога командата
ще се приложи на задвижващото устройство на
спомагателното устройство. Потребителя може
да изпрати една или повече такива команди, за
да ги достави до задвижващото устройство на
спомагателното устройство.
DCM запазва всички команди на всички
задвижващи устройства. След това се
анализира DCM цикъла на следващата команда,
която се отнася за настоящето време и
използва линейна интерполация, за да изчисли
подходящата команда.
Предходната команда е изтрита веднага след
като е била използвана. Поддържа се
последната команда, а ако тя все още не е
пристигнала ще изпраща към следващия
цикъл.
5. Upper Level Architecture Високо ниво Архитектура
Time Command Linear Interpolation
Калкулира стойността между две постоянни
местоположения, когато само дву-измерни
крайни точки са дадени.Резултата се
получава след изчисление на следното
уравнение:
6. Low Level Architecture Архитектура от ниско ниво
За да се използва DCM трябва да се разгледат всички устройства, които принадлежат на
NAO.
7. Low Level Architecture Архитектура от долно ниво
Device and Definitions of the Auxiliary Device
Устройствата са контролери на помощните устройства. DCM комуникира с
електрическата платка и микроконтролерите на вътрешните устройства.
Всяко устройство се определя от bus type и определени адресни стойности, които имат
подходящо име и собствен отчетлив тип.
Спомагателните устройства са основно задвижващите устройства и сензорите.
Спомагателното устройство се дефинира от самото устройство, негов тип и номер.
Всяко устройство има име, което се използва за комуникация с upper level-a.
8. Low Level Architecture Архитектура от ниско ниво
LED пример
Пимер за едно от LED задвижващите устройствата, отнася се за червена LED светлина от дясната
страна, кореспондираща на 0 градуса. Тези LED светлини имат важна ключова стойност наречена
Value, тази стойност е от тип float. (0.0 – LED Off 1.0 – LED full)
Joint Sensor пример
Това е името на една от ставите на робота (ляво рамо). Тази става има важна ключова стойност,
наречена Value, която е от тип float. Ако искаме да използваме това устройство като спомагателно
трябва да се прибави в началото.
9. Low Level Architecture Архитектура от ниско ниво
Device and Definitions of the Auxiliary Device
11. List of Communication Bus
MotherBoard: виртуален bus за устройствата в дънната платка
MotherBoardI2C: I2C bus свързан с главата на робота
Chest: виртуален bus за устройствата в платката, разположена в тялото
ChestI2C: I2C bus свързан за тялото на робота
RS485Down: RS485 bus за всички платки свързани с краката на робота
RS485Up: RS485 bus за всички платки свързани с ръцете и колената на робота
LeftHandI2C: не се използва
RightHandI2C: не се използва
12. Device Type and List
MotherBoard: Основната CPU платка разположена в главата на робота и има Geode
процесор
ChestBoard: Платка на разположена на тялото, която има ARM процесор
MotorBoard: Всички двигателни платки в робота контролират всички стави без тези
на краката и ръцате
MotorBoardHand: Двигателна платка за ръцете на робота
MotorBoardFoot: Двигателна платка за краката на робота
TouchBoard: Платка, която има капацитативен сензор на горната част на главата
FaceBoard: Платка, която се намира около очите на робота и има LED и IR сензори
USBoard: Платка с ултрасоник сензори
InterialSensor: Платка, която има акселометър и гирометър сензори
EarLeds: Платка, която контролира LED сензорите на ушите
Battery: Платка в батерията
13. Auxiliary device Type and List
Joint: Ставата е задвижващо устройство, което позволява да се променя
местоположението на ставите на робота.
JointHardnes: Задвижващо устройство, което позволява на волтажа изпратен към
двигателя да може да контролира
Led: LED с един цвят, който променя стойноста си от 0 до 100 %
Power: не се използва
Charge: не се използва
UsSend: Задвижващо устройство, което изпраща стойност от ултрасоник сензора
14. Auxiliary device Type and List
JointPosition: Сензорна стойност за положението на една става на робота
Current: Настоящата стойност на точно един двигател на става
FSR: Стойността на FSR сензора
Toutch: Статус на датчика за близост
USReceived: Връщаща стойност на ultrasonic сензора
Accelerometer: Връщаща стойност на акселометър сензора
Gyrometer: Връщаща стойност на gyrometer сензора
Angle: Ъгъла на целия робот
Temperature: Температура на двигателя или батерията
Switch: Статус на бутона на тялото или бъмперите на краката
Battery: Статус на сензора на батерията