Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Car Control API

Описание

Car Control API — это Python-пакет для дистанционного управления образовательным мобильным роботом TurtleCar. Пакет предоставляет простой и интуитивно понятный интерфейс для взаимодействия с роботом через WebSockets, позволяя выполнять основные действия, такие как управление скоростью и направлением, а также получать данные от датчиков и камеры робота.

Содержание

Особенности

  • Подключение через WebSockets: Надежное и быстрое соединение с машиной.
  • Управление движением: Управление скоростью и направлением.
  • Получение данных: Доступ к данным УЗ, датчиков линии, датчика цвета, концевиков, одометрии и другим сенсорам.
  • Работа с камерой: Получение изображений с камеры машины для анализа или отображения.
  • Асинхронность: Поддержка асинхронных операций для эффективного управления ресурсами.

Установка

Установка пакета осуществляется через pip. Убедитесь, что у вас установлен Python версии 3.6 или выше.

cd car_control_api
pip3 install -e .

Зависимости

Пакет требует наличия следующих зависимостей:

  • websockets
  • numpy
  • opencv-python

Эти зависимости автоматически устанавливаются вместе с пакетом. Однако, вы также можете установить их вручную, используя файл requirements.txt:

pip3 install -r requirements.txt

Быстрый старт

Подключение к машине

Ниже приведен пример того, как подключиться к машшине и выполнить основные действия:

from car_control_api import Car

client = Car()

Запуск примеров

В директории examples/ находится скрипт api_test.py, демонстрирующий использование пакета. Запустите его следующей командой:

python3 examples/api_test.py

API Reference

Класс Car

Основной класс для управления роботом.

Методы

  • connect(ip: str, port: str) -> bool

    Подключается к машине по указанному IP и порту.

  • disconnect() -> bool

    Отключается от машины.

  • getImage() -> numpy.ndarray

    Получает изображение с камеры машины.

  • getUtilsData() -> dict

    Получает данные утилит.

  • setZeroOdom()

    Устанавливает нулевую точку отсчета для колёсной одометрии.

  • getOdomPose() -> list

    Получает данные о положении с колёсной одометрии.

  • getVelocity() -> list

    Получает линейную и угловую скорости с колёсной одометрии.

  • getLidar() -> dict

    Получает данные с лидара.

  • getArucos() -> dict

    Получает информацию об обнаруженных ArUco-маркерах.

  • getCameraPoseAruco() -> dict

    Получает позицию камеры относительно ArUco-маркеров.

  • getColor() -> list

    Получает данные с датчика цвета, значения R, G и B.

  • getUltrasonic() -> list

    Получает данные с ультразвуковых датчиков.

  • getTouch() -> list

    Получает данные с концевиков.

  • getLine() -> list

    Получает данные с датчиков линии.

  • getUltrasonicSens(id: int) -> int

    Получает данные с ультразвукого датчика заданного id (1-3).

  • getTouchSens(id: int) -> int

    Получает данные с концевика заданного id (1-2).

  • getLineSens(id: int) -> int

    Получает данные с датчика линии заданного id (1-3).

  • getBlobs() -> dict

    Получает информацию об обнаруженных цветовых пятнах.

  • getWheelSpeed() -> float

    Получает скорость вращения колес в об/с.

  • getSteeringPose() -> float

    Получает угол поворота руля в град.

  • setVx(vx: float)

    Устанавливает линейную скорость движения vx в м/с.

  • setSteeringPose(steer_angle: float)

    Устанавливает угол поворота руля steer_angle в град.

  • setVelocity(lin_vel: float, ang_vel: float)

    Устанавливает линейную (м/с) и угловую (рад/с) скорости движения.

  • setDeviceControl(vx: float, steer_angle: float)

    Устанавливает линейную скорость (м/с) движения и угол поворота руля (град).

  • gotoXY(x: float, y: float)

    Перемещает машину в заданные координаты.

  • gotoXYrobot(x: float, y: float)

    Перемещает машину в заданные координаты в локальной системе отсчёта.

  • setLEDValue(val: int)

    Устанавливает значение освещенности светодиода датчика цвета [0-255].

Обработчики сообщений

  • AddOnMessangeUtils(handler: Callable)

    Добавляет обработчик для сообщений утилит.

  • AddOnMessangeImage(handler: Callable)

    Добавляет обработчик для сообщений изображений.

Вклад

Мы приветствуем вклад сообщества в развитие проекта! Если вы нашли ошибку или хотите предложить новую функциональность, пожалуйста, создайте issue или сделайте pull request.

Лицензия

Этот проект лицензирован под лицензией MIT. Подробности см. в файле LICENSE.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages