Пример конфигурационного файла описывающего робота для модуля Player:
Sample.cfg писал(а):# The file configures Player to control a Pioneer 2-DX equipped
# with a gripper and a Sony pan-tilt-zoom camera.
position:0 ( driver "p2os_position" port "/dev/ttyS0")
sonar:0 ( driver "p2os_sonar" port "/dev/ttyS0")
gripper:0 ( driver "p2os_gripper" port "/dev/ttyS0")
ptz:0 ( driver "sonyevid30" )
разберем строку
position:0 ( driver "p2os_position" port "/dev/ttyS0"):
- position - идентификатор интерфейса
- 0 - индекс устройства под указанным интерфейсом;
- p2os_position - идентификатор драйвера устройства;
- port "/dev/ttyS0" - параметр драйвера (параметры всегда идут парами "название параметра" и "значение параметра").
Добавлено спустя 43 минуты 28 секунд:Re: Общие вопросы и концепция Player/Stage/GazeboТипы данных:
- byte/char - длина 1 байт
- short - 2 байта*
- int - 4 байта*
Примечание* - порядок байтов в многобайтовых целых "big-endian", т.е. младший байт хранится в старшем адресе, а старший байт в младшем адресе.
Для обозначения момента времени (timestamp) будет использоваться 2-компоненты типа int, первая из которых будет означать время прошедшее с 00:00:00 1 января 1970 года, а вторая - количество микросекунд с начала последней секунды.
Добавлено спустя 8 минут 23 секунды:Re: Общие вопросы и концепция Player/Stage/GazeboПосле подключения Player выдаёт в TCP/IP строку из 32 символов с указанием своей версии и режима работы (если получилось меньше 32 символов, то оставшиеся позиции он забивает символом #0). Далее весь обмен идёт в специальным образом оформленных сообщениях.
Сообщение состоит из заголовка и тела сообщения.
Формат заголовока (длиной 32 байта):
- STX - short - идентификатор начала сообщения, всегда число 0x5878
- type - short - идентификатор типа сообщения
- device - short - идентификатор интерфейса устройства
- index - short - идентификатор экземпляра устройства с этим интерфейсом
- t_sec - int - Первая часть timestamp которую ставит сервер Player при отправке сообщения
- t_usec - int - Вторая часть timestamp которую ставит сервер Player при отправке сообщения
- ts_sec - int - Первая часть timestamp полученной от устройства которую ставит сервер Player при отправке сообщения типа "данные"*
- ts_usec - int - Первая часть timestamp полученной от устройства которую ставит сервер Player при отправке сообщения типа "данные"*
- reserved - int - зарезервировано для будущего использования
- size - int - объем в байтах следующих данных, не включая 32 байта заголовка
Примечание* ts_sec + ts_usec нужно понимать, как момент времени в который сенсоры получили эти данные.
Добавлено спустя 7 минут 29 секунд:Re: Общие вопросы и концепция Player/Stage/GazeboТипы сообщений:
- 0x0001 - сообщение с данными
- 0x0002 - сообщение с командой
- 0x0003 - сообщение с запросом
- 0x0004 - сообщение с ответом на запрос
- 0x0005 - сообщение синхронизации
- 0x0006 - сообщение с информацией об ошибке при попытке выполнить запрос (например, невозможно корректно интерпретировать команду или выполнить);
- 0x0007 - сообщение с информацией о невозможности отправить устройству запрос (например, переполнена очередь запросов);
Добавлено спустя 2 минуты 54 секунды:Re: Общие вопросы и концепция Player/Stage/GazeboОбъявленные интерфейсы (идентификатор, строковой идентификатор, текстовое описание):
0x0001 player The player server itself
0x00FF null Null interface
0x0002 power Power subsystem
0x0003 gripper Simple robotic gripper
0x0004 position Mobile robot base
0x0005 sonar Array of fixed acoustic range-finders
0x0006 laser Single-origin scanning range-finder
0x0007 blobfinder Visual color segmentation system
0x0008 ptz Pan-tilt-zoom camera unit
0x0009 audio Fixed-tone generation and detection
0x000A fiducial Fiducial (e.g., landmark) detector
0x000B comms General-purpose communication system
0x000C speech Speech synthesis/recognition system
0x000D gps Global positioning system
0x000E bumper Tactile bumper array
0x000F truth Ground truth (only available in Stage)
0x0010 idarturret Collection of IDAR sensors
0x0011 idar IDAR (Infrared Data and Ranging) sensor
0x0012 descartes The Descartes mobile robot base
0x0014 dio Digitial I/O
0x0015 aio Analog I/O
0x0016 ir Array of fixed infrared range-finders
0x0017 wifi Wireless Ethernet card
0x0018 waveform Raw digital data (e.g., audio)
0x0019 localize Multi-hypothesis localization system
0x001A mcom Inter-robot stack-based communication
0x001B sound Play pre-recorded sound files
0x001C audiodsp Fixed-tone generation and detection
0x001D audiomixer Control sound levels
0x001E position3d Robot base that moves in 3D
0x001F simulation Interface for controlling simulator
0x0020 service adv Service discovery
0x0021 blinkenlight Blinking lights
0x0022 camera Camera images