Skip to content

Dknt0/MobileRobots

Repository files navigation

MobileRobots

See https://github.com/AndreyMinin/MobileRobots


Макет системы управления мобильным роботом

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

Использует модель робота в симуляторе GAZEBO (www.gazebosim.org) либо модель робота в симуляторе Stage

Включает в себя следующие пакеты

cart_launch - проект с описанием сцены для Gazebo с картом и объектами сцены

  • cart_launch/stage_worlds - описание сцены для stage
  • cart_launch/launch/cart_launch - файл запуска модели в среде gazebo
  • cart_launch/cart_stage.launch - файл для запуска модели в среде stage

场景,主要用 Gazebo

polaris_ranger_ev - проект, содержащий модель робота с датчиками для Gazebo

  • model/simple_cart.sdf - робот без датчиков,
  • model/scan_cart.sdf - робот с плоским дальномером и камерой

带传感器的机器人模型,cart_launch/launch/cart_launch 会从导入这里的模型

vehicle_ros_plugin - плагин для Gazebo, позволяющий управлять моделью из ROS.

  • robot/velocity - топик для задания скорости движения
  • robot/steering - топик для задания кривизны траектории (поворот руля)
  • robot/odom - топик с текущими данными одометрии от робота

控制器插件,这个控制器是作者自己写的 实现了 ROS 和 GZ 的消息互传

stage_controller - модуль управления моделью робота в stage, преобразует команды управления поворотом руля (топик /steering), команды управления акселератором в команды управления моделью в stage (cmd_vel)

stage 中的控制器,用不到

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

轨迹跟踪

odo2tf - модуль преобразования данных о реальном положении модели робота (Odometry) в сообщения tf для формирования преобразования систем координат world->base_link Пописывается на топики:

  • /odo - топик с данными одометрии ([nav_msgs/Odometry]) Публикует преобразование tf

里程计转 tf

laser2d_map - модуль построения карты препятствий по данным сканирующего двумерного дальномера Подписывается на топик

  • /laser_scan - данные сканирующего дальномера (sensor_msgs/LaserScan)
  • /tf - преобразование СК от лазера до world Публикует
  • laser_map - карта препятствий в системе координат world

2d 建图

Установка

Необходимо, чтобы были установлены ROS (Тестировалось на melodic) и Gazebo (для управления моделью в Gazebo) или Stage (для управления моделью в среде stage), а также некоторые пакеты ROS (про которые будет указано внутри заданий)

Возможна разработка из докер образа, где всё необходимое уже установлено.

  1. Нужно склонировать репозиторий:
git clone https://github.com/AndreyMinin/MobileRobots.git <папка для размещения проекта>
  1. Перейти в рабочую папку
cd ros_ws
  1. собрать проект
catkin_make

или воспользоваться скриптом build.sh (из папки src)

./build.sh

Если сборка прошла без ошибок можно переходить к запуску

Для первого запуска может потребоваться выход в интернет- чтобы закачать некторые модели с репозитария Gazebo

  1. запуск команды выполняются из директории рабочей области (ros_ws) инициализация рабочей области ROS
source devel/setup.bash
  1. запуск модели в среде Gazebo и контроллера
roslaunch simple_controller controller.launch

модель стартует, затем запускаетя интерфейс gzclient, rviz и rqt Либо запуск модели в среде stage(предпочтительный вариант) и контроллера

roslaunch simple_controller controller_stage.launch

модель стартует, затем запускаетя интерфейс rqt

В rqt в плагине publish можно отправить сообщение с заданной скоростью в топик /robot/velocity

Должно появиться окно симулятора (GAZEBO либо stage), в котором робот ездит в некоторой сцене, отрабатывая заданную траекторию г) управление скоростью можно осуществлять с помощью rqt (publish_message) публикуя сообщение со значением скорости в топик /robot/velocity

Также можно осуществить запуск с помощью скрипта start.sh, находящегося в папке src

./start.sh
Остановить проект можно с помощью ctrl-C в консоли

Практические задания курса

  1. Контроллер управления движением по траектории

实现了轨迹跟踪,横向控制

  1. Контроллер управления скоростью

实现了速度伺服,纵向控制

  1. MPC контроллер

MPC 控制,用多多项式拟合当前路径,输入 MPC 求解器计算最优控制,控制量为加速度和转向角速度

  1. Планирование траектории

轨迹规划

  1. Построение карты

建图

  1. Локализация по дальномеру

基于特征的定位

  1. EKF SLAM

扩展卡尔曼滤波器 SLAM

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published