Рубрика «робототехника» - 158

Во время проведения учений в тихоокеанском регионе RIMPAC, которые проходят с 26 июня по 1 августа, на Гавайях прошли новые испытания робота поддержки LS3 — Legged Squad Support Systems. А на ютубе появились ролики с записью этих испытаний.

Читать полностью »

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

Дисклаймер: некоторые моменты, описанные в этом материале, могут многим показаться примитивными, однако, прочитав несколько статей на хабре о поюзе DJI'ных устройств, я сделал вывод, что ликбез не помешает. Все выводы сделаны лично мной и основаны на личном опыте использования дронов от DJI. Советы и замечания будут выделяться по ходу повествования, и для наглядности выделяться подчеркиванием. Интересно? Тогда прошу под кат. Читать полностью »

Агентство DARPA опубликовало видео результатов испытаний самонаводящихся пуль калибра .50 (12,7х99 мм), которые позволят в несколько раз увеличить прицельную дальность стрельбы из снайперского оружия. Пули разработаны в рамках программы Extreme Accuracy Tasked Ordnance (EXACTO) совместно с компаниями Lockheed Martin и Teledyne. На видео показано, как пуля на конечном участке полёта отклоняется от баллистической траектории и маневрирует в сторону цели.


Читать полностью »

Предисловие или зачем извращаться?

Здравствуй! Я сидел вечером 11 июня, смотрел фильм. Неожиданно для себя я обнаружил, что мне написала незнакомая мне ранее женщина с предложением сделать робота для их нового квеста. Суть заключается в том, что нужно разгадывать головоломки, исследовать тайники, правильно применять подсказки, использовать доступные вещи и в итоге добывать ключи и открывать двери… От меня требовалось сделать робота, управляемого с компьютера с помощью отдельной программы. У мебя были сомнения по поводу 2 вещей: успею ли я и как именно сделать беспроводную передачу данных (беспроводной передачей данных я занимался до этого только на NXT)? Взвесив все за и против я согласился. После этого я стал думать над передачей данных. Поскольку требовалось сделать робота быстро, то вспоминать и доосваевать, например, дельфи не было времени, поэтому возникла идея сделать модуль который будет заниматься отправкой команд. От компьютера требуется просто посылать данные в СОМ-порт. Этот способ странный, но наиболее быстрый. Его я и хочу описать здесь. Так же я приложу 3 программы которые помогут сделать радиоуправляемую машинку.

Сборка передатчика и его программа.

Я сделал модуль для компьютера из FTDI Basic Breakout 5/3.3V от DFrobot, довольно распространённого микроконтролера ATMEGA 328P-PU с загрузчиком Arduino и радиомодуля на основе микросхемы nRF24L01. По-сути это просто Arduino Uno с радиомодулем. Что есть, то есть. У радиомодуля есть особенность, которую я не сразу заметил: входное напряжение должно быть в диапазоне от 3 до 3.6 вольт (хотя подача на него 5 вольт его не убьёт, но работать не будет), верхняя граница логической единицы составляет 5В. Это означает то, что для подключения радиомодуля к меге не нужен преобразователь уровней между 3.3В и 5В, а вот стабилизатор на 3.3В установить нужно. У FTDI есть встроенный стабилизатор, от него я и подпитал радиомодуль.

Так выглядит сам модуль (внутри и в сборке) :
Простое удалённое управление с компьютера роботом

Программа состоит из инициализации, стартового сообщения и обработки команд из программы управления. Так было в моём случае. Основные команды библиотеки Mirf:

#include <SPI.h>
#include <Mirf.h>
#include <MirfHardwareSpiDriver.h>
#include <MirfSpiDriver.h>
#include <nRF24L01.h>
Эти библиотеки нужны для работы радиомодуля

Mirf.csnPin = 4 — задаёт номер пина, отвечающего за «разрешение общаться» радиомодуля и МК
Mirf.cePin = 6 — задаёт номер пина, отвечающего за режим работы радиомодуля (приёмник/передатчик)
Mirf.spi = &MirfHardwareSpi — настраивает линию SPI
Mirf.init() — инициализирует радиомодуль
Mirf.payload = 1 — размер в байтах одного сообщения (поумолчанию 16, максимум 32)
Mirf.channel = 19 — задаёт канал (0 — 127, по умолчанию 0)
Mirf.config() — задаёт параметры передачи

Mirf.setTADDR((byte *)«serv1») — переводит радиомодуль в режим передатчика
Mirf.setRADDR((byte *)«serv1») — переводит радиомодуль в режим приёмника

Mirf.send(data) — отправляет массив типа byte
Mirf.dataReady() — сообщает об окончании обработки принятых данных
Mirf.getData(data) — записать принятые данные в массив data

Mirf.setTADDR((byte *)«serv1») — переводит радиомодуль в режим передатчика
Mirf.setRADDR((byte *)«serv1») — переводит радиомодуль в режим приёмника

Mirf.send(data) — отправляет массив типа byte
Mirf.dataReady() — сообщает об окончании обработки принятых данных
Mirf.getData(data) — записать принятые данные в массив data

Прилагаю код программы передатчика.

Программа передатчика

#include <SPI.h>
#include <Mirf.h>
#include <MirfHardwareSpiDriver.h>
#include <MirfSpiDriver.h>
#include <nRF24L01.h>

char active;
byte data[1];

void setup()
{
Serial.begin(19200);

Mirf.csnPin = 4;
Mirf.cePin = 6;
Mirf.spi = &MirfHardwareSpi;
Mirf.init();
Mirf.payload = 1;
Mirf.channel = 19;
Mirf.config();

Mirf.setTADDR((byte *)«serv1»);

//сигнальное сообщение о начале работы
data[0]=7;
Mirf.send(data);
delay(200);
}

void loop()
{
if (Serial.available()) //Если данные готовы к считыванию
{
active=Serial.read(); // Запись данных в переменную
}

if (active=='2')
{
data[0]=2;
}

if (active=='3')
{
data[0]=3;
}

if (active=='4')
{
data[0]=4;
}

if (active=='5')
{
data[0]=5;
}

if (active=='6')
{
data[0]=6;
}

Mirf.send(data); //Отсылаем данные
while(Mirf.isSending()); // Ждём пока данные отсылаются
}

Программа управления.

Есть одна интересная штука — Processing. Синтаксис такой же как в Arduino, только вместо void loop() там расположился void draw(). Но она становилась ещё более интересной в моей ситуации с библиотекой processing Serial, которая позволяет работать с сериал-портом. Прочитав уроки на сайте Spurkfun`а, я поигрался с миганием светодиода на подключенной к компьютеру ардуинке по клику мышки. После этого я написал программу управления роботом с клавиатуры. Прилагаю код управления с помощью стрелок. В нём, в принципе, ничего необычного нет.

Программа управления машинкой

import processing.serial.*;
import cc.arduino.*;

Serial myPort;
PFont f=createFont(«LetterGothicStd-32.vlw», 24);

void setup()
{
size(360, 160);
stroke(255);
background(0);
textFont(f);

noCursor();

String portName = «XXXX»; // Сюда нужно написать имя вашего порта
myPort = new Serial(this, portName, 19200);
}

void draw() {
if (keyPressed == false)
{
clear();
myPort.write('6');
println(«6»);
}
}

void keyPressed()
{
// 10 — enter
// 32 — probel
// 37/38/39/40 — keys
clear();

fill(255);
textAlign(CENTER);
//text(keyCode, 180, 80);

switch(keyCode)
{
case 37:
text(«Edem vlevo», 180, 80);
myPort.write('1');
break;

case 38:
text(«Edem pryamo», 180, 80);
myPort.write('2');
break;

case 39:
text(«Edem vpravo», 180, 80);
myPort.write('3');
break;

case 40:
text(«Edem nazad», 180, 80);
myPort.write('4');
break;

default:
text(«Takoy kommandi net», 180, 80);
myPort.write('6');
break;
}
}

Программа приёмника.

Инициализация этой программы отличается от инициализации программы передатчика буквально одной строчкой. Ключевая команда в бесконечном цикле Mirf.getData(data). Дальше полученная команда сравнивается с числами, которым соответствуют какие-либо действия робота. Ну а дальше робот действует точно по командам. Прилагаю код программы приёмника машинки.

Программ машинки

#include <SPI.h>
#include <Mirf.h>
#include <MirfHardwareSpiDriver.h>
#include <MirfSpiDriver.h>
#include <nRF24L01.h>

void setup()
{
Serial.begin(9600);

pinMode(13, OUTPUT); //LED

Mirf.csnPin = 10;
Mirf.cePin = 9;
Mirf.spi = &MirfHardwareSpi;
Mirf.init();
Mirf.payload = 1;
Mirf.channel = 19;
Mirf.config();
Mirf.setRADDR((byte *)«serv1»);
}

void loop()
{
byte data[1];

if(!Mirf.isSending() && Mirf.dataReady())
{
Mirf.getData(data);
Serial.println(data[0]);
}

switch (data[0])
{
case 1:
motors(-100, 100); // поворачиваем влево
break;

case 2:
motors(100, 100); // едем прямо
break;

case 3:
motors(100, -100); // поворачиваем вправо
break;

case 4:
motors(-100, -100); // едем назад
break;

default:
motors(0, 0); // стоим
break;
}

delay(50);
}

Заключение.

Что из этого всего вышло:
www.youtube.com/watch?v=K5ekFyph82U

Этого робота я сделал для «Клаустрофобии». Они проводят квесты в реальности в разных городах, и как раз для одного из таких квестов организаторам понадобился радиоуправляемый робот-сапер. Мне понравилось. Это, конечно, ущербно, т.к. на фоне управления с помощью встроенных в ноутбук средств связи, но зато своё, сделанное весьма быстро и без особых проблем. Надеюсь эта статья поможет сделать нечто подобное, а, может, даже сложнее. Тут уж кому что захочется.

Читать полностью »

Команда энтузиастов не смогла привести «замороженный» на 17 лет спутник ISEE 3 в рабочее состояние

И еще немного космоса на сегодня. Новость достаточно важная, хотя и с несколько негативным смыслом, к сожалению.

На Хабре несколько раз писали о спутнике ISEE-3, ранее выполнявшим миссию NASA, причем успешно, и затем забытым на 17 лет. Этот спутник оказался просто ненужен NASA, после завершения миссии, и его просто «заморозили». Тем не менее, все инструменты (13 научных систем) работают так же хорошо, как и в 1999 году, когда спутник был «заморожен».

Команда энтузиастов собрала 150 тысяч долларов на восстановление спутника, и смогла установить с ним связь. Как уже писали на Хабре, «29 мая удалось восстановить связь со станцией, а 2 июля, после нескольких попыток, включить двигатели. Этим включением был изменен период обращения станции вокруг своей оси. На момент восстановления связи, аппарат вращался со скоростью 19.16 об/мин вместо штатных 19.75 об/мин. Следующий шаг — коррекция траектории. Она запланирована на 8 июля».

И вот как раз выполнить коррекцию траектории не удалось.

Читать полностью »

Очередное достижение Curiosity: выход из области посадочного эллипса

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

Этот эллипс — условная зона, 20*25км. Именно эту область выбрали в NASA для посадки марсохода 5 августя 2012 года. «Посадочный эллипс» хорош тем, что в этой зоне практически нет критичных для марсохода особенностей ландшафта, которые могли бы привести к аварии устройства при не очень точном приземлении.

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

Читать полностью »

Российские протезы пальцев созданные с помощью 3D печати

В России стоит очень острая проблема — отсутствие функциональных протезов пальцев рук. Существующие доступные решения нефункциональны и носят сугубо косметический характер. Но почти год назад команда компании Can-Touch.ru (специалисты в области промышленной 3D-печати) вдохновилась идеей создания функционального детского протеза. К проекту вскоре присоединились инженеры компании W.E.A.S. Robotics (специалисты в области робототехники), и началась серьезная работа.

Под катом история о том, как разрабатывается этот протез. Приводим текст, написанный от первого лица непосредственно членами команды проекта.Читать полностью »

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

Компания Hyundai недавно выпустила рекламный ролик, демонстрирующий возможности седанов Genesis. Их автопилот практически полностью автоматизирует движение по шоссе. В отличие от прототипов на 100% автономных автомобилей, это серийные машины, которые поступят в продажу в 2015 году.


Читать полностью »

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

В данном посте мы рассмотрим, в чем самая большая опасность полета и что с этим можно сделать.

image
Читать полностью »

image

Мы живём в удивительное время, ещё 10 лет назад робототехника была чем-то фантастически недоступным. Сейчас же на базе Ардуино, набора серво-двигателей, лазерной резки и 3д печати можно сделать разнообразные проекты — и это будет вполне доступно по финансам и по навыкам (собрать может школьник).

Примером одного из таких проектов является — Робоголова.

Этот проект был найден среди kickstarter проектов. Плюсом является то, что разработчики выложили все инструкции по сборке в OpenSource.

Для создания потребуется:

  • лазерная резка (фанера)
  • 3д печать (элементы глаз)
  • Ардуино (микроконтроллер)
  • серво-двигатели
  • крепежные элементы

Начнём.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js