Skip to content

ilya-kkk/algop_sim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Algop Simulation

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

Структура проекта

.
├── workspace/                 # ROS рабочее пространство
│   ├── src/
│   │   └── algop_sim/        # ROS пакет с симуляцией
│   │       ├── config/       # Конфигурационные файлы
│   │       ├── launch/       # Launch файлы
│   │       ├── scripts/      # Python скрипты
│   │       ├── urdf/         # Описание робота
│   │       └── worlds/       # Миры для симуляции
├── pc_run/                   # Скрипты для запуска на ПК
│   ├── docker-compose.yml    # Конфигурация Docker
│   ├── docker_new.bash       # Скрипт создания нового контейнера
│   └── docker_run.bash       # Скрипт запуска контейнера
└── README.md                 # Этот файл

Описание компонентов

ROS пакет algop_sim

  • scripts/scan_to_tf.py - Нода для преобразования данных лазерного сканера в tf-преобразования
  • scripts/slam.py - Нода EKF SLAM для оценки положения робота
  • scripts/fsm.py - Нода с конечным автоматом для управления движением робота. Реализует следующие состояния:
    • DriveForward - движение вперед до обнаружения препятствия
    • TurnRight - поворот направо на 90 градусов
    • DriveCircle - движение по кругу
    • TurnLeft - поворот налево на 90 градусов
    • FinalDrive - финальное движение вперед
  • config/ - Конфигурационные файлы для настройки параметров
  • launch/ - Launch файлы для запуска симуляции
  • urdf/ - Описание робота в формате URDF
  • worlds/ - Миры для симуляции в Gazebo

Скрипты для Docker

  • docker-compose.yml - Конфигурация Docker контейнера
  • docker_new.bash - Скрипт для создания нового контейнера
  • docker_run.bash - Скрипт для запуска существующего контейнера

Инструкция по запуску

Предварительные требования

  • Установленный Docker
  • Установленный Docker Compose
  • Доступ к интернету для загрузки образов

Запуск симуляции

  1. Запуск контейнера:
cd pc_run
./docker_run.bash
  1. ИЛИ подключение к запущенному контейнеру с открытием нового терминала:
cd pc_run
./docker_new.bash
  1. После запуска контейнера:
    • Откроется терминал внутри контейнера
    • Перейдите в рабочую директорию ROS:
      cd /workspace
    • Соберите проект:
      catkin build
    • Загрузите переменные окружения:
      source devel/setup.bash
    • Запустите весь проект через launch файл:
      roslaunch algop_sim simulation.launch
    • Для остановки симуляции нажмите Ctrl+C
    • Для выхода из контейнера нажмите Ctrl + D

Настройка параметров

Параметры EKF SLAM можно настроить в файле slam.py:

  • Q - матрица шума процесса
  • R - матрица шума измерений
  • covariance - начальная ковариация

Параметры конечного автомата можно настроить в файле fsm.py:

  • LINEAR_SPEED - линейная скорость движения
  • ANGULAR_SPEED - угловая скорость поворота
  • DISTANCE_THRESHOLD - порог расстояния до препятствия
  • ANGLE_THRESHOLD - угол поворота
  • CIRCLE_TIME - время движения по кругу
  • CIRCLE_LINEAR_SPEED - линейная скорость при движении по кругу
  • CIRCLE_ANGULAR_SPEED - угловая скорость при движении по кругу
  • FINAL_DRIVE_TIME - время финального движения вперед

Отладка

Для отладки можно использовать:

  • rostopic list - список активных топиков
  • rostopic echo /topic_name - просмотр сообщений в топике
  • rviz - визуализация tf-преобразований и данных
  • rosrun rqt_tf_tree rqt_tf_tree - просмотр дерева tf-преобразований
  • rosrun smach_viewer smach_viewer.py - визуализация состояний конечного автомата

About

Implementation of EKF SLAM in Gazebo and an FSM for behavior control (SLAM course at ITMO)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published