roboforum.ru

Технический форум по робототехнике.
Текущее время: 21 май 2025, 23:21

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 80 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.
Автор Сообщение
 Заголовок сообщения: Re: Управление роботом с компьютера. Новый подход.
СообщениеДобавлено: 28 авг 2010, 14:10 
Не в сети
Аватара пользователя

Зарегистрирован: 08 окт 2004, 16:43
Сообщения: 2114
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий
Цитата:
Казалось-бы надо сделать функции, которые облегчат жизнь программисту...

Для этого есть хранимые процедуры кстати, так что этот механизм не забыт.

Цитата:
Задачу, которую решает предложенный RPC можно обобщить так:
"Программа на хост компьютере взаимодействует с программой на борту"

Давайте еще раз обобщим и скажем, что это можно реализовать на машине Тьюринга... не надо ничего лишний раз обобщать вот есть описание (http://ru.wikipedia.org/wiki/Remote_Procedure_Call) именно эту задачу мы и решаем. Вызываем одни функции из адресного пространства других. Все.

Цитата:
С моей точки зрения наличие явного диалогового режима позволяющего взаимодействовать с бортовой системой является основой, а механизм RPC есть прослойка между пользовательской программой и диалоговым взаимодействием и может быть реализована в удобном для программиста виде (в виде библиотек с базовыми возможностями или в виде классов или DLL или еще как-то)

Это заблуждение, т.к. RPC не является просто прослойкой. Прослойка это если вы вручную реализовали диалоговой режим, а потом вывели интерфейс к нему через DLL. Здесь же все это происходит автоматически и реализуется обмен и строится интерфейс.

_________________
Все новости о моих проектах http://savethebest.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление роботом с компьютера. Новый подход.
СообщениеДобавлено: 28 авг 2010, 14:38 
Не в сети
Аватара пользователя

Зарегистрирован: 28 ноя 2005, 12:05
Сообщения: 583
Откуда: Москва
Виталий писал(а):
...именно эту задачу мы и решаем. Вызываем одни функции из адресного пространства других. Все...

sorry, я было подумал, что решается задача взаимодействия ПК с бортовым компьютером робота. Тогда все мои возражения снимаются.

Виталий писал(а):
Здесь же все это происходит автоматически и реализуется обмен и строится интерфейс.

Что значит автоматически? В случае с программным интерфейсом работающим через систему команд программисту нужно:
1. инициировать канал, через который будут передаваться данные
2. посылать команды
3. обрабатывать возвращаемые результаты
что тут можно автоматизировать?

насчёт автоматического построения интерфейса - не понял. что имеется ввиду?

_________________
http://www.imobot.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление роботом с компьютера. Новый подход.
СообщениеДобавлено: 28 авг 2010, 15:01 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Вы что-то совсем в другую степь ушли.

SQL-сервер сильно отличается от робота в том смысле, что он выполняет ограниченный и заранее определенный
(специфицированный) набор функций. Более того, говоря о роботе, обычно подразумевают некие автономные действия, которые вовсе не обязаны явно вызываться с компьютера. Можно сказать, что SQL-сервер по сравнению с роботом - пассивный исполнитель (ну, до определенной степени, конечно).

Несмотря на то, что набор функций строго определен, это не избавляет вас от отладки этих функций в процессе написания SQL-сервера (если вы захотите реализовать его на МК, например). Разговор про отладку мне непонятен, чем по-вашему принципиально отличается "послать строку и получить в ответ строку" от "послать аргументы и получить в ответ результаты"? Вас смущает невозможность работы в терминалке?

Если уж спускаться до идеологии, то основными различиями я вижу - возможность гибкого расширения функций, независимость от языка программирования нижнего уровня (пока соблюдаются соглашения о передаче параметров-результатов), прозрачность и независимость самого механизма RPC...

С практической же точки зрения, программист избавлен от самого процесса взаимодействия - он автоматически получает доступ к удаленным функциям в наиболее естественном (для языка) виде, не заморачиваясь насчет синтаксиса команд, парсинга строк и т.п.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление роботом с компьютера. Новый подход.
СообщениеДобавлено: 28 авг 2010, 15:12 
Не в сети
Аватара пользователя

Зарегистрирован: 08 окт 2004, 16:43
Сообщения: 2114
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий
Цитата:
я было подумал, что решается задача взаимодействия ПК с бортовым компьютером робота.

По простому: вызываем функции на контроллере из кода на ПК, через последовательный порт.

Цитата:
что тут можно автоматизировать?

Автоматизируется процесс написания синтаксического анализатора (парсера), протокола передачи команд. В связи с этой автоматизацией повышается гибкость при расширении функционала робота.
Обеспечивается независимость от архитектуры ЭВМ, что приводит к самодостаточности самого механизма RPC.

Итак у вас есть робот который может двигаться и измерять температуру. Для этого у него есть 2 функции на контроллере:
Код:
void Move(double vleft, double vright)
{
...
}

double GetTemperature()
{
...
}


Для того чтобы эти функции вызвать на стороне ПК в нашей утилите вы просто жмете кнопочку "RPC" и они становятся доступными для вызова через класс RemoteObject.Move(...), RemoteObject.GetTemperature().

Добавлено спустя 46 секунд:
Цитата:
Вас смущает невозможность работы в терминалке?

Кстати это можно у нас.

_________________
Все новости о моих проектах http://savethebest.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление роботом с компьютера. Новый подход.
СообщениеДобавлено: 28 авг 2010, 15:22 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
2mandigit: ИМХО всё просто - вот есть у вас робот на нём 2 функции double GetRange() для получения в метрах дистанции с дальномера и SetMotorSpeeds(double speed_left,double speed_right) - сколько времени вам нужно будет чтобы обеспечить работу с этими функциями с ПК? Тут я так понимаю минуту-полторы, а вам надо будет парсер писать свой. Далее потребуется добавить пару команд - и тут снова полторы минуты, а вам скорее всего придется додумывать свой парсер, т.к. выяснится, что вы его написали неуниверсально и т.п.

Ситуация станет на порядок круче если Виталий добавит в свой RPC определение ошибок при передаче + контроль доставки.

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление роботом с компьютера. Новый подход.
СообщениеДобавлено: 28 авг 2010, 15:23 
Не в сети
Аватара пользователя

Зарегистрирован: 08 окт 2004, 16:43
Сообщения: 2114
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий
Цитата:
Ситуация станет на порядок круче если Виталий добавит в свой RPC определение ошибок при передаче + контроль доставки.

Это в планах.

_________________
Все новости о моих проектах http://savethebest.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление роботом с компьютера. Новый подход.
СообщениеДобавлено: 28 авг 2010, 15:38 
Не в сети
Аватара пользователя

Зарегистрирован: 28 ноя 2005, 12:05
Сообщения: 583
Откуда: Москва
Начну с конца:
опять упоминается хитрое слово "автоматически" :)
Если мы на стороне ПК предоставляем библиотеку, которая формирует строки при вызове соответствующих функций - это автоматически?

насчёт гибкость, независимость, прозрачность - ничего такого в помине нет.
Вот представьте себе, как система будет развиваться в динамике: сделали базовый набор функций там и сям, выпустили, где-то кто-то что-то добавил - получилась еще версия, потом еще и еще. Если вы будете вести общение не через терминал, а через специально обученную программу, которая будет интерпретировать содержимое обмена, то как она будет понимать то, о чем не знает? Если версия на борту обладает каким-то функционалом, появившемся в процессе эвалюции, о котором "дешифратор" на стороне хоста не в курсе?
О какой гибкости может идти речь, какая прозрачность? какая независимость?

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

Конечно совместимость не 100%, но найдите пример лучше и будем ориентироваться на
него.


2Dead
В твоем (не против) примере:
Send("getrange")
range = stoi(Recive())
Send("SetMotorSpeed " & double speed_left & "," & double speed_right)

насчёт добавления команд: как-раз парсер пишется несложно и новые команды добавляются - код вообще менять не нужно. А вот как менять код RPC для меня загадка - появилась новая функция и что? Используем какой-то новый механизм регистрации, описания параметров?
А ошибки перидачи и контроль доставки - это вообще не уровень RPC, эти вопросы решаются на транспортном уровне.

PS Дайте кого-нибудь в союзники, а то втроем навалились :)

_________________
http://www.imobot.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление роботом с компьютера. Новый подход.
СообщениеДобавлено: 28 авг 2010, 16:08 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Да никто и не навалился... просто задачи совсем разные.
Никто же не говорит, что командный протокол не имеет права на жизнь - Dead вот, например, ОРФУ развивает...

Ну, это все равно что спорить, что лучше - мотоцикл или лодка...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление роботом с компьютера. Новый подход.
СообщениеДобавлено: 28 авг 2010, 16:17 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
mandigit писал(а):
как-раз парсер пишется несложно и новые команды добавляются - код вообще менять не нужно

Мы тоже когда для ORFA писали парсер так думали :pardon:

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление роботом с компьютера. Новый подход.
СообщениеДобавлено: 28 авг 2010, 17:55 
Не в сети
Аватара пользователя

Зарегистрирован: 28 ноя 2005, 12:05
Сообщения: 583
Откуда: Москва
Оно-ж понятно, что болтать всегда проще, чем делать :pardon:

_________________
http://www.imobot.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление роботом с компьютера. Новый подход.
СообщениеДобавлено: 30 авг 2010, 14:23 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 04 окт 2004, 12:58
Сообщения: 10990
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко
парсер писать очень сложно, особенно если в нескольких параметрах подразумевается разный синтаксис записи
например при вызове конфигуратора сетевого адреса мы на одном и том же месте в параметрах мы можем иметь
ip aaa.bbb.ccc.ddd
локальное имя
деменное имя (FQDN)
сеть с маской aaa.bbb.ccc.000/xxx.yyy.zzz.ttt

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление роботом с компьютера. Новый подход.
СообщениеДобавлено: 30 авг 2010, 14:44 
Не в сети
Аватара пользователя

Зарегистрирован: 08 окт 2004, 16:43
Сообщения: 2114
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий
По-хорошему чтобы написать парсер вам следует сперва определить его грамматику, а потом писать.
Меняете парсер - меняете грамматику. И не всякое изменение грамматики допустимо. Поэтому все разговоры о том что парсер это так просто - сказки. Парсер просто - если простая грамматика и семантика.

_________________
Все новости о моих проектах http://savethebest.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление роботом с компьютера. Новый подход.
СообщениеДобавлено: 30 авг 2010, 14:46 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
+1, я тоже уверен парсер - это ни разу ни просто.

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление роботом с компьютера. Новый подход.
СообщениеДобавлено: 30 авг 2010, 14:46 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 04 окт 2004, 12:58
Сообщения: 10990
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко
да да, всё верно, не просто так придумана нотация [[ru:Расширенная_форма_Бэкуса_—_Наура]]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление роботом с компьютера. Новый подход.
СообщениеДобавлено: 30 авг 2010, 15:14 
Не в сети
Аватара пользователя

Зарегистрирован: 28 ноя 2005, 12:05
Сообщения: 583
Откуда: Москва
Не надо смешивать в одну кучу сложный язык и простую грамматику.
Решаемая задача требует только 2 метода: передача параметров, прием параметров.
Парсер в этом случае сложностей не представляет.
А обсуждение парсера к примеру языка СИ выходит за рамки обсуждаемой темы.

Парсер, о котором говорю я умеет следующее:
принять строку типа <имя функции> параметр1, ... ,параметрN
его задача состоит в разделении параметров в соответствие с используемым разделителем и передача функции ссылки на массив указателей на переданные параметры
обратная задача тоже сложной не является:
<результат работы> параметр1, ..., параметрN
и позволяет интерпретировать работу как визуально, так и программой.

_________________
http://www.imobot.ru


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 80 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


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

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO