Инструментарии роботостроения с открытым исходным кодом

Использование виртуальных сред для тестирования ваших алгоритмов роботов

Для создания робота требуются умения из многих областей знаний, включая проектирование встраиваимого программно-аппаратного обеспечения (прошивка) и проектирование оборудования, сенсорный отбор, проектирование систем управления и механических конструкций. Но отметим, что среды моделирования предоставляют виртуальные арены для тестирования, измерения и визуализации алгоритмов роботов без больших затрат ресурсов (и времени) процесса разработки. Данная статья познакомит вас с некоторыми из open source-инструментариев (с открытым исходным текстом) роботов под Linux®, продемонстрирует их возможности, а также поможет решить какой из них лучше подходит для ваших целей.

М. Тим Джонс, инженер-консультант, Emulex

M. Tim JonesM. Тим Джонс (M. Tim Jones) является архитектором встраиваимого программного обеспечения и автором работ: Программирование Приложений под GNU/Linux, Программирование AI-приложений и Использование BSD-сокетов в различных языках программирования. Он имеет опыт разработки процессоров для геостационарных космических летательных аппаратов, а также разработки архитектуры встраиваемых систем и сетевых протоколов. Сейчас Тим работает инженером-консультантом в корпорации Эмулекс (Emulex Corp.) в г.Лонгмонт, Колорадо.



05.09.2006

Исследователи из Вашингтонского Университета создали термин Softbots (Софтботы) -- соединение слов software и robot. Термин intelligent agent (интеллектуальный агент) на данный момент чаще используется, особенно, когда говорится о понятиях, связанных с Интернетом. В 1996 году, Франклин (Franklin) и Грэссер (Graesser) представили первую классификацию агентов, где вирусы определялись, как автономные агенты.

Существует большое количество разнообразных традиционных роботов, но с появлением программных агентов (эквивалент виртуальному роботу) - их многообразие увеличилось. Большая часть характеристик физических роботов стала использоваться в виртуальном мире. Например, мобильность в физических роботах подразумевает некоторую способность передвижения, когда как мобильные софт роботы (или агенты) также могут иметь мобильность -- здесь -- способность перемещаться между хостами в сети. Рисунок 1 поверхностно изображает взаимосвязь автономных роботов в физическом и виртуальном мирах. Данная статья рассматривает программных агентов в качестве механизма для моделирования роботов в искусственно созданных средах.

Рисунок 1. Простая классификация автономных роботов
Простая классификация автономных роботов

Элементы робота

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

Рисунок 2. Базовые элементы всех роботизированных систем
Базовые элементы всех роботизированных систем

В физическом мире робот-пожарный может использовать датчики температуры, инфракрасные (ИК) сенсоры, Глобальную систему позиционирования (GPS) для восприятия окружающей его среды, а также двигательные устройства и, возможно, противопожарные устройства, в качестве эффекторов для воздействия на среду. Виртуальный поисковый агент может использовать Web-серверы и HTTP-интерфейсы как для восприятия, так и воздействия на окружающую среду (Интернет), а также консоль, в качестве эффектора для взаимодействия с пользователем.

На Рисунке 3 показана замкнутая кольцевая система, где сенсоры возбуждают систему управления, в зависимости от изменений в окружающей среде. В другом случае действует так называемая обратная связь (feedback). Если система управления определяет действие, которое изменяет среду, сенсоры подтверждают данное изменение, отправляя информацию о новом состоянии окружающей среды в систему управления. Разомкнутой кольцевой системе в этом случае пришлось бы постоянно допускать то, что действия на самом деле изменили состояние среды, что никогда не будет верным.

Рисунок 3. Замкнутая кольцевая система во взаимодействии с окружающей средой
Замкнутая кольцевая система во взаимодействии с окружающей средой

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


Роботостроение и моделирование

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

Linux и роботостроение

