На Хабре часто пишут про электротранспорт. И про велосипеды. А ещё про AI. Cloud4Y решил объединить эти три темы, рассказав про «умный» электровелосипед, который всегда онлайн. Речь пойдёт о модели Greyp G6.
Чтобы вам было интереснее, мы разбили статью на две части. Первая посвящена процессу создания устройства, платформе и протоколам связи. Вторая — это технические характеристики, описание начинки и возможностей велосипеда.
Часть первая, бэкенд
Greyp Bikes — хорватский производитель электровелосипедов премиум-класса, принадлежащий местному производителю экзотических суперкаров Rimac. Компания создаёт по-настоящему интересные велосипеды. Чего стоит только предыдущая модель, двухподвес G12S. Это было что-то среднее между электровелосипедом и электромотоциклом, поскольку устройство могло разогнаться до 70 км/ч, обладало мощным мотором и на одном заряде пробегало 120 км.
G6 получился более изящным и внедорожным, но главная его особенность — «подключённость». Greyp Bikes сделали важный шаг в сторону развития IoT, предложив велосипед, который всегда «в сети». Но давайте поговорим сначала о том, как вообще создавался «умный» электровел.
Рождение идеи
К интернету подключается огромное количество самых разных устройств. А чем велосипеды хуже? Так в Greyp Bikes и появилась идея, превратившаяся в G6. В любой момент времени этот велосипед поддерживает соединение с облачным сервером. Мобильный оператор обеспечивает связь, а eSIM зашивается прямо в велосипед. И это открывает массу интересных возможностей как для спортсменов, так и для обычных любителей велопоездок.
Платформа
При создании платформы для инновационного продукта нужно учитывать множество нюансов. Поэтому выбор облачной платформы для размещения и запуска всех сервисов, необходимых современному электровелосипеду, был очень важным вопросом. Компания остановила свой выбор на Amazon Web Services (AWS). Отчасти это было связано с тем, что у Greyp Bikes уже был опыт работы с сервисом. Отчасти — из-за его популярности, широкого распространения среди разработчиков по всему миру и хорошему отношению к Java/JVM (да-да, их активно используют в Greyp Bikes).
В AWS был хороший IoT MQTT-брокер (Cloud4Y писал о протоколах ранее), идеально подходящий для лёгкого обмена данными с велосипедом. Правда, нужно было как-то наладить связь и с приложением для смартфона. Были попытки реализовать это самостоятельно с помощью Websockets, но позднее в компании решили не изобретать велосипед и переключились на платформу Google Firebase, которая широко используется мобильными разработчиками. С начала разработки архитектура системы претерпела множество улучшений и изменений. Примерно так это выглядит сейчас:
Технический стек
Реализация
Компания предусмотрела два способа входа в систему. Каждый из них реализован отдельно, с различными технологиями для своего варианта использования.
От велосипеда на смартфон
Первое, что нужно учитывать при создании точки входа в систему, — какой протокол связи использовать. Как уже было сказано, компания выбрала MQTT из-за его лёгкого «характера». Протокол хорош с точки зрения пропускной способности, отлично работает с потенциально ненадёжными соединениями, позволяет экономить заряд батареи, что особенно важно для электровелосипеда от Greyp.
Используемый брокер MQTT необходим для загрузки всех данных, поступающих от велосипеда. Внутри сети AWS находится Lambda, которая считывает двоичные данные, предоставленные брокером MQTT, анализирует их и доставляет в Apache Kafka для дальнейшей обработки.
Apache Kafka является основой системы. Все данные должны пройти через неё, чтобы достичь конечного пункта назначения. В настоящее время ядро системы имеет несколько агентов. Наиболее важным из них является тот, который собирает данные и передает их в «холодное хранилище» InfluxDB. Другой же передаёт данные в базу данных Firebase Realtime, делая их доступными для приложений смартфона. Именно здесь Apache Kafka действительно нужен — холодное хранилище (InfluxDB) сохраняет все данные, получаемые от велосипеда, и Firebase может получать актуальную информацию (например, метрики в реальном времени — текущая скорость).
Kafka позволяет принимать сообщения с разной скоростью и доставлять их практически сразу в Firebase (для отображения в приложении на смартфоне) и в конечном итоге передавать их в InfluxDB (для анализа данных, статистики, мониторинга).
Использование Kafka также позволяет использовать горизонтальное масштабирование с увеличением нагрузки, а также подключать других агентов, которые могут обрабатывать входящие данные в своём собственном темпе и для своего собственного варианта использования (например, при соревновании между группой велосипедов). То есть решение позволяет велосипедистам конкурировать друг с другом по самым разным характеристикам. Например, максимальная скорость, максимальный прыжок, максимальная производительность и т.д.
Все сервисы (называемые «GVC» — Greyp Vehicle Cloud) в основном реализованы на базе Spring Boot и Java, хотя используются и другие языки. Каждая сборка упакована в образ Docker, размещенный в репозитории ECR, запускается и организуется Amazon ECS. Хотя NoSQL довольно удобен и популярен для ряда случаев, Firebase не всегда может удовлетворить все потребности Greyp, и поэтому компания также используем MySQL (в RDS) для специальных запросов (Firebase использует дерево JSON, которое в некоторых случаях эффективнее) и хранение конкретных данных. Ещё одним используемым хранилищем является Amazon S3, обеспечивающий безопасность собранных данных.
От смартфона на велосипед
Как мы уже говорили, связь со смартфонами налажена через Firebase. Платформа используется для аутентификации пользователей приложения и их кусочка базы данных в режиме реального времени. По факту, Firebase представляет собой комбинацию двух вещей: одна — это база данных для постоянного хранения данных, а другая — для доставки данных в режиме реального времени на смартфоны через подключение к Websocket. Идеальный вариант для этого типа соединения — подача команд на велосипед, когда устройства не находятся близко друг к другу (нет доступного соединения BT/Wi-Fi).
В данном случае Greyp разработали собственный механизм обработки команд, который получает сообщения от смартфона через базу данных в real-time режиме. Этот механизм является частью основных служб приложений (GVC), задача которых — преобразовывать команды смартфона в сообщения MQTT, передаваемые велосипеду через брокера IoT. Когда велосипед получает команду, он обрабатывает её, выполняет соответствующее действие и возвращает ответ в Firebase (смартфон).
Мониторинг
Контроль параметров
Практически каждый бэкэнд-разработчик любит спать по ночам, не проверяя каждые 10 минут серверы. А это значит, что нужно внедрять автоматизированные решения мониторинга и оповещений в системе. Данное правило актуально и для велосипедной экосистемы Greyp. Там тоже есть ценители нормального ночного сна, поэтому компания использует два облачных решения: Amazon CloudWatch и jmxtrans.
CloudWatch — это сервис мониторинга и наблюдения, который собирает данные мониторинга и операционные данные в виде журналов, метрик и событий, помогая получить единое представление приложений, сервисов и ресурсов AWS, работающих на платформе AWS, а также в локальной среде. С помощью CloudWatch удобно обнаруживать аномальное поведение в своих средах, настраивать предупреждения, создавать общие визуальные представления журналов и метрик, выполнять автоматизированные действия, устранять неполадки, а также узнавать полезные сведения, которые помогают поддерживать стабильную работу приложений.
CloudWatch собирает пользовательские метрики и доставляет их на панель мониторинга. Там они объединяются с данными, поступающими от других управляемых Amazon ресурсов. Метрики JVM получает через конечную точку JMX с помощью «соединителя», называемого jmxtrans (также размещенного в виде контейнера Docker внутри ECS).
Часть вторая, характеристики
Так какой в итоге получился электровел? Электрический горный велосипед Greyp G6 оснащен литий-ионным аккумулятором на 36V, 700 Wh, работающим от элементов LG. Вместо того чтобы прятать батарею, как это делают многие производители электровелосипедов, Greyp расположил съемную батарею прямо в центре рамы. G6 оснащен двигателем MPF номинальной мощностью 250 Вт (а ещё есть вариант с 450 Вт).
Greyp G6 – это горный велосипед, оснащенный задней подвеской Rockhox, заправленной близко к верхней трубе и оставляющей достаточно места для съемной батареи между коленями водителя. Рама выполнена в «эндуро» стиле и предлагает 150 мм хода благодаря подвеске. Кабель и тормозные магистрали пропущены внутри рамы. За счёт этого обеспечивается эстетичный внешний вид и снижается риск зацепиться за ветви.
Каркас из 100% углеродного волокна был специально разработан в Greyp с использованием опыта, приобретенного во время создания электрического гиперкара Concept One.
Комплект электроники на Greyp G6 управляется центральным интеллектуальным модулем (CIM) на штоке. Он включает в себя цветной дисплей, WiFi, Bluetooth, подключение 4G, гироскоп, разъем USB C, фронтальную камеру, а также интерфейс с задней камерой под седлом. Кстати, заднюю камеру окружают 4 LED-светодиода. Широкоугольные камеры (1080p 30 fps) в первую очередь предназначены для съёмки видео во время поездок.
Особое внимание в компании уделяют решению eSTEM.
«Greyp eSTEM — это центральный интеллектуальный модуль для велосипеда, который управляет двумя камерами (передней и задней), контролирует частоту сердечных сокращений водителя, имеет встроенный гироскоп, систему навигации и eSIM, что позволяет подключать его в любое время. Система e-bike использует смартфон в качестве пользовательского интерфейса, а мобильное приложение создает уникальный пользовательский интерфейс благодаря различным новым опциям, таким как удаленный выключатель велосипеда, получение фотографий, отправка текста на велосипед и ограничение мощности».
На руле велосипеда есть специальная кнопка «Поделиться». Если во время поездки произойдёт что-то интересное или захватывающее, можно нажать на кнопку и автоматически сохранить последние 15-30 секунд видео, загрузив его в учётную запись в социальных сетях велосипедиста. Также на видео могут быть наложены дополнительные данные. Например, потребление энергии велосипедом, скорость, время поездки и т.д.
С телефоном, установленным на велосипеде в режиме приборной панели, Greyp G6 может предоставить огромное количество информации, а не только показать текущую скорость или уровень заряда батареи. Так, велосипедист может выбрать любую точку на карте (например, высокий холм), и компьютер вычислит, хватит ли заряда батареи на то, чтобы доехать до вершины. Или рассчитает точку невозврата, если вдруг вам не хочется крутить педали по дороге обратно. Хотя педали вполне можно и покрутить. Производитель уверяет, что велосипед не тяжёлый (хотя это как посмотреть, его вес — 25 кг).
Greyp G6 вполне можно поднять
Greyp G6 имеет противоугонную систему, которая похожа на Sentry Mode от Tesla. То есть, если дотронуться до припаркованного велосипеда, он оповестит об этом владельца и даст ему доступ к камере, чтобы узнать, кто крутится вокруг электровела. Затем водитель может выбрать дистанционное отключение велосипеда, чтобы не дать злоумышленнику уехать. И, учитывая, что эти системы разрабатывались в Greyp в течение многих лет, вполне вероятно, что они действительно придумали это систему до того, как её внедрила Tesla.
В продаже есть несколько моделей этой серии: G6.1, G6.2, G6.3. G6.1 разгоняется до 25 км/ч (15,5 миль в час) и стоит 6 499 евро. G6.3 имеет максимальную скорость 45 км/ч (28 миль в час) и стоит 7 499 евро. В чём отличие модели G6.2 — неясно, но она стоит 6 999 евро.
Что ещё полезного можно почитать в блоге Cloud4Y
> Путь искусственного интеллекта от фантастической идеи к научной отрасли
> 4 способа сэкономить на бэкапах в облаке
> Настраиваем top в GNU/Linux
> Лето почти закончилось. Не утекших данных почти не осталось
> IoT, туман и облака: поговорим про технологии?
Подписывайтесь на наш Telegram-канал, чтобы не пропустить очередную статью! Пишем не чаще двух раз в неделю и только по делу.
Комментарии (3)
clawham
30.10.2019 12:03+1ненене подождите! Вы опять предлагаете онлайн? тоесть когда вам надоест вы просто закинете сервера и все — продукт = тыква? почему? зачем вы так?
Неужто простенький stm32 с sd картой на борту так много ест что является непозволительной роскошью? неужто производительности любого смартфона не достаточно на обработку этих данных с локального импровизированного сервера?
Ну а по поводу точки на карте и хватит ли заряда — ну вообще фантазеры. даже я сам когда еду в неизвестность никогда не знаю насколько много у меня останется на путь домой и всегда возвращаюсь потратив не половину а треть. т.к. бывают подъемы некрутые но рваные, бывают быстрые участки или ещё много разного непредсказуемого вроде прошедшего дождя и болота топкого. Это разве что обмениваться данными с такими же как ты на таком же транспорте проехавшегося по такому же маршруту с таким же тампом? да утопия. Я могу по одному и тому же маршруту свою тараею посадить и за 20 километров и за 60.
webviktor
Странный производитель.
На сайте ни на один вел не нашел ни спецификации ни характеристик.
И как для неизвестного (нового) производителя — то дорого.
Например тот же KTM можно купить дешевле.