Pull to refresh
4
0

User

Send message

Построение хексапода для тех кто не хочет мастерить, а хочет программировать

Reading time4 min
Views15K
image

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

Краткое предисловие:

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

Другой неприятной стороной было то что в качестве мозгов в основном использовались — если не ардуино, то STM32. Мне же хотелось занимтаься программированием. Научить робота бегать за мячиком, обходить препятсвия, передвигаться по открытомй пространству. То есть то, для чего надо больше чем ардуина. Упирались все желания в деньги, которых мало, и руки, которые кривые. Постараюсь поведать как оба этих препятствия я обошел.
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments50

Практическое использование ROS на Raspberry Pi — часть 2

Reading time8 min
Views15K
Добрый день, уважаемые читатели Хабра! Это вторая статья из цикла статей о практическом использовании ROS на Raspberry Pi. В первой статье цикла я описал установку необходимых компонент ROS и настройку рабочего окружения для работы.
Во второй части цикла мы приступим к практическому использованию возможностей ROS на платформе Raspberry Pi. Конкретно в данной статье я собираюсь рассказать об использовании камеры Raspberry Pi Camera Board на Raspberry Pi в связке с ROS для решения задач компьютерного зрения. Кто заинтересован, прошу под кат.
Читать дальше →
Total votes 7: ↑7 and ↓0+7
Comments4

Windows 10 на Raspberry Pi 2, первые впечатления

Reading time3 min
Views236K
29 апреля мне пришло письмо от Микрософт о том, что наконец-то вышла первая бета адаптация Windows 10 для raspberry pi2. События этого ждали, вероятно, многие, в том числе и я. Как это будет выглядеть? Как будет работать? Быстро — не быстро. Да в целом, это чертовски интригующе!


Читать дальше →
Total votes 77: ↑66 and ↓11+55
Comments120

Вы неправильно пишете животных

Reading time5 min
Views358K
Животные – это платформы с очень ограниченной памятью, вычислительными способностями и возможностями модификаций. Разработчикам энимал-сцены приходится выдавать практически гениальные низкоуровневые алгоритмы. Правда, большое количество хардкода вызывает характерные проблемы с отсутствием проверки в экзотических условиях. Та же фильтрация входных данных делается очень и очень криво.


Уязвимость рекурсивных алгоритмов навигации муравья: спираль смерти

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

Но пойдём далее. Я не знаю, кто разрабатывал архитектуру ящериц, но они бегают в одном процессе, а дышат в другом. При этом платформа не поддерживает многозадачность, поэтому костыль с максимальной длиной бега в 4-6 секунд просто эпичен.
Читать дальше →
Total votes 442: ↑438 and ↓4+434
Comments351

Visual Studio Extensibility. Часть первая: MSBuild

Reading time19 min
Views28K
Привет Хабр, в этих статьях я попытаюсь осветить тему расширений Microsoft Visual Studio(а попутно ещё и MSBuild), т.к. эта сфера является крайне плохо документированной и вообще покрыта пеленой какой-то загадочности.


Читать дальше →
Total votes 30: ↑30 and ↓0+30
Comments24

Лекции Технопарка. 1 семестр. Алгоритмы и структуры данных

Reading time2 min
Views148K
Очередной пост в рамках нашего цикла лекций Технопарка. В этот раз мы предлагаем вашему вниманию курс, посвящённый алгоритмам и структурам данных. Автор курса — Степан Мацкевич, сотрудник компании ABBYY.

Лекция 1. Основы


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


Читать дальше →
Total votes 52: ↑48 and ↓4+44
Comments14

Удаленная отладка в Linux при помощи связки GDB-gdbserver

Reading time9 min
Views54K
Как всем нам известно, процесс отладки это такая вещь, важность которой трудно переоценить. Причем, понимая важность таких методов как дебажное моргание светодиодами и вывод дебажных сообщений в порт, я остаюсь при мнении, что эффективнее пошаговой отладки пока ничего не придумано. Однако, задача пошаговой отладки становится не такой тривиальной в случае программирования под Linux на встраиваемых системах (таких как rasbery pi, virt2real или промышленные процессорные модули).

Данную задачу в Linux призвана решать стандартная связка программ GDB и gdbserver. Идея в том, что пишешь на компе программу (host в терминологии GDB), компилируешь её и заливаешь на целевое устройство (target). Далее запускаешь на целевом устройстве (target) отлаживаемый файл и gdbserver, а на хосте GDB и вперед.
Читать дальше →
Total votes 22: ↑21 and ↓1+20
Comments12

Выразительный JavaScript: Проект: программа Paint

Reading time16 min
Views41K

Содержание




Я смотрю на многообразие цветов. Я смотрю на пустой холст. Затем я пытаюсь нанести цвета как слова, из которых возникают поэмы, как ноты, из которых возникает музыка.

Жоан Миро


Материал предыдущих глав даёт вам всё необходимое для создания простого веб-приложения. Именно этим мы и займёмся.

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


Простая программа рисования
Читать дальше →
Total votes 42: ↑39 and ↓3+36
Comments3

Erlang для самых маленьких. Глава 4: Система типов

Reading time4 min
Views13K
imageХороший понедельник, Хабр! Мы продолжаем изучение Erlang для самых маленьких.

В прошлой главе мы разобрались с синтаксисом функций. В этой главе мы познакомимся с системой типов языка.


Узнать больше...
Total votes 23: ↑21 and ↓2+19
Comments12

Программируем квадрокоптер на Arduino (часть 1)

Reading time18 min
Views357K


Здравствуйте, хаброжители!
В этой серии статей мы с вами приоткроем крышку квадрокоптера чуть больше, чем этого требует хобби, а также напишем, настроим и запустим в воздух собственную программу для полетного контроллера, которым будет являться обычная плата Arduino Mega 2560.

У нас впереди:
  1. Базовые понятия (для начинающих коптероводов).
  2. PID-регуляторы с интерактивной web-демонстрацией работы на виртуальном квадрокоптере.
  3. Собственно программа для Arduino и настроечная программа на Qt.
  4. Опасные тесты квадрокоптера на веревке. Первые полёты.
  5. Крушение и потеря в поле. Автоматический поиск с воздуха средствами Qt и OpenCV.
  6. Окончательные успешные тесты. Подведение итогов. Куда дальше?

Материал объемный, но постараюсь уложиться в 2-3 статьи.
Сегодня нас ожидает: спойлер с видео, как наш квадрокоптер полетел; базовые понятия; PID-регуляторы и практика подбора их коэффициентов.
Читать дальше →
Total votes 107: ↑106 and ↓1+105
Comments96

Lock-free структуры данных. Очередной трактат

Reading time16 min
Views51K

Как вы, наверное, догадались, эта статья посвящена lock-free очередям.

Очереди бывают разные. Они могут различаться по числу писателей (producer) и читателей (consumer) – single/multi producer — single/multi consumer, 4 варианта, — они могут быть ограниченными (bounded, на основе предраспределенного буфера) и неограниченными, на основе списка (unbounded), с поддержкой приоритетов или без, lock-free, wait-free или lock-based, со строгим соблюдением FIFO (fair) и не очень (unfair) и т.д. Подробно типы очередей описаны в этой и этой статьях Дмитрия Вьюкова. Чем более специализированы требования к очереди, тем, как правило, более эффективным оказывается её алгоритм. В данной статье я рассмотрю самый общий вариант очередей — multi-producer/multi-consumer unbounded concurrent queue без поддержки приоритетов.
Читать дальше →
Total votes 74: ↑71 and ↓3+68
Comments8

От проблемы к требованиям. Теория принятия решений в разработке ПО

Reading time9 min
Views15K

Введение


Некоторое время назад обратил свое внимание на артефакт Концепция продукта (product vision) методологии разработки программного обеcпечения RUP (Rational Unified Process) и обнаружил, что отправной точкой разработки программного продукта является выявление проблемы, на решение которой нацелен продукт.

Аналогичный подход существует и в отечественной практике – так в ГОСТ 34.601-90 говорится, что на стадии Формирование требований к АС (автоматизированной системе) производится «выявление проблем, решение которых возможно средствами автоматизации».

В настоящей статье хочу поделиться с читателями своими выводами касательно природы проблемы, ее важности и отношении к разработке программного продукта.
Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments19

Библиотека для встраивания электронной подписи в приложения С++

Reading time16 min
Views14K


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

Некоторое время назад мы поддержали Рутокен ЭЦП в openssl, затем выпустили кроссплатформенный плагин для браузера, а теперь сделали высокоуровневую криптобиблиотеку для встраивания в С++ приложения.

Концептуально данные решения выполнены идентично: используется аппаратная реализация российских криптоалгоритмов на чипе Рутокен ЭЦП, обеспечивается поддержка цифровых сертификатов X.509, запросов на сертификаты PKCS#10, подписанных и зашифрованных сообщений CMS.

Новая библиотека пригодится тем, кто пишет «толстые клиенты», десктопные приложения, свои браузерные плагины и т.п.

Поддерживаемые устройства:
  • USB-токен Рутокен ЭЦП
  • Смарт-карта Рутокен ЭЦП
  • Bluetooth-токен Рутокен ЭЦП
  • Trustscreen-устройство Рутокен PINPad
  • USB-токен Рутокен WEB (HID)


Основные сценарии применения библиотеки с примерами кода под катом.
Читать дальше →
Total votes 14: ↑11 and ↓3+8
Comments4

Еще один домашний стереолитографический принтер

Reading time6 min
Views17K


В сентябре прошлого года закончился на кикстартере сбор средств на создание еще одного принтера – LittleRP. По сравнению с аналогами его выгодно отличала цена (без учета проектора принтер мог вам обойтись в 500$). Так как необходимые средства были собраны буквально за пару часов, я могу сказать, что мне посчастливилось попасть в первую группу бэкеров, и вот на прошлой неделе я его получил. Видя, что тема актуальна, решил поделиться с общественностью впечатлением от приобретения.
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments11

Information

Rating
Does not participate
Registered
Activity