Как создать реальных роботов? - PullRequest
22 голосов
/ 12 февраля 2009

Еще до того, как я изучил программирование, я был очарован тем, как могут работать роботы. Теперь я знаю, как будут написаны основные инструкции по программированию, но я не понимаю, как робот следит за этими инструкциями.

Например, если я написал этот код:

object=Robot.ScanSurroundings(300,400);
if (Objects.isEatable(object))
{
   Robot.moveLeftArm(300,400);
   Robot.pickObject(object);
}

Как процессор будет следовать этой программе таким образом, чтобы робот выполнял физические действия, глядя влево, двигая рукой и тому подобное? Это делается в основном на двоичном языке / ASM?

Наконец, куда бы я пошел, если бы я хотел научиться создавать робота?

Ответы [ 14 ]

1 голос
/ 09 марта 2009

Если вам нужна альтернатива Java, я могу порекомендовать книгу Linux Robotics . Он содержит много полезной информации о том, где можно получить комплекты, детали и датчики, а также полный список исходного кода на Java.

1 голос
/ 12 февраля 2009

Вам потребуется драйвер, который взаимодействует с аппаратным обеспечением (скорее всего, STAMP или FPGA с двигателями и т. Д.) Затем вы бы вызвали функцию me.moveLeftArm (x, y); и водитель будет знать, что moveLeftArm () означает перемещение привода на X секунд / миллисекунд / градусов.

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

0 голосов
/ 03 мая 2019

Относительно последнего вопроса «как создать робота» я начинаю с поиска соответствующего проекта в онлайн-сообществах, таких как [Adafruit] [1], [Hackster.io] [2] или даже [glitch] [ 3], или ищите сообщения в блоге того, кто создал робот с нуля, например, https://burningservos.com, или продукт, который предоставляет документацию и учебные пособия для аппаратного и программного обеспечения, например, http://emanual.robotis.com/docs/en/platform/openmanipulator_x/overview/.

0 голосов
/ 12 января 2010

много хороших ответов здесь. ваш кусок фантазийного кода не так уж далек от того, как вы делали бы это на языке более высокого уровня, таком как C # over MS Robotics Studio. Просто имейте в виду, что даже простые вещи (такие как «переместить руку влево») очень загружены «информационным смещением».

вплоть до металла, роботизированная рука представляет собой набор звеньев и [возможно] моторизованных соединений. Поэтому «переместить рычаг влево» (или любую точку в координате) - это уже очень сложная задача для вычисления (ищите таблицу D & H, прямую и обратную кинематику для манипуляторов).

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

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

...