Linux является распространенной операционной системой, используемой в роботостроении, так как изначально она имеет те же исторические корни, что и само роботостроение. Роботостроение является областью постоянных экспериментов. Это подразумевает процессы оптимизации, внедрения новых идей и постоянного развития и совершенствования. Linux, по своей сути, также связан со всеми этими процессами. Ранее роботы были чем-то непонятным и их практическое применение сводилось к минимуму. Таким же образом, Linux начинался с операционной системы, создаваемой как хобби, но затем стала мощнейшей и самой надежной из операционных систем, применение которой можно найти как в крошечных встраиваемых устройствах, так и в суперкомпьютерах (включая многие роботы).

Одно из самых больших преимуществ моделирования состоит в возможности моделирования сразу несколько роботов. Чаще всего такое моделирование используется в Футболе Роботов (Robot Soccer), как с виртуальными, так и с физическими роботами, когда одна команда роботов соревнуется с другой в мировом спорте - футболе (что делает ее идеальной для международных соревнований). Роботы должны совместно соревноваться против других роботов, каждая из сторон действует, как команда (возможно с взаимодействием) - все это создает сложный тест для проверки поведения роботов.

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


Открытые инструментарии для Linux

Существует несколько доступных открытых иструментариев для построения роботизированных систем управления. Данная статья рассматривает программы моделирования мобильных роботов, систему моделирования физики и, наконец, программу моделирования, поддерживающую встраивание смоделированной системы управления в физического робота. Большая часть всех доступных инструментариев работают под Linux, главным образом, по причине открытых исходных кодов моделей. Открытое программное обеспечение (ПО) является платформой, на которой вы можете очень быстро и с меньшими затратами усилий разрабатывать программы, поэтому оно идеально вам подходит. Linux также предоставляет индивидуальную настройку системы, что не доступно в других операционных системах (такие настройки, как минимизация или расширение ядра). Ссылки на такие инструментарии и другое вы найдете в разделе Resources в конце данной статьи.

ODE

Рассел Смит (Russell Smith) разработал Открытый Динамический Движок (Open Dynamics Engine - ODE), представляющий собой движок физики с открытым исходным кодом, с помощью которого вы можете моделировать динамику тел с шарнирными сочленениями. Таким образом, вы можете моделировать физику объектов реального мира вне зависимости от графических библитек (в качестве которой вы можете использовать OpenGL). С помощью ODE вы можете создавать модели всех типов объектов в искусственной среде таких, как герои из трехмерной игры или средства передвижения в автосимуляторах. В добавление к этому, ODE поддерживает средства обнаружения наложений объектов для процесса моделирования в реальном времени.

Что такое тело с шарнирными сочленениями?

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

В частности, среди перечисленных возможностей ODE поддерживает такие типы сочленений, как шарнирные, створчатые, угловые, фиксированные, а также полозья и двойные шарниры (для соединений в средствах передвижения). Он также поддерживает различные простейшие наложения (как, например, сферы и плокости) и несколько промежутков между наложениями.

ODE, главным образом, был написан на языке программирования C++, но для соединения его с вашим приложением в него можно внедрять простые интерфейсы, как на языке C, так и C++. Необходимо отметить еще одно преимущество ODE - это то, под какими лицензиями он был выпущен, а именно: общедоступная лицензия GNU Lesser General Public License (LGPL) и лицензия BSD. Под любой из этих лицензий вы можете использовать исходный код ODE в коммерческих продуктах бесплатно. И вследствие этого, вы можете найти ODE в различных коммерческих играх, авиасимуляторах, и симуляторах виртуальной реальности.

Пример кода в Листинге 1 показывает простой мир с гравитацией Марса и сферой, которая имеет определенную скорость подъема. Скорость подъема не постоянна, так как существует определенная гравитация. С течением времени сфера достигнет высшей точки и начнет снижаться. После завершения инициализации (а именно, созданных в данном мире объектов и их характеристик), вы можете моделировать физику мира с помощью вызова dWorldStep. Чтобы понять, что именно происходит, вам необходимо постоянно вызывать dBodyGetPosition и брать значение идентификатора вашей сферы, чтобы узнать ее настоящее местоположение.

Листинг 1. Простой эксперимент ODE со сферой в мире с гравитацией
#include <iostream>
#include <ode/ode.h>

#define time_step		 (float)0.1

int main()
{
 dWorldID myWorld_id;
 dBodyID mySphere_id;
 dMass sphereMass;
 const dReal *pos;
 float time = 0.0;

 /* Create a new world */
 myWorld_id = dWorldCreate();

 /* Create a sphere in the world */
 mySphere_id = dBodyCreate( myWorld_id );

 /* Set the world's global gravity vector (Mars) -- x,y,z */
 dWorldSetGravity( myWorld_id, 0, 0, -3.77 );

 /* Set the Sphere's position in the world -- x,y,z */
 dBodySetPosition( mySphere_id, 0, 0, 100 );

 /* Set the Sphere's mass (density, radius) */
 dMassSetSphere( &sphereMass, 1, 2 );
 dBodySetMass( mySphere_id, &sphereMass );

 /* Give the sphere a small amount of upward (z) velocity */
 dBodySetLinearVel( mySphere_id, 0.0, 0.0, 5.0 );

 /* Run the simulation */
 while (time < 5.0) {

 /* Simulate the world for the defined time-step */
 dWorldStep( myWorld_id, time_step );

 /* Get the current position of the sphere */
 pos = dBodyGetPosition( mySphere_id );

 std::cout << "position (" << pos[0] << ", "
 << pos[1] << ", " << pos[2] << ")\n";

 /* Next time step */
 time += time_step;

 }

 /* Destroy the objects */
 dBodyDestroy( mySphere_id );
 dWorldDestroy( myWorld_id );

 return 0;
}

Итак, если вам нужен движок с качественной технической физикой (которая работает как под Linux, так и под другими платформами) для того, чтобы смоделировать мобильного робота или беспилотное летательное средство передвижения в реалистичных средах, то ODE - это отличный выбор. Использование его вместе с программным интерфейсом приложения (API) OpenGL, с помощью ODE можно генерировать как фотореалистичную графику, так и реалистичную физику.

Программа моделирования роботов Simbad

Simbad представляет собой программу моделирования трехмерных роботов, написанную на языке программирования Java® (таким образом, она работает под Linux и другими платформами с поддержкой виртуальной машины Java или JVM). Однако, программа моделирования включает в себя поддержку для скриптового языка Python (через Jython). Simbad был спроектирован для изучения алгоритмов искусственного интеллекта (AI) в контексте создания автономных роботов, и он включает в себя качественный графический пользовательский интерфейс (GUI) для визуализации действий робота, который также позволяет "видеть" окружающий мир с точки зрения робота.

Simbad представляет интерес тем, что он прост в использовании и позволяет быстро формировать новые характеристики поведения робота. Несмотря на то, что разработка в Simbad является простой, моделирование робота предполагает достаточно большой объем работы.

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

Интерфейсы API для сенсоров просты и понятны в использовании. Пример в Листинге 2 демонстрирует использование сонара (эхолокатора) и то, как определять столкновение (обнаруженный объект).

Листинг 2. Фрагмент кода, демонстрирующего использование смоделированного сонара
int sonar_id, total_sonars;

// If at least one sensor has a hit
if (sonars.oneHasHit()) {

 // Find out how many sonars are on the robot
 total_sonars = sonars.getNumSensors();

 // Iterate through each sonar
 for ( sonar_id = 0 ; sonar_id < total_sonars ; sonar_id++ ) {

 // Does this one have a hit?
 if (sonars.hasHit(sonar_id)) {

 // Emit the details (angle, range)
 System.out.println( "Sonar hit at angle " +
 sonars.getAngle(i) +
 " at range " +
 sonars.getMeasurement(i) );

 }

 }

}

Другие сенсоры, доступные в программе Simbad, используются таким же образом, создавая ряд наглядных интерфейсов API.

То, что действительно делает Simbad таким практичным - это его консоль для моделирования и визуализации робота. Как показано на Рисунке 4, консоль программы Simbad предоставляет вам вид мира в реальном времени, панель инспектора представляет робота в деталях (включая камеру), а панель управления позволяет управлять процессом моделирования.

Рисунок 4. Программа моделирования роботов Simbad и консоль визуализации
Программа моделирования роботов Simbad и консоль визуализации

Simbad также предоставляет хорошую документацию и обучающие уроки для повышения вашего уровня знаний и умений, он быстро работает как на языке Java, так и Python. Благодаря этому вы можете не только моделировать одного робота, но и создавать модели сразу нескольких роботов. В общем, программа моделирования Simbad является отличной средой для тестирования идей в алгоритмах интеллектуальных роботов. Simbad доступен под open source-лицензией GPL.

Программа моделирования роботов TeamBots

TeamBots представляют собой портативную программу моделирования мультиагентных (multi-agent) роботов, которая позволяет создавать мультиагентные системы управления в динамических средах с визуализацией. В сравнении с программой моделирования Simbad программа TeamBots является уникальной, благодаря возможности создавать переносимую систему управления. Вы можете разработать свою систему управления и реализовать ее в программе моделирования, а затем протестировать свою систему управления в реальном мобильном роботе (используя робота Nomadic Technologies Nomad 150).

Интерфейс API программы TeamBots предусматривает абстрактный слой для системы управления (см. Рисунок 5). В результате чего, системе управления совершенно не важно, где именно ее запускают: в программе моделирования в искусственной среде (TBSim) или на платформе мобильного робота в реальной окружающей среде (TBHard).

Рисунок 5. Абстрактный слой для системы управления в интерфейсе API TeamBots
API TeamBots

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

С помощью TeamBots вы можете создавать модели роботов различных типов. Например, в 1997 году Georgia Tech использовала TeamBots и выиграла соревнование мобильных роботов Американской ассоциации по искусственному интеллекту (American Association for Artificial Intelligence AAAI), создав две модели роботов Nomad 150, перемещающихся в среде. Целью двух роботов было исследовать среду, а затем собирать и относить синие объекты в синюю корзину и оранжевые объекты в оранжевую корзину (см. Рисунок 6). Чтобы усложнить задачу роботам, оранжевые шарики были динамичными и постоянно перемещались по среде.

Рисунок 6. Моделирование поведения поиска с помощью TeamBots
Моделирование поведения поиска с помощью TeamBots

На Рисунке 6 мобильный робот 1 держит синий объект и движется в направлении синей корзины, чтобы бросить туда объект. Робот 0 находится в процессе поиска.

Вы также можете использовать TeamBots для разработки роботизированных футбольных игроков. Так как футбол является международным спортом, его можно использовать в качестве отличной платформы для соревнований между университетами и группами из разных стран. Правила в футболе роботов могут быть различны (особенно когда учитываются существующие различия в мобильных платформах, двуногих платформах или платформе Sony Aibo), но тем не менее все они имеют базовую модель игры.

На Рисунке 7, Робот 1 (желто-белый) движется в направлении мяча, чтобы забить гол. Робот 0 (сине-красный) является вратарем и занимает позицию для отражения нападения. Футбол роботов на самом деле очень интересно наблюдать, и дистрибутив программы TeamBots предоставляет несколько команд, которые вы можете применять или использовать для экспериментов в новых подходах.

Рисунок 7. Демонстрация работы TeamBots в домене SoccerBots
Демонстрация работы TeamBots в домене SoccerBots

Программа TeamBots предоставляет интерфейс API Java для футбола, который позволяет вам сосредотачиваться только на "мозге" игрока. Интерфейс API эффектора позволяет поворачивать робота, двигаться на определенной скорости, ударяя мяч, или просто перемещая его. Сенсоры сделаны на качественном уровне и позволяют интерфейсам API определять вектор движения мяча, массив векторов для других игроков (команды и противников), получать данные о ведущем игроке, вектор движения противника и так далее.

Чтобы дать понять уровень интерфейса API футбола в TeamBots, просмотрите Листинг 3, который представляет очень простую стратегию. Эта стратегия, заимствованная из исходного кода SoccerBots созданным Такером Болчем (Tucker Balch), просто ищет мяч, подходит к нему, а затем ударяет по нему без учета направления цели). Это произвольная стратегия, но она демонстрирует простоту интерфейса API.

Листинг 3. Фрагмент простого футбольного игрока, использующего интерфейс API программы TeamBots SoccerBots
public int TakeStep()
{
 Vec2 ball;
 long T;

 T = abstract_robot.getTime();

 // Get the vector to the ball
 ball = abstract_robot.getBall(T);

 // Point ourselves to it
 abstract_robot.setSteerheading(T, ball.t);

 // Go to it (maximum speed)
 abstract_robot.setSpeed(T, 1.0);

 // If we can kick it, do so!
 if (abstract_robot.canKick(T)) abstract_robot.kick(T);

 return(CSSTAT_OK);
}

Дистрибутив TeamBots представляет собой отличную среду как для разработки, так и моделирования мобильных роботов, а также для реализации их в реальных роботах, используя среду TBHard. TeamBots является программой с открытым исходным кодом (разработанной Такером Валчем из Georgia Tech и университетом Carnegie Mellon), поэтому она может свободно использоваться в образовательных и исследовательских целях. Программа моделирования была разработана на языке Java и поставляется с полным исходным кодом и рядом примеров, чтобы помочь вам в повышении уровня знаний и умений.


Другие инструментарии

Одна из самых известных платформ мобильных роботов, для которой было написано достаточно много программ моделирования называется Khepera. К сожалению, Khepera стала коммерческим программным обеспечением, и поэтому исходный код больше не доступен. Однако инструментарии, такие как KControl, все еще доступны для разработки систем управления для Khepera под Linux.

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

И наконец, существует полезный инструментарий навигации роботов, называемый Carmen -- Carnegie Mellon Robot Navigation Toolkit (инструментарий навигации робота от университета Carnegie Mellon). Carmen имеет модульную структуру, которая предоставляет базовые элементы навигации, такие как уклонение от препятствий, планирование маршрута и отображение. Помимо предоставления двумерного моделирования, Carmen еще поддерживает несколько платформ физических роботов, работающих под Linux.


Создание роботов под Linux

Начать создавать роботов на базе Linux не так сложно, как вы, возможно, себе представляете. Более того, некоторые учебные исследовательские курсы в высших школах используют Linux, а также легкодоступное оборудование в качестве основы для роботов на базе Linux. Например, вы можете использовать старую материнскую плату ПК для ядра системы (или что еще лучше, старый ноутбук), и загружать Linux с USB-привода (который будет потреблять значительно меньше энергии, чем при загрузке с CD-ROM, дискеты или жесткого диска). Встроенный параллельный порт может быть легко переделан в большое число устройств, например в дискретный ввод/вывод сигнала, или использован для запуска нескольких шаговых двигателей. Серийный порт может быть использован для синхронизации координат GPS или, с использованием внешнего устройства, в качестве АЦП или ЦАП. В конце концов, вы можете приобрести недорогие USB Web-камеры, которые будут использоваться в качестве зрительных сенсоров робота.

Но настоящее достоинство использования Linux с данной средой состоит в том, что он позволяет упрощать среду так, чтобы конструирование системы управления робота было доступно каждому с помощью языков более высокого уровня, например Python. Майкл Сарран (Michael Surran) из академии Greater Houlton Christian в Мэйне недавно предложил для второго года обучения курс роботостроения в высшей школе, который включает работу с Linux и легкодоступным оборудованием. В основе этого обучающего курса лежит использование языка Python. С тех пор, как Python является интерпретируемым языком, стало легко экспериментировать с алгоритмами, без необходимости долгого компилирования (по этой причине интерпретируемые скриптовые языки такие полезные).

Если вы ищете что-то большее, чем доморощенное решение в Linux, университет Carnegie Mellon недавно представил платформу "Qwerkbot", созданную в их Лаборатории Программирования Мобильных роботов (Mobile Robot Programming Lab - MRPL), которая работает на Linux ядре 2.6. "Qwerk" является платой на основе ARM9 с флэш-памятью в 8MБ и SDRAM в 32MБ. Она включает четыре встроенных контроллера электродвигателя, 16 устройств сервоуправления, 16 цифровых вводов/выводов, 8 12-битных аналоговых вводов и многое другое.


Заключение

Программы моделирования роботов могут значительно упростить процесс создания физических роботов. С помощью программ моделирования вы можете тестировать идеи и методы перед тем, как воплотить их в оборудовании. К счастью, сообщества Linux и open source имеют несколько возможностей, которые не только просто использовать, но могут даже поддерживать прямую связь с платформами аппаратного обеспечения.

Ресурсы

Научиться

  • Оригинал статьи: "Open source robotics toolkits"
  • Открытый Динамический Движок является физическим движком для создания моделей тел с динамикой шарнирных сочленений.
  • Программа моделирования Simbad является отличным средством для моделирования и визуализации роботов.
  • Дистрибутив TeamBots является отличной средой как для прототипирования моделей мобильных роботов, так и для выполнения их в реальных роботах с помощью среды TBHard. TeamBots является открытым ПО (разработанным Такером Болчем (Tucker Balch) из Georgia Tech и университета Carnegie Mellon) и может свободно использоваться в образовательных и исследовательских целях.
  • Широкий набор правил для соревнования RoboCup Soccer, где определяется, что именно разрешено в игре в зависимости от размеров поля и мяча (оранжевый мячик для гольфа).
  • 2005 RoboCup, который проводится в Осаке, Япония, включает в себя большое разнообразие событий в футболе роботов, с традиционными мобильными роботами-игроками, двуногими роботами, а также Sony Aibo, с моделированными виртуальными игроками и другими представлениями роботов. Web-сайт турнира RoboCup содержит отличные видеофильмы этих событий.
  • Web-сайт American Association for Artificial Intelligence содержит хороший (обновляемый) список тем по AI, а также по исследованиям в сфере искусственного интеллекта. На странице о роботах вы найдете самую свежую информацию о последних событиях в мире виртуальных и реальных роботов (также как и на странице об open source-проектах).
  • Khepera II остается на базе Motorola 68331 CPU (маленькая Khepera немного устарела). В добавок к мобильной платформе, существует много опций для расширения платформы, такие как модуль видеокамеры, модуль устройства захвата и радиомодем для обмена информацией между другими мобильными роботами Khepera.
  • Программа моделирования мульти-роботов Gazebo выполняет не только реалистичное моделирование роботов, но также и точное моделирование физики шарнирных сочленений для среды роботов.
  • Carmen является инструментом навигации роботов, которая может моделировать и поддерживать платформы физических роботов. Он выполняет некоторые базовые действия навигации, такие как отображение и планирование пути.
  • Найдите интересные средства для Qwerkbot, включая элемент pan-tilt для камеры, на CMU.
  • "Самодельные роботы вместе с Linux", статья из Linux Journal, написанная Майклом Сарраном (Michael Surran), объясняет, почему Linux и старое компьютерное оборудование могут создать отличную платформу для создания мобильных роботов.
  • Для запуска Java под Linux вы можете использовать пакет Blackdown Java Linux.
  • На сайте developerWorks в разделе Linux можете найти больше источников для Linux-разработчиков.
  • Будьте в курсе семинаров и обучения на developerWorks Россия.

Получить продукты и технологии

  • Доступное пробное ПО IBM для скачивания прямо с сайта developerWorks, чтобы вы могли создавать следующие разработки под Linux.

Обсудить

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Linux, Open source
ArticleID=171299
ArticleTitle=Инструментарии роботостроения с открытым исходным кодом
publish-date=09052006