car_demo|Полное руководство по среде моделирования беспилотных транспортных средств

алгоритм

В последнее время требуется вАккерманАлгоритм проверки наземного мобильного робота. Однако реальная платформа не может быть построена какое-то время, поэтому рассмотрите возможность использования среды моделирования. После сравнения окончательный выборcar_demo. Эта статья в основном знакомит с использованием car_demo, от установки до практического применения.


Система: Ubuntu 14.04 индиго

1. Установка

官方安装没问题-官方安装没问题-官方安装没问题

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

1.1 Установить докер

Get Docker CE for Ubuntu

1.2 Установите нвидиа-докер

NVIDIA/nvidia-docker

1.2 Установить car_demo

osrf/car_demo

2. Пробный запуск

cd car_demo
./run_demo.bash

rviz显示

在这里插入图片描述

беседка шоу在这里插入图片描述

3. Получить тему среды моделирования

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

Механизм связи между несколькими компьютерами ros используется для реализации связи между локальными ros и ros в среде докера. Внесите следующие изменения в файл конфигурации:

在这里插入图片描述Среди них 172.17.0.2 — это IP-адрес среды докеров.Если вы не можете его получить, вы можете догадаться.Первые несколько цифр — это в основном фиксированные слова, а последняя цифра пробуется с 1 и выше. 192.168.10.128 — это IP-адрес машины. (Обратите внимание, что локальный файл .bashrc также должен быть соответствующим образом изменен, см.Многомашинная связь ROSнастроить его)

После завершения вышеуказанной настройки и, если IP-адрес среды докеров (предположительно) правильный, запустите его локально.

roscore

запустить снова:

cd car_demo       
./run_demo.bash

Интерфейсы РВИЗ и ГАЗЕБО появятся успешно, и будет отображаться беспилотный автомобиль и среда моделирования. В случае неудачи вы можете продолжить угадывать IP-адрес среды докера.一般不是2就是3.

В это время бегитеrostopic list, появится большой список сообщений. Следующее:在这里插入图片描述

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

4. Управляйте беспилотным транспортным средством

Уведомление:car_demo依赖他自己的消息格式prius_msgs,本机与docker 里的car_demo成功通信,必须在本机也编译prius_msgs。car_demo的根目录下就有prius_msgs node文件夹,将其放入本机的工作空间,并编译,保证工作空间加入了source list中。

выполнить следующий код

import rospy
from prius_msgs.msg import Control

def control_test():
    pub = rospy.Publisher("/prius", Control, queue_size=1)
    rospy.init_node('sim_control', anonymous=True)
    rate = rospy.Rate(10) # 10hz
    command = Control()
    command.header.stamp = rospy.Time.now()
    command.throttle = 1.0
    command.brake = 0.0
    command.shift_gears = Control.FORWARD
    
    while not rospy.is_shutdown():
        pub.publish(command)
        rate.sleep()

if __name__ == '__main__':
    try:
        control_test()
    except rospy.ROSInterruptException:
        pass 

Нашел машину в движении, ха-ха! ! !

在这里插入图片描述

Минимальный радиус поворота и максимальная кривизна

Колесная база L: 2,86 м Максимальное рулевое управление (угол)θ\theta: от -30 градусов до 30 градусов Передняя дорожка 2b:2×0.762\times 0.76 m

Здесь минимальный радиус поворота рассчитывается как:rmax=Lsin(θ)+bcos(θ)r_{max}=\frac{L}{sin(\theta)}+\frac{b}{cos(\theta)}

Конечный минимальный радиус поворота: 6,6 м Максимальная кривизна: 0,15