Разное

Росконтроль рф черный список продуктов: Черный список и список товаров с замечаниями

Содержание

Росконтроль назвал марки сыров, которые опасно есть | Pchela.news

Не все сыры одинаково полезны, некоторые могут даже нанести вред организму. Актуальный список продуктов, приобретать которые не стоит, озвучили эксперты Росконтроля. В стоп-листе оказались 24 марки сыров и 3 сырных продукта.

Согласно данным Росконтроля, на отечественном рынке молочной продукции присутствует огромное количество фальсификата. Так, многие из образцов (аж 15 штук), проанализированных экспертами ведомства, оказались подделками. Среди брендов, которые лучше не доносить до кассы в супермаркетах, оказались следующие сыры:

  • «Вектор» Маасдам 45%;
  • «Сырный рай» Российский молодой 50%;
  • «Сырная долина» Сметанковый 50%;
  • «Народные сословия» Гауда 45%;
  • «Слуцкие сыры» Пошехонский 45%;
  • «Арча» Эдам 45%;
  • «Сибирский гостинец» Пошехонский 45%;
  • «Вектор» Гауда 45%;
  • «Кошкинское» Голландский 45%;
  • Fresh Адыгейский;
  • «Сыродел» Российский 50%;
  • «Ферма Босконе» Российский 50%;
  • «Столица молока» Голландский 45%;
  • Valleverde Моцарелла 40%;
  • «Здравушка» Российский молодой 50%.

Некоторые сыры оказались ещё более опасными. В них были обнаружены бактерии группы кишечной палочки. Среди них:

  • «Первым делом» Голландский;
  • «Предгорье Кавказа» Адыгейский;
  • «ВкусВилл / Избёнка» Голландский.

В других случаях производитель ввёл в заблуждение покупателя, указав недостоверные сведения на упаковке. Например, экспертиза Росконтроля показала, что сыры «Силенок лунный» и «Силенок солнечный» по своей этикетке и названию производят впечатление детского продукта. Однако это не так. А вот комбинированный рассольный продукт «Сиртаки» Original по упаковке напоминает сыр фета, хотя на самом деле таковым не является.

Ещё несколько сыров и сырных продуктов попали в список за информацию о наименовании продукта. У некоторых она была нанесена только на контрэтикетку, у других — настолько мелким шрифтом, что прочитать её было невозможно. В стоп-листе:

  • Сыр Hollender 17%;
  • Сыр Bonalpi 45%;
  • Сырный продукт Denmax «Сулугуни» 40%;
  • Сыр Grekos рассольный 45%;
  • Сыр Magerquark Bio творожный обезжиренный.

Также в чёрный список попал сырный продукт Delissir «Фета» 55%. Его, исходя из названия, можно спутать с оригинальным сыром фета из овечьего молока с добавлением козьего. По факту это не так.

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

Ещё под запрет в России попали перец, гранаты и виноград из Турции и Ирана. Их ввоз в страну из-за неоднократных нарушений по безопасности в плодоовощной продукции приостановил Роспотребнадзор.

Подписывайтесь в Telegram

Новости СМИ2

Больше новостей

  • Автор: Айдар Насыров

    Поделиться

    —>

    Автор: Челябинский зоопарк/Vk.com

    Поделиться

  • —>

    Автор: Челябинский зоопарк/Vk.com

    Поделиться

    Росконтроль составил чёрный список ветчины для завтрака

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

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

    На упаковке ветчины марки «Рублёвский» указаны неверный состав, а также недостоверные ГОСТ 31790–2012 и категория «А». В продукте выявлены не перечисленные в маркировке компоненты — каррагинан, камедь рожкового дерева и клетчатка пшеничная. Образец не соответствует стандарту по органолептическим показателям и по составу. По количеству мышечной ткани может относиться лишь к более низкой категории «Б». Не соответствует указанному в маркировке стандарту по органолептическим показателям: вкус с выраженным сладковатым и вяжущим привкусом, батоны диаметром 70 мм — меньше минимально допустимого стандартом (80 мм). Степень нарушения охарактеризована как средняя.

    Образец «Ближние горки» в чёрном списке оказался, поскольку содержит не указанные в составе каррагинан и гаровую камедь в умеренном количестве. Степень нарушения: средняя.

    Ветчина «Клинский», как выяснилось, не соответствует требованиям безопасности по показателю общей микробной обсеменённости (КМАФАнМ). Содержит не заявленную в составе клетчатку в умеренном количестве. Не соответствует указанному в маркировке стандарту по органолептическим показателям и фактическому составу: вкус, запах, диаметр батона. Степень нарушения: высокая.

    «Мясной дом Бородина» тоже обманул в части указания состава ветчины, ГОСТ 31790–2012 и надписи «Без каррагинана»: в составе выявлены растительный углеродный компонент и каррагинан. Углеводный компонент, не указанный в составе, содержится в умеренном количестве — около 5%, что достаточно много для мясного продукта. Не соответствует заявленному в маркировке ГОСТу по органолептическим показателям: отмечен вяжущий привкус. Степень нарушения: средняя.

    «Велком» в чёрном списке оказался тоже из-за недостоверной маркировки: выявлено присутствие консервантов сорбиновой и бензойной кислот, не указанных в составе. А использование этих консервантов в составе данного вида продукции не предусмотрено техническим регламентом. Белка содержится белка на 15% меньше, чем заявлено в маркировке. Степень нарушения: средняя.

    Ветчина «Малаховский» не соответствует требованиям безопасности по показателю общей микробной обсеменённости (КМАФАнМ). Содержит не заявленные в составе крахмал и растительный углеводный компонент. Не соответствует указанному в маркировке стандарту по фактическому составу и органолептическим показателям (вкус). Степень нарушения: высокая.

    Ветчина, которая может быть рекомендована к покупке, или та, что попала в чёрный список или получила замечания, есть в каталоге «РК.Рейтинг».

    Для справки: Росконтроль — первый масштабный негосударственный проект в области контроля качества и безопасности товаров и услуг. Росконтроль объединяет ведущие исследовательские лаборатории и научные институты России, общества и объединения защиты прав потребителей.

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

    Результаты других исследований можно найти по тегу «Проверка Росконтроля».

    Фото: Росконтроль

    Автор: Екатерина Маришина

    Источник – Pchela.News


    Новости СМИ2

    Подготовка приложений ROS и контейнеров моделирования для AWS RoboMaker

    Джереми Уоллес | на
    | в
    Робототехника |
    Постоянная ссылка |
    Делиться

    В октябре 2021 г. мы выпустили поддержку контейнеров в AWS RoboMaker, чтобы большему количеству клиентов было проще создавать и запускать свои симуляции. В этом блоге мы покажем вам, как использовать контейнеры для создания и упаковки приложений операционной системы роботов (ROS) для запуска в AWS RoboMaker.

    Когда AWS RoboMaker был впервые выпущен, мы создали специальный формат для упаковки приложений ROS с зависимостями, который называется пакетом. Однако мы обнаружили, что клиенты часто использовали различные инструменты моделирования и пользовательские пакеты программного обеспечения с различными менеджерами пакетов, зависимостями, инструментами сборки и рабочими процессами выполнения вместе со своим стеком ROS. Это затрудняло сборку и упаковку всех их приложений и зависимостей в пакет. Мы также обнаружили, что многие разработчики ROS продолжали использовать инструменты сборки первого поколения и/или уже имели образы контейнеров своих инструментов моделирования и приложений для роботов.

    Благодаря поддержке контейнеров клиенты теперь могут использовать свои контейнерные приложения ROS с небольшими изменениями. Новая функция теперь поддерживает приложения, написанные для любой версии ROS, инструмент сборки по вашему выбору и различные инструменты моделирования. Сюда входят, помимо прочего, Ignition Gazebo, Drake, NVidia Isaac Sim и высокоточные движки рендеринга, такие как Unity и Unreal.

    Фон

    Использование colcon для создания приложений ROS в образах контейнеров

    В прошлом, чтобы включить приложения в задание моделирования RoboMaker, клиенты использовали colcon для создания своих рабочих пространств ROS, а затем пакет colcon для создания однофайлового артефакта с включенными зависимостями. Этот файл можно было скопировать, извлечь и выполнить где угодно, в том числе в AWS RoboMaker. Однако инструмент пакета colcon предназначен для установки зависимостей с помощью rosdep или pip. Поэтому любые зависимости, установленные или настроенные вне этих инструментов управления пакетами, будут пропущены.

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

    ГЛУБОКОЕ ПОГРУЖЕНИЕ: ПРОЦЕСС СБОРКИ COLCON

    Подробнее о создании приложений ROS с помощью colcon

    Разработчики ROS часто начинают с рабочей области, папки, в которой разработчики модифицируют, создают и устанавливают пакеты ROS. Пакет ROS содержит библиотеки, наборы данных, файлы конфигурации и все остальное, что включает в себя полезный программный модуль. При использовании colcon рабочие пространства ROS1 и ROS2 обычно имеют следующую структуру:

    • src : каталог, в котором хранится исходный код для любых пакетов ROS. Здесь клонируется и хранится код из систем контроля версий (например, Git).
    • сборка : каталог, в котором хранятся все собранные файлы перед их промежуточной установкой.
    • install : Каталог, в котором хранится созданная рабочая область, подготовленная для установки. Этот каталог включает файл setup.sh/setup.bash, который используется в качестве источника приложения перед запуском.
    • logs : В этом каталоге хранятся все журналы сборки для устранения неполадок в процессе сборки.

    Когда вы запускаете colcon build в рабочей области в первый раз, он создает и заполняет папки build , install и logs в указанной выше структуре каталогов. Во время сборки colcon просматривает рабочую область и ищет пакеты ROS. Они идентифицируются и определяются с помощью файла манифеста (package.xml) в каждом каталоге пакета. Если пакет ROS использует CMake, colcon соберет и установит приложение, следуя инструкциям в прилагаемом файле CMakeLists.txt.

    Разработчики ROS также обычно используют rosdep , инструмент управления зависимостями, который просматривает рабочую область и устанавливает зависимости, определенные в каждом файле манифеста (package. xml). Инструкции по сборке и установке для большинства пакетов ROS представляют собой вариант этих пяти шагов:

    1. mkdir -p my_workspace/src && cd my_workspace (Создать новое рабочее пространство)
    2. git clone src/ (Клонировать разрабатываемый пакет ROS)
    3. rosdep update (обновить исходные списки зависимостей в ROS deps)
    4. rosdep install —from-paths src -i -r -y (просканировать рабочее пространство ROS и установить все необходимые зависимости на хосте)
    5. colcon build –install-base (Сборка и установка пакета ROS)

    Прохождение

    В этом разделе мы покажем, как создавать и упаковывать ваши приложения ROS в образ контейнера, который может работать в AWS RoboMaker, вместо использования файла пакета (tar). В этом пошаговом руководстве вы:

    • Клонируйте образец приложения Hello World . Примечание. Вы также можете использовать рабочее пространство приложения ROS.
    • Создайте стандартный файл Dockerfile со сценарием точки входа.
    • Создайте два образа Docker. По одному для каждой рабочей области в примере приложения HelloWorld, приложении для роботов и приложении для моделирования.
    • Публикация образов Docker в Amazon ECR, реестре контейнеров в облаке.
    • Создавайте приложения для моделирования и роботов, которые ссылаются на ваши образы Docker в AWS RoboMaker.
    • Создайте роль IAM с разрешениями на извлечение образов Docker из Amazon ECR.
    • Запуск и взаимодействие с симуляцией Hello World, работающей в AWS RoboMaker.

    Предпосылки

    Чтобы запустить приведенный ниже пример, на вашем компьютере должны быть установлены Docker, интерфейс командной строки AWS и инструмент VCS.

    Вам также потребуется учетная запись AWS с пользователем или ролью IAM со следующими разрешениями:

    • Создать роль IAM
    • Создание ресурсов RoboMaker (задание моделирования, робот и приложения моделирования)
    • Создание и загрузка репозиториев Amazon ECR

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

    Создание образа докера из рабочей области ROS для AWS RoboMaker

    1. Клонировать репозиторий hello world.
      Примечание. В примерах приложений AWS Robotics код уже структурирован с использованием каталогов рабочей области ROS. Поэтому вам не нужно создавать рабочую область и каталог исходного кода. Однако для большинства пакетов ROS с открытым исходным кодом и, вероятно, для вашего кода сначала создайте каталог рабочей области и клонируйте исходный код в <рабочая область>/источник .
       клон git https://github.com/aws-robotics/aws-robomaker-sample-application-helloworld.git helloworld && cd helloworld 
    2. Импорт зависимостей, определенных в .rosinstall , в каждый исходный каталог с помощью импорта vcs.
       vcs import robot_ws < robot_ws/.rosinstall
      vcs импорта Simulation_ws < Simulation_ws/.rosinstall 
    3. Создайте новый файл с именем Dockerfile в каталоге helloworld и скопируйте/вставьте следующее:
      Примечание: Для начала мы предоставили образец Dockerfile ниже, который будет работать с рабочими пространствами ROS. Если вы используете собственное рабочее пространство ROS, вы можете адаптировать этот файл со своими собственными инструкциями.

      При создании образов Docker следует знать несколько полезных терминов и приемов. Во-первых, Dockerfile — это набор инструкций, используемый для создания образов Docker. Этот подход использует многоэтапную сборку и интегрированное кэширование с помощью Docker BuildKit. Многоэтапные сборки позволяют выполнять рабочие процессы с отдельными этапами сборки, поэтому зависимости сборки и исходный код не копируются в образ среды выполнения. Это уменьшает размер образа Docker и повышает производительность. Операции кэширования ускоряют будущие сборки за счет сохранения ранее созданных файлов. Чтобы узнать больше о Docker BuildKit, нажмите здесь.

      Прочтите комментарии в Dockerfile , чтобы понять, что создается, и при необходимости адаптируйте его. Для простоты разработки файл Dockerfile основан на официальных образах ROS Docker, поддерживаемых Open Source Robotics Foundation (OSRF). Однако при работе в производственной среде вы можете выбрать сборку базового образа ROS с исходным набором инструкций OSRF в GitHub, чтобы предотвратить влияние исходных изменений.

      # ======== ROS/Colcon Dockerfile ========
      # Этот образец Dockerfile создаст образ Docker для AWS RoboMaker. 
      # в любом рабочем пространстве ROS, где всеми зависимостями управляет rosdep.
      #
      # Адаптируйте файл ниже, чтобы включить дополнительные зависимости/конфигурацию за пределами rosdep.
      # =======================================
      # ==== Аргументы ====
      # Переопределите приведенные ниже аргументы, чтобы они соответствовали конфигурации вашего приложения.
      # ====================
      # Распространение ROS (например: melodic, foxy и т. д.)
      ARG ROS_DISTRO=мелодичный
      # Имя приложения (например: helloworld)
      ARG APP_NAME=robomaker_app
      # Путь к каталогу рабочей области на хосте (например: ./robot_ws)
      ARG LOCAL_WS_DIR=рабочая область
      # Пользователь для создания и использования (по умолчанию: robomaker)
      ARG USERNAME=robomaker
      # Версия беседки для использования, если применимо (например: беседка-9, беседка-11)
      ARG GAZEBO_VERSION=беседка-9
      # Где хранить построенное приложение в образе среды выполнения.
      ARG IMAGE_WS_DIR=/home/$USERNAME/рабочая область
      # ======== Этапы сборки ROS ========
      # ${ROS_DISTRO}-рос-база
      # -> база ros-robomaker
      # -> ros-robomaker-приложение-база
      # -> ros-robomaker-build-stage
      # -> ros-robomaker-app-runtime-image
      # ===================================
      # ==== Базовый образ ROS ============
      # Если вы работаете в производственной среде, вы можете создать базовый образ ROS. 
      # из исходного набора инструкций, чтобы предотвратить влияние исходных изменений.
      # ARG UBUNTU_DISTRO=фокальный
      # ИЗ public.ecr.aws/lts/ubuntu:${UBUNTU_DISTRO} как ros-база
      # Инструкции для каждого выпуска ROS, поддерживаемого OSRF, можно найти здесь: https://github.com/osrf/docker_images
      # ===================================
      # ==== Этап сборки с зависимостями AWS RoboMaker ====
      # На этом этапе создается пользователь robomaker и устанавливаются зависимости, необходимые для запуска приложений в RoboMaker.
      # ===================================
      ОТ public.ecr.aws/docker/library/ros:${ROS_DISTRO}-ros-base AS ros-robomaker-base
      ИМЯ ПОЛЬЗОВАТЕЛЯ
      ARG IMAGE_WS_DIR
      БЕГИ, очистись
      RUN apt-get update && apt-get install -y \
          младший бит \
          распаковать \
          wget \
          завиток \
          xterm \
          python3-colcon-общие-расширения \
          шпион \
          xfce4-терминал
      Группа RUNдобавить $USERNAME && \
          useradd -ms /bin/bash -g $USERNAME $USERNAME && \
          sh -c 'echo "$USERNAME ALL=(root) NOPASSWD:ALL" >> /etc/sudoers'
          
      ПОЛЬЗОВАТЕЛЬ $USERNAME
      РАБОЧИЙ КАТАЛОГ /home/$USERNAME
      ВЫПОЛНИТЬ mkdir -p $IMAGE_WS_DIR
      # ==== База приложений ROS ====
      # В этом разделе устанавливаются зависимости exec для вашего приложения ROS. 
      # Примечание. Убедитесь, что вы правильно определили зависимости «exec» и «build» в файлах package.xml.
      # ========================================
      ИЗ ros-robomaker-base как ros-robomaker-application-base
      ARG LOCAL_WS_DIR
      ARG IMAGE_WS_DIR
      ARG ROS_DISTRO
      ИМЯ ПОЛЬЗОВАТЕЛЯ
      РАБОЧИЙ КАТАЛОГ $IMAGE_WS_DIR
      КОПИРОВАТЬ --chown=$USERNAME:$USERNAME $LOCAL_WS_DIR/src $IMAGE_WS_DIR/src
      ЗАПУСК sudo apt update && \
          обновление росдеп && \
          rosdep fix-permissions
      # Примечание. Это установит все зависимости.
      # Вы можете дополнительно оптимизировать это, определив только exec-зависимости.
      # Затем установите зависимости сборки в образе сборки.
      RUN rosdep install --from-paths src --ignore-src -r -y
      # ==== Стадия сборки рабочей области ROS ====
      # На этом этапе мы установим копии исходных файлов, установим зависимости сборки и запустим сборку.
      # ====================================
      ОТ ros-robomaker-application-base КАК ros-robomaker-build-stage
      LABEL build_step="${APP_NAME}Workspace_Build"
      ПРИЛОЖЕНИЕ_ИМЯ
      ARG LOCAL_WS_DIR
      ARG IMAGE_WS_DIR
      БЕГАТЬ  .  /opt/ros/$ROS_DISTRO/setup.sh && \
          сборка колкона \
           --install-base $IMAGE_WS_DIR/$APP_NAME
           
      # ==== Образ среды выполнения робота ROS ====
      # На заключительном этапе мы скопируем каталог поэтапной установки в образ среды выполнения.
      # ==================================
      ОТ ros-robomaker-application-base КАК ros-robomaker-app-runtime-image
      ПРИЛОЖЕНИЕ_ИМЯ
      ИМЯ ПОЛЬЗОВАТЕЛЯ
      БЕСЕДКА ARG_VERSION
      ИМЯ ПОЛЬЗОВАТЕЛЯ ОКРУЖАЮЩЕЙ СРЕДЫ=$ИМЯ ПОЛЬЗОВАТЕЛЯ
      ENV APP_NAME=$APP_NAME
      ENV GAZEBO_VERSION=$GAZEBO_VERSION
      ВЫПОЛНИТЬ rm -rf $IMAGE_WS_DIR/источник
      КОПИРОВАТЬ --from=ros-robomaker-build-stage $IMAGE_WS_DIR/$APP_NAME $IMAGE_WS_DIR/$APP_NAME
      # Добавьте исходный файл приложения в точку входа.
      РАБОЧИЙКАТАЛОГ /
      КОПИРОВАТЬ Entrypoint.sh /entrypoint.sh
      ЗАПУСК sudo chmod +x /entrypoint.sh && \
          sudo chown -R $USERNAME /entrypoint.sh && \
          sudo chown -R $USERNAME $IMAGE_WS_DIR/$APP_NAME
          
      ТОЧКА ВХОДА ["/entrypoint.sh"]
       
    4. Создайте новый файл с именем entrypoint. sh .
      Примечание: Файл ENTRYPOINT — это исполняемый файл, который запускается при создании контейнера Docker. Мы используем точку входа для источника рабочего пространства ROS, поэтому мы можем легко запустить команд roslaunch в AWS RoboMaker.
       
    5. Скопируйте/вставьте следующее в новый файл
       #!/bin/bash
      установить -е
      источник "/home/$USERNAME/workspace/$APP_NAME/setup.bash"
      если [[ -f "/usr/share/$GAZEBO_VERSION/setup.sh" ]]
      затем
          источник /usr/share/$GAZEBO_VERSION/setup.sh
      фи
      printenv
      exec "${@:1}" 
    6. Теперь выполните следующие команды, чтобы создать образ контейнера приложения для робота:
       DOCKER_BUILDKIT=1 docker build . \
      --build-arg ROS_DISTRO=мелодичный \
      --build-arg LOCAL_WS_DIR=./robot_ws \
      --build-arg APP_NAME=helloworld-робот-приложение \
      -t robomaker-helloworld-робот-приложение 
    7. Опять же, для сборки приложения моделирования:
       DOCKER_BUILDKIT=1 docker build .  \
      --build-arg GAZEBO_VERSION=беседка-9 \
      --build-arg ROS_DISTRO=мелодичный \
      --build-arg LOCAL_WS_DIR=./simulation_ws \
      --build-arg APP_NAME=helloworld-sim-приложение \
      -t robomaker-helloworld-sim-приложение 
    8. Запустите команду образов докеров , чтобы убедиться, что образы докеров были успешно созданы. Вывод должен быть таким:
       Администратор:~/environment/helloworld (ros1) $ docker images
      ТЕГ РЕПОЗИТОРИЯ ИДЕНТИФИКАТОР ИЗОБРАЖЕНИЯ РАЗМЕР СОЗДАН
      robomaker-helloworld-sim-app последнее 5cb08816b6b3 17 минут назад 2.8GB
      robomaker-helloworld-robot-app последнее b5f6f755feec 2 часа назад 2.79GB
         

    Поздравляем! Вы успешно создали образы Docker и теперь можете загружать и запускать их в AWS RoboMaker.

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

    # Альтернативный/дополнительный подход к созданию собственного рабочего пространства ROS
    DOCKER_BUILDKIT=1 сборка докера.  \
    --build-arg GAZEBO_VERSION=<ВАША ВЕРСИЯ GAZEBO> \
    --build-arg ROS_DISTRO=<ВАШ ДИСТРО ROS> \
    --build-arg LOCAL_WS_DIR=<ПУТЬ К ВАШЕМУ РАБОЧЕМУ ОБЛАСТИ> \
    --build-arg APP_NAME=<ИМЯ ВАШЕГО ПРИЛОЖЕНИЯ> \
    -t <ИМЯ ТЕГА ВАШЕГО ПРИЛОЖЕНИЯ> 

    Публикация образов Docker в Amazon ECR

    Контейнеры, используемые AWS RoboMaker в задании моделирования, должны храниться в полностью управляемом реестре контейнеров Amazon Elastic Container Registry (ECR). Загрузите образы контейнеров, выполнив следующие действия:

    .

    1. Установите несколько переменных среды, которые можно повторно использовать в следующем наборе команд. Не забудьте заменить <НОМЕР ВАШЕЙ АККАУНТ AWS> и <ВАШ РЕГИОН AWS> номером вашей учетной записи и регионом 9.0028
       экспорт robotapp=robomaker-helloworld-robot-app
      экспортировать simapp = robomaker-helloworld-sim-приложение
      export account=<НОМЕР ВАШЕЙ АККАУНТ AWS>
      экспортный регион=<ВАШ РЕГИОН AWS>
      экспортировать ecruri=$account. dkr.ecr.$region.amazonaws.com 
    2. Войдите в Amazon ECR и создайте два новых репозитория.
       aws ecr get-login-password --region $region | вход в докер --имя пользователя AWS --пароль-стандартный ввод $ecruri
      aws ecr create-repository --repository-name $robotapp
      aws ecr create-repository --repository-name $simapp 
    3. Пометьте образы Docker URI Amazon ECR. Тег докера
       $robotapp $ecruri/$robotapp:latest
      тег докера $simapp $ecruri/$simapp:последний 
    4. Загрузите образы Docker в Amazon ECR.
       docker push $ecruri/$robotapp
      докер push $ecruri/$simapp 
    5. Запустите следующие операторы описания, чтобы убедиться, что ваши изображения загружены в ECR.
       aws ecr list-images --repository-name $simapp
      aws ecr list-images --repository-name $robotapp 

      Ожидаемый результат:

       Администратор:~/environment/helloworld (ros1) $ aws ecr list-images --repository-name $simapp
      {
          "изображения": [
              {
                  "imageDigest": "sha256:28cad40230402343024kf303f30fk20f2f2fa0a8148",
                  "imageTag": "последний"
              }
          ]
      }
      Администратор: ~/environment/helloworld (ros1) $ aws ecr list-images --repository-name $robotapp
      {
          "изображения": [
              {
                  "imageDigest": "sha256:28cad40230402343024kf303f30fk20f2f2fa0a8148",
                  "imageTag": "последний"
              }
          ]
      } 

    Поздравляем! Теперь вы отправили образы докеров роботов и симуляторов на основе ROS в Amazon ECR.

    Создание и запуск роботов и приложений для моделирования с помощью контейнеров в AWS RoboMaker

    На заключительных этапах мы создадим новое приложение моделирования AWS RoboMaker и приложение робота, ссылаясь на соответствующие образы Docker в Amazon ECR. Убедитесь, что указанные выше переменные среды по-прежнему установлены в сеансе оболочки.

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

    1. Создайте приложение робота. Для каждой команды сохраните ARN, возвращенный для использования на последнем шаге.
       aws robomaker create-robot-application \
      --name $роботап\
      --robot-software-suite name=Общие \
      --environment uri=$ecruri/$robotapp:последние 
    2. Создайте приложение моделирования.
       aws robomaker create-simulation-application \
      --имя $simapp \
      --simulation-software-suite name=SimulationRuntime \
      --robot-software-suite name=Общие \
      --environment uri=$ecruri/$simapp:последний 
    3. Создайте новый файл с именем HelloWorldTrustPolicy.json и скопируйте/вставьте следующий JSON в файл:
       {
          «Версия»: «2012-10-17»,
          "Заявление": [
              {
                  «Эффект»: «Разрешить»,
                  "Главный": {
                      «Сервис»: «robomaker.amazonaws.com»
                  },
                  "Действие": "sts:AssumeRole"
              }
          ]
      }
       
    4. Создайте новый файл с именем HelloWorldPolicy.json и скопируйте/вставьте приведенный ниже JSON политики IAM в файл. Не забудьте заменить и номером вашей учетной записи и регионом
       {
          «Версия»: «2012-10-17»,
          "Заявление": [
              {
                  «Эффект»: «Разрешить»,
                  "Действие": [
                      "журналы: CreateLogGroup",
                      "журналы: CreateLogStream",
                      "журналы: PutLogEvents",
                      "журналы: Описатьлогстримс"
                  ],
                  «Ресурс»: «arn:aws:logs:::log-group:/aws/robomaker/SimulationJobs*»
              },
              {
                  «Эффект»: «Разрешить»,
                  "Действие": [
                      "ЭКР: Батчжетизображение",
                      "ecr:GetAuthorizationToken",
                      "ecr: Батччекклайердоступность",
                      "ecr:GetDownloadUrlForLayer"
                  ],
                  "Ресурс": [
                      "arn:aws:ecr:::repository/robomaker-helloworld-robot-app",
                      "arn:aws:ecr:::repository/robomaker-helloworld-sim-app"
      ]
              },
              {
                  «Эффект»: «Разрешить»,
                  "Действие": [
                      "ecr-public:GetAuthorizationToken",
                      "ecr: GetAuthorizationToken"
                  ],
                  "Ресурс": "*"
              }
          ]
      }
       
    5. Создайте новую роль IAM с указанной выше политикой и сохраните ARN роли IAM из выходных данных для следующего шага.
       aws iam create-role --role-name RoboMaker-HelloWorld-Role --assume-role-policy-document file://HelloWorldTrustPolicy.json
      aws iam put-role-policy --role-name RoboMaker-HelloWorld-Role --policy-name RoboMaker-HelloWorld-InlinePolicy --policy-document file://HelloWorldPolicy.json 
    6. Создайте новый файл с именем create_simulation_job.json и скопируйте/вставьте приведенный ниже JSON в файл. Замените , и выходными данными приведенных выше команд.
       {
          "maxJobDurationInSeconds": 3600,
          "iamRole": "",
          "роботПриложения": [
              {
                  "application": "<ВАШ-РОБОТ-ПРИЛОЖЕНИЕ-ARN>",
                  "applicationVersion": "$ ПОСЛЕДНИЙ",
                  "запускКонфигурация": {
                      "переменные среды": {
                          "ROS_IP": "ROBOMAKER_ROBOT_APP_IP",
                          "ROS_MASTER_URI": "http://ROBOMAKER_ROBOT_APP_IP:11311",
                          "GAZEBO_MASTER_URI": "http://ROBOMAKER_SIM_APP_IP:11345"
                      },
                      "streamUI": ложь,
                      "команда": [
                          "roslaunch", "hello_world_robot", "rotate. launch"
                      ]
                  },
                  "инструменты": [
                      {
                          "streamUI": правда,
                          "имя": "робот-терминал",
                          "command": "/entrypoint.sh && xfce4-терминал",
                          "streamOutputToCloudWatch": правда,
                          "exitBehavior": "ПЕРЕЗАПУСК"
                      }
                  ]
              }
          ],
          "Приложения для моделирования": [
              {
                  "application": "<ВАШ-SIM-ПРИЛОЖЕНИЕ-ARN>",
                  "запускКонфигурация": {
                      "переменные среды": {
                        "ROS_IP": "ROBOMAKER_SIM_APP_IP",
                        "ROS_MASTER_URI": "http://ROBOMAKER_ROBOT_APP_IP:11311",
                        "GAZEBO_MASTER_URI": "http://ROBOMAKER_SIM_APP_IP:11345",
                        "TURTLEBOT3_MODEL":"waffle_pi"
                      },
                      "streamUI": правда,
                      "команда": [
                          "roslaunch", "hello_world_simulation", "empty_world.launch"
                      ]
                  },
                  "инструменты": [
                      {
                          "streamUI": правда,
                          "имя": "gzclient",
                          "команда": "/entrypoint. sh && gzclient",
                          "streamOutputToCloudWatch": правда,
                          "exitBehavior": "ПЕРЕЗАПУСК"
                      }
                  ]
              }
          ]
      } 
    7. Запустите следующую команду интерфейса командной строки AWS, чтобы запустить симуляцию
       aws robomaker create-simulation-job --cli-input-json file://create_simulation_job.json 
    8. Откройте консоль AWS RoboMaker . В разделе Simulation run щелкните Simulation jobs .
    9. Вы должны увидеть, что задание моделирования либо готовится, либо выполняется. Нажмите на задание моделирования.
    10. Наконец, нажмите Подключить на gzclient, чтобы увидеть запущенную симуляцию.
    11. Щелкните Действия , затем Отмена , чтобы остановить задание моделирования после его завершения.

    Поздравляем! Теперь вы можете создавать приложения ROS, упаковывать их в контейнеры Docker и запускать с помощью AWS RoboMaker.

    Очистка

    После завершения вы можете удалить созданные вами ресурсы с помощью следующих команд:

     aws ecr delete-repository --repository-name $ecruri/$simapp
    aws ecr delete-repository --repository-name $ecruri/$robotapp
    aws robomaker delete-robot-application --application 
    aws robomaker delete-simulation-application --application 
    aws iam delete-role --role-name RoboMaker-HelloWorld-Role 

    Резюме

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

    Мы решили не использовать пакеты, поскольку процесса сборки и установки colcon с rosdep было достаточно при создании образов Docker. Тем не менее, пакет colcon имеет открытый исходный код и доступен, если вы решите продолжать использовать его со своими файлами robots. В этом случае вы можете использовать описанный выше подход для создания образов Docker для AWS RoboMaker. Просто удалите этап сборки, скопируйте пакет в образ и выполните команды, указанные в инструкциях по использованию пакета.

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

    Счастливого строительства!

    ТЕГИ:
    AWS RoboMaker

    Jeremy Wallace

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

    25+ идей проектов робототехники | Темы исследований в области робототехники (обновлено)

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

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

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

    - Реклама -

    Этот проект доступен по адресу Smart Robot for Face Recognition

    2. Робот, следящий за линией, использующий алгоритм PID

    Следящий за линией — это простой робот, который следует по толстой линии, нарисованной на полу с помощью инфракрасного (ИК) или другого оптические датчики. В этом роботе, следящем за линией, используются два двигателя с колесами сзади и поворотное колесо в качестве опоры спереди.

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

    3. Роботизированный манипулятор на базе ЧМИ

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

    Полная информация доступна здесь Роботизированный манипулятор на базе ЧМИ.

    4. РОБОТ Hector Slam Mapping и Indoor Positioning ROBOT

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

    Посмотреть это видео на YouTube

     Этот проект доступен на сайте Hector Slam Mapping and Indoor Positioning ROBOT.

    5. Робот для картографирования и позиционирования в помещении с питанием от радара и ROS

    Функция картографирования и позиционирования в помещении робота, управляемого операционной системой робота (ROS), необходима для навигации по залу, складу, комнате или в любом другом месте. среда.

    Посмотреть это видео на YouTube

    Этот проект доступен на сайтах Radar и ROS Powered Indoor Home Mapping and Positioning Robot.

    6. Чат-бот на основе искусственного интеллекта для управления бытовой техникой

    В этом проекте представлен чат-бот на основе искусственного интеллекта (ИИ) для управления бытовыми электроприборами с использованием ESP8266-12E NodeMCU и платформы Facebook Messenger. Платформа для создания чат-бота AI для Facebook — Chatfuel. Проект также использует IFTTT и Adafruit IO для внутренней поддержки. Проект отлично подходит для интеграции ИИ с Интернетом вещей (IoT).

    Полная информация о проекте доступна на сайте Чат-бот на основе искусственного интеллекта для управления устройствами.

    7. Виртуальный робот телеприсутствия, использующий Raspberry Pi

    Этот робот с камерой размещается в удаленном месте, чтобы захватывать окружающую среду в визуальной форме с помощью Raspberry Pi (RPi). Захваченные визуальные эффекты отображаются на гарнитуре виртуальной реальности (VR) пользователя.

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

    Полный проект доступен на сайте Виртуальный робот телеприсутствия с использованием Raspberry Pi.

    8. Самодельный робот с дистанционным управлением

    Для управления роботом сигнал обычно передается через беспроводную систему с использованием радиочастоты (RF) и инфракрасного излучения (IR). Для отправки ИК-сигнала вам нужен передатчик и приемник с системой кодирования и декодирования. Здесь представлен простой робот с дистанционным управлением, которым можно управлять с помощью ИК-пульта, используемого для телевизора или DVD-плеера, или эквивалентного ИК-пульта.

    Этот проект доступен по адресу: Создайте собственного робота с дистанционным управлением.

    9. Автомобиль-робот на базе Arduino, управляемый смартфоном

    В настоящее время смартфоны можно использовать для управления множеством электрических и электронных устройств, включая двигатели, музыкальные системы и освещение. Здесь мы представляем автомобиль-робот на базе Arduino, которым можно управлять с помощью Android-смартфона с установленным в нем приложением Arduino RC. Этот бот получает команды с вашего смартфона с помощью Bluetooth-модуля.

    Этот проект доступен на странице «Управляемый смартфоном робот-автомобиль с использованием Arduino».

    10. Цветочувствительный робот с MATLAB

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

    Этот проект доступен на Color Sensing Robot с MATLAB.

    11. Робот с радиочастотным управлением

    Мы начнем с простого робота на базе платы Arduino. Им можно управлять дистанционно с помощью радиочастотного пульта дистанционного управления. Этот робот может быть построен очень быстро при небольшом бюджете. Преимущество радиочастотного пульта дистанционного управления заключается в хорошей дальности управления (до 100 метров с соответствующими антеннами), а также в том, что он всенаправленный. Сердцем робота является плата Arduino UNO.

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

    12. Робот, управляемый телефоном Android

    Смартфоны Android, несомненно, являются самыми популярными гаджетами в наши дни. В Интернете вы найдете различные приложения, которые используют встроенное в эти мобильные телефоны оборудование, такое как Bluetooth и Wi-Fi, для управления другими устройствами. В этом проекте представлен робот, которым можно управлять с помощью приложения, работающего на телефоне Android.

    Этот проект доступен для робота, управляемого телефоном Android.

    13. Робот-пожаротушитель

    Многие крупные аварии можно предотвратить, потушив пожар на ранней стадии. Целью следующего проекта является создание робота, который может обнаруживать и тушить пожар. Этот пожарный робот является прототипом настоящего. Используемые здесь датчики представляют собой простые инфракрасные (ИК) фотодиоды, которые обнаруживают инфракрасные лучи, исходящие от огня.

    Этот проект доступен на сайте Fire Extinguishing Robot.

    14. Беспроводной робот, управляемый жестами

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

    Полная информация о проекте доступна на сайте Робот, управляемый жестами.

    15. Футбольный робот

    Этот футбольный робот может двигаться вперед, назад, вперед-влево, вперед-вправо, назад-влево и назад-вправо с помощью телефона Android. Угол поворота телефона определяет скорость его движения. Робот также пинает мяч при встряхивании телефона. Плата Arduino UNO является сердцем схемы. Другие компоненты включают серводвигатель, модуль Bluetooth JY MCU BT, драйвер двигателя L293D и два двигателя постоянного тока.

    Этот проект доступен в Soccer Robot

    16. Робот-приветствие Намасте

    В основе этого забавного проекта под названием «Робот намасте» лежит плата Arduino Uno. Arduino управляет несколькими двигателями одновременно. Робот поворачивает голову на 180° и сканирует людей в своем диапазоне с помощью ультразвукового модуля. Если он находит кого-то поблизости, он приветствует человека «намасте», сжимая обе руки вместе, что является традиционным индийским способом пожелать людям.

    Этот проект доступен в приветственном роботе Намасте.

    17. Робот, следящий за линией

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

    Этот проект доступен в Line Follow Robot.

    18. Робокар с беспроводным управлением

    В следующем проекте описывается робот с беспроводным управлением. Беспроводное рулевое управление определяет движение и передает соответствующие инструкции для управления роботом через радиочастотную связь. В роботе также реализована система обнаружения и уклонения от препятствий. Акселерометр чувствует движение руля. Плата Arduino Uno обрабатывает эти данные, и соответствующие инструкции передаются через радиочастотный передатчик для управления роботом.

    Этот проект доступен на Robocar With Wireless Steering.

    19. Land Rover, управляемый мобильным телефоном

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

    Подробную информацию о проекте можно получить в отделе мобильных телефонов Land Rover.

    20. Радиочастотный двухрежимный робот

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

    Этот проект доступен на радиочастотном двухрежимном роботе.

    21. Усы для роботов

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

    Этот проект доступен в Whisker for Robots.

    22. Схема робота-шпиона с дистанционным управлением

    В этом следующем проекте по робототехнике объясняется разработка робота-шпиона, которым можно управлять с помощью пульта дистанционного управления. Пульт имеет четыре переключателя для управления роботом в четырех направлениях. Робот воспринимает окружающую среду через камеру устройства с зарядовой связью (ПЗС) и отправляет ее на приемник через беспроводную радиочастотную (РЧ) связь. Мы уже изучили, как установить радиочастотную связь в радиочастотной цепи дистанционного управления бытовой техникой. Эта схема также разработана с использованием такой технологии.

    Этот проект доступен в сети дистанционно управляемых роботов-шпионов.

    23. Робот для обнаружения людей

    В следующем проекте представлен простой робот для обнаружения людей, который управляется вручную с использованием радиочастотной технологии. Основной принцип схемы заключается в обнаружении человека с помощью датчика обнаружения человека. Беспроводной робот управляется вручную с помощью ПК. Используемая здесь беспроводная технология — это радиочастотная технология. Данные передаются на приемник через RF. Робот управляется и управляется с помощью полученных данных.

    Этот проект доступен в Human Detection Robot.

    24. Робот-металлоискатель

    В следующем проекте рассказывается о роботе-детекторе металла, использующем радиочастотную технологию. Предлагаемая система состоит из схемы передатчика и приемника. Схема передатчика передает команды, необходимые для работы робота. Схема приемника получает эти команды через РЧ и перемещает робота в соответствии с полученными командами. Металлоискатель сопрягается с контроллером на стороне приемника. Робот останавливается, и зуммер начинает звонить при обнаружении любого металла.

    Полная информация о проекте доступна на Metal Detector Robot.

    25. Робот-сборщик фруктов

    Для садовода крайне важно своевременно собирать урожай. Это трудоемкий процесс, и если его не сделать вовремя, это приведет к потерям и потерям денег. Идея этого роботизированного проекта связана с роботом-сборщиком фруктов, который не только работает сборщиком фруктов, но и достаточно умен, чтобы собирать только те фрукты, которые достаточно созрели.

    Этот проект доступен в роботе-сборщике фруктов.

    26. Робот для подъема по лестнице

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

    Этот проект доступен в Роботе для подъема по лестнице.

    27. Робот, решающий лабиринт

    В следующем проекте создается робот, который может найти путь в линейном лабиринте от начальной до конечной точки. В лабиринте есть несколько начальных и конечных точек, включая множество тупиков. Чтобы решить эту головоломку, нам нужно найти правильный путь как можно быстрее. Для этого проекта требуется линейный лабиринт, представляющий собой черную линию на белом фоне. Основными требованиями для проекта будут два двигателя и 5 ИК-датчиков.

    Этот проект доступен в Роботе, решающем лабиринт.

    28. Робот для мытья окон

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

    Этот проект доступен на радиочастотном двухрежимном роботе.

    29. Робот для санитарной обработки больниц

    Робот для УФ-дезинфекции использует силу УФ-лучей для уничтожения микробов и бактерий.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *