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

I started to build robot from eyes. For the beginning I'd found appropriate web-cam and extracted PCB from it.

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

After that I did cardan joint and attached motors to the frame. I didn't use standard servo motors because I hate the noise they produce. To turn the eye there is not so much force needed and usual DC motors works just fine.

Контроллер для управления глазом сделан на базе Arduino Micro 32u4, драйвер для управления моторами, ваял сам на базе TC4424. Для определения положения глаза используется оптический сенсор, A9800, управляющийся с Ардуино по SPI. В дальнейшем были добавлены датчики Холла для определения нулевого положения глаза.

The controller for eyes was done on the base of Arduino Micro 32u4, the morot's driver is on the base of TC4424. To read the eye position A9800 sensor was used. Later, Hall sensors were added to detect (0,0) position.

Вот как это выглядело в разобранном виде

Глаза по частям Собранная рамка Камера установлена Камера, повернута

Потом я подумал, что неплохо бы иметь защиту для камеры и ограничитель хода рамки, и он был также изготовлен.

After, the protection of camera and the frame movement limiter was added.

Платка с моторчиками Вид сбоку Поворот

В результате, глаз был собран и протестирован

Finally the eye was assembled and tested.

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

The second step was to make a head. The main idea were to make it human-like and to have enough of space for electronics to put inside. EPP was used to make first prototype, which is on the video below.

Белый череп на видео как раз сделан из пенополистирола, это просто модель.

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

Then, I did the frame from polycarbonate. Later I plan to make an outer part of skull and mount it on this frame.

Тут я тестировал механику, запустил случайные движения на целый день. Ничего таки не сломалось :)

I tested the mechanics for the whole day - nothing had broken :)


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

Then, I designed the neck, torso and everything below torso. As soon as I decided to build numanoid robot I tried to keep human body proportions.

Вид спереди Вид сбоку

Внутренняя часть торса напечатана из PLA, а внешняя из ABS но он мне не нравится, придется с ним что-то делать, очень уж ABS хрупкий. Может быть заменю его потом на PLA.

Backbode is printed in PLA, and exterior of torso is done in ABS. ABS part is too cracky, probably I remake it in the future.

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

Of cause, I designed the robot with legs but it's too hard to program and test biped robot in limited space in my appartment. That's why I decided to simplify my task and to make a wheeled platform instead of legs.

Телега была выбрана по нескольким причинам:

The wheeled base was chosen by some of reasons.

+It's a support for all robot during all development time by itself. +The floor in appartment is flat, no doorsteps, one level, and wheeled base will spend less energy for locomotion +The box is a storage for batteries.

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

One more time, the wheeled base is one variant of lower robot's part, which might be replaced to legs in the future. But for now I would like to focus on vision and arms.

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

The base is made of standard parts which could be bought in any hardware store. Wheels are of 10" size. Everything is mounted on one plane. All plastic parts are designed and printed myself.

Заготовки Кронштейн

Кронштейн2

Телега

Дети, естественно, не могли пройти мимо телеги и катались на ней несколько дней.

Kids were running on it couple of days.

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

The torque from motor to wheel is transmitted by timing belt.

Шкив

Шкив надевается на колесо и зажимается хомутом. Держится за счет трения и никаких дополнительных изменений в колесах я не делал.

Pulley is mounted on the wheel with the ring clamp.

Шкив на колесе

Моторчик с редуктором выдает максимум 150 rpm, закрепляется в таком вот кронштейне

Motors with reductor give 150 rpm, mounted in the holder.

Кронштейн для мотора

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

Reductor exit shaft is offcentered and this permits to tighten the belt by turning the motor in the mount.

Все распечатано в нужном количестве

Кронштейны для мотора Шкивы

Все смонтировано и сделан предварительный тест от аккумулятора

The test of the base.

Максимальная скорость телеги получилась порядка 1 метр в секунду. С шумом моторов надо что-то делать, но не сейчас.

Max speed of the base is 1m/s. It's a bit noisy, but I'll fix it later.


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

Lower part has some reductors, and I'd built a harmonic-like one.

Сначала, я изготовил пробные шестеренки, чтобы посмотреть, как оно работает.

First try.

Циклодрайв

Распечатал несколько штук с различным понижающим числом. Для работы выбрал редуктор с понижением 1:84.

Редуктор получился простой, до безобразия

Cycloidal drive is very simple inside.

Циклодрайв2 Циклодрайв3

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

The only thing I bother about is the strength of plastic thees. Anyway I can make them in metal.


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

While I was building the wheeled base I got some idea how to make the palm of robot. I spent about 3 weeks to get this:

Рука Рука2

Убедившись, что рука шевелится нормально, я отложил ее в сторону и вернулся обратно к телеге.

After I made sure everything works fine - I put aside the hand and came back to the base.


За последние несолько недель практически закончил телегу.

For the latest couple of weeks the based wheel mechanics is almost finished

База База2

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

Used batteries from UPS, small capacity, but good enough for tests

Аккумуляторы

[2015.12.16]

Спаял контроллер для управления моторами, проверил как работает от компьютера.

Test of controller to drive wheels.

[2015.12.25]

На базе будет стоять 9 DOF сенсор BMX-055. Это акселерометр, гироскоп и магнетометр.

Предварительная сборка показала, что он работает отлично, считывается с частотой 20 и даже 50 герц. В примере кода который я нашел на просторах интернета - делается калибровка магнетометра. Я скорее всего не буду использовать магнетометр в конечном варианте, или придется как-то подправить кватернинон.

There will be 9DOF sensor BMX-055 on the wheeled base. This sensor works very good with arduino example I had found in the internet. Most probably I'll use gyro and accelerometer only from this sensor.

[2016.01.22]

Выпилил платку для гироскопа, перепаял его, упростил схему. Питается 9 DOF сенсор от USB порта, 3.3 вольта я получаю просто через 2 диода. И сглаживаю пульсации конденсатором.

Надо заметить, что когда я использовал 2 DC-DC конвертора, на 5.0 и 3.3 вольта, то из-за пульсаций I2C шина работала со сбоями и сенсор подвисал через случайные интервалы времени. А с диодами работает как часы. Ни единого сбоя за двое суток.

Gyro_top Gyro_bot

Конечно, еше придется повозится с кодом и калибровками, но в целом, девайс получился рабочий. Следующий шаг - установить это счастье на платформу.

- End of article -