Pull to refresh
5
0
Киселев Станислав @ristle

Инженер-Программист

Send message

Блеск и нищета WebAssembly

Level of difficultyHard
Reading time20 min
Views12K

Всем привет! Сейчас за окном осенние деньки 2024 года. Вещает Пройдаков Евгений. Сейчас я руковожу группой разработки среды исполнения языка eXtraction and Processing в R&D департаменте Positive Technologies.

Доменно специфичный язык eXtraction and Processing является важной частью движка поведенческого анализа, используемого в таких продуктах Positive Technologies, как MaxPatrol SIEM и PT ISIM. Сегодня хотелось представить вашему вниманию выжимку нашего R&D процесса в экспериментах с WebAssembly. Узнаем, что такое WebAssembly. Поймём, как его можно встроить в программный продукт. Коснёмся инструментов разработки и сред исполнения WebAssembly. А также в рамках одной статьи пройдём путь от постановки задачи до результатов по разработке среды исполнения для доменно специфичного языка программирования. Кроме того, мы разберем некоторые проблемы, которые могут появиться у вас при попытке собрать и отладить большой С++ проект под WebAssembly. Материал может быть особенно полезен тем, кто хочет использовать WebAssembly за пределами веб‑браузера.

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

На старт, внимание, поехали!

Manipulation Process Efficiency (MPE) Benchmark

Reading time14 min
Views1.3K

Бенчмарк для технологии манипуляции


Бенчмарк предназначен для оценки эффективности применения робототехнического комплекса (РТК) в задачах манипуляции предметами по сравнению с использованием ручного человеческого труда.

Бенчмарк содержит следующий набор метрик(коэффициентов):

ωaKa — взвешенный коэффициент автономности,
ωlKl — взвешенный коэффициент времени обучения выполнению задачи,
ωwKw — взвешенный коэффициент грузоподъемности,
ωcKc — взвешенный коэффициент коллизионности рабочей сцены,
ωdKd — взвешенный коэффициент тяжелых условий труда,
ωpKp — взвешенный коэффициент брака,
ωoKo — взвешенный коэффициент среднедневной нормы выполнения атомарной операции,
ωeKe — взвешенный коэффициент энтропии.

Обобщенная формула вычисления бенчмарка:
image
Где ωi Ki – взвешенный коэффициент из набора метрик.

Каждая метрика рассматривает характеристику применения робототехнического комплекса по отношению к аналогичной характеристике в случае применения ручного труда и является безразмерной. Значение каждой метрики интерпретируется по отношению к человеку:

  • если значение меньше единицы, то применение РТК для измеряемой задачи обладает меньшей эффективностью по сравнению с использованием человеческого труда.
  • если больше единицы, то применение РТК более эффективно по отношению к использованию ручного труда.
Читать дальше →

Robot Operating System Meetup — 2020/2 пройдет онлайн 5 декабря 2020 года

Reading time4 min
Views1.7K
Российское ROS-сообщество и Лаборатория робототехники Сбер приглашают на очередной, четвертый MeetUp по Robot Operating System — самому распространённому в мире фреймворку для роботов!



В конце статьи видео записи докладов с предыдущих MeetUp'ов.

Доклады второго ROS Meetup на темы: Gazebo и инструменты для роботов

Reading time5 min
Views2.7K

18 апреля пройдет очередной онлайн ROS Meetup, и мы продолжаем публиковать записи докладов с прошлого ROS Meetup, который прошел 30 ноября 2019 года в Москве и собрал больше 200 ROS-любителей, поделившимися своим опытом и знаниями.

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

Доклады второго ROS Meetup на тему учебных роботов

Reading time4 min
Views2.9K


30 ноября 2019 года в Москве прошёл 2-й ROS Russian MeetUp, организатор — Лаборатория робототехники Сбербанка, — на котором большее 200 ROS-любителей поделились своим опытом и знаниями.

Мы продолжаем публиковать наиболее интересные доклады: в этом материале вы можете познакомиться с подборкой выступлений про учебных роботов. Эта область деятельности существует с самого начала появления робототехники как инженерного направления, и сейчас мы наблюдаем его качественное развитие силами российского ROS-сообщества.

Началась новая эра в робототехнике

Reading time4 min
Views12K


Команда CoSTAR с четвероногим роботом SPOT mini выиграла этап Urban Circuit соревнования DARPA Subterranean Challenge!

Соревнования роботов эволюционируют


Управление перспективных исследовательских проектов Министерства обороны США (Defense Advanced Research Projects Agency, DARPA) — агентство, отвечающее за разработку новых технологий для использования в интересах вооружённых сил. Согласно цитате с сайта DARPA, «для обеспечения сохранения технологического превосходства вооружённых сил США, предотвращения внезапного для США появления новых технических средств вооружённой борьбы, поддержки прорывных исследований, преодоления разрыва между фундаментальными исследованиями и их применением в военной сфере, агентство проводит целый ряд мероприятий, в том числе соревновательных среди робототехнических компаний». DARPA Subterranean Challenge (подземные соревнования) — одно из таких мероприятий.

C++ и копирование перекрывающихся областей памяти

Reading time3 min
Views25K
Программируя на Си многие сталкивались с такими функциями как memcpy() и memmove(), по сути, функции делают одно и тоже, но вторая корректно отрабатывает ситуацию, когда области памяти перекрываются (на что появляются дополнительные накладные расходы).

В мире С++ никто не запрещает пользоваться этими функциями (часто эти функции используют различные механизмы оптимизации и могут статься быстрее своих собратьев из мира C++), но есть и более родное средство, работающее через итераторы: std::copy. Это средство применимо не только к POD типам, а к любым сущностям, поддерживающим итераторы. О деталях реализации в стандарте ничего не сказано, но можно предположить, что разработчики библиотеки не настолько глупы, что бы не использовать, оптимизированные memcpy()/memmove() когда это возможно.
Читать дальше →

Особенности профилирования программ на C++

Reading time13 min
Views26K

Временами бывает нужно отпрофилировать производительность программы или потребление памяти в программе на C++. К сожалению, зачастую это сделать не так просто как может показаться.

Здесь будут рассмотрены особенности профилирования программ с использованием инструментов valgrind и google perftools. Материал получился не очень структурированным, это скорее попытка собрать базу знаний «для личных целей», чтобы в будущем не приходилось судорожно вспоминать, «а почему не работает то» или «а как сделать это». Скорее всего, здесь будут затронуты далеко не все неочевидные случаи, если вам есть что добавить, пишите пожалуйста в комментарии.

Все примеры будут запускаться в системе linux.
Читать дальше →

Собираем C++ с bazel

Reading time7 min
Views22K

Введение и мотивация


В последнее время на Хабре появляются посты про то, что cmake и c++ — друзья, приводятся примеры, как собирать header-only библиотеки и не только, но нет обзора хоть сколько-нибудь новых систем сборки — bazel, buck, gn и других. Если вы, как и я, пишете на C++ в 2к20, то предлагаю вам познакомиться с bazel как системой сборки c++ проекта.

Оставим вопросы, чем плохи cmake и другие существующие системы, и сконцентрируемся на том, что может сам bazel. Решать, что лучше конкретно для вас, я оставляю конкретно вам.

Начнем с определения и мотивации. Bazel это мультиязычная система сборки от гугла, которая умеет собирать c++ проекты. Почему мы вообще должны смотреть на еще одну систему сборки? Во первых, потому что ей уже собираются некоторые большие проекты, например Tensorflow, Kubernetes и Gtest, и соответственно чтобы интегрироваться с ними уже нужно уметь пользоваться bazel. Во вторых, кроме гугла bazel еще использует spaceX, nvidia и другие компании судя по их выступлениям на bazelcon. И наконец, bazel это довольно популярный open-source проект на github, так что он определенно стоит того чтобы на него взглянуть и попробовать.
Читать дальше →

Поднятие chroot-«виртуалки» с ubuntu для сборки пакетов

Reading time3 min
Views18K
Приветствую.

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

Все действия выполнялись на Arch linux, но действия по настройке chroot-виртуалок и schroot должны быть очень схожими.

Всё, что описано далее, разумеется, разбросано по всей сети. Но проб и ошибок по пути много.
Прошу под кат

Ubuntu — не лучший настольный Linux

Reading time3 min
Views192K
Захотев перейти на Linux дома или на работе, люди обычно ставят Ubuntu, Mint, Fedora, порой даже Debian. И очень зря не пробуют Manjaro Linux — на мой взгляд, этот дистрибутив удобнее Убунты (которая уже де-факто — Default Linux), и даже удобнее Минта.

Manjaro — производная от Arch Linux (так же как Ubuntu — производная от Debian), пилится европейской командой Manjaro Team. У Манжары почти такая же структура системы, как у Арча, но с некоторыми особенностями, которые делают его на 146% юзерфрендли.
Читать дальше →

Локализация по Aruco маркерам

Reading time14 min
Views17K
В прошлом посте мы рассказали, как проехать из точки А в точку Б, не задев при этом ничего. Но, чтобы что-то объехать, нужно понять, где находимся мы сами, и где находятся динамические препятствия (наши противники и не только).

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

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


Читать дальше →

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity