Параметры и настройка через launch

Загрузка робота

После включения робота, происходит загрузка системы и автоматический запуск всех необходимых для работы робота нод. Управление нодами, которые будут загружены, возможно через .launch файл /etc/ros/melodic/turtlebro.d/turtlebro.launch

По умолчанию запускаются ноды.

/arduino_serial_node /robot_state_publisher /rosout /rplidarNode /stm_serial_node

Работают топики

/bat /cmd_vel /diagnostics /imu /joint_states /odom /rosout /rosout_agg /scan /tf /tf_static /time_test

Запущены сервисы

/arduino_serial_node/get_loggers /arduino_serial_node/set_logger_level /board_info /power/off /power/reset /reset /robot_state_publisher/get_loggers /robot_state_publisher/set_logger_level /rosout/get_loggers /rosout/set_logger_level /rplidarNode/get_loggers /rplidarNode/set_logger_level /set_pid /start_motor /stm_serial_node/get_loggers /stm_serial_node/set_logger_level /stop_motor

Параметры (rosparams)

Устрановка параметров возможна через команду rosparam set или через .launch файлы

  • stm_serial_node/pid float[3] for Kp, Ki, Kd -- ПИД регулятор для управления колесами робота

  • stm_serial_node/wheel_distance double; meters -- расстояние между колесами

  • stm_serial_node/wheel_param uint32_t; number of ticks per meter -- расчетный коэффициент

  • stm_serial_node/motor_inversion uint32_t; 0/1 -- направления вращения колес относительно направления робота

  • формула для расчета wheel_param:

    wheel_param = ticks*red_ratio/circle где

    • ticks - количество тиков энкодера на один оборот мотора, штук

    • red_ratio - коэффициент передачи редуктора, безразмерный

    • circle - длина окружности колеса, метров

После изменения параметров необходимо перезапустить контроллер TurtleBoard нажав на кнопку restart с правой стороны робота. Прошивка TurtleBoard читает параметры только при загрузке.

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

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

Для настройки коэффициентов ПИД регулятора можно использовать сервис ros /set_pid

rosservice call /set_pid "Ki: 0.0 Kp: 0.0 Kd: 0.0"

Файл turtlebro.launch

Главный файл конфигурации -- подключает другие .launch файлы и глобальные настройки.

<arg name="run_rosserial" default="true"/>
<arg name="run_rplidar" default="true"/>
<arg name="run_uvc_camera" default="false"/>
<arg name="run_slam_gmapping" default="false"/>

run_rosserial -- запуск rosserial.launch для соединения с Arduino и STM МК run_rplidar -- запустить получение данные с RPLidar

run_uvc_camera -- включить камеру через пакет uvc_camera

run_slam_gmapping -- включить работу робота в режиме SLAM

Файл rosserial.launch

Файл запуска нод stm_serial_node и arduino_serial_node необходимых для работы с Arduino и STM

МК STM TurtleBoard

Подключается через устройство, скорость 460800 бод/с/dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0012-if00-port0

Arduino

Подключается через устройство, скорость 115200 бод/с/dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0010-if00-port0

Файл rplidar.launch

Файл для запуска ноды обработки данных с лидара. Для работы необходим пакет rplidar от производителя лидара. Параметры файла настроены для работы с лидаром RPLidar A1 на скорости 115200 бод/с через устройство /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0011-if00-port0

Данные с лидара вычисляются относительно фрейма base_scan

Файл uvc_camera.launch

Файл для запуска издателя с данными полученными из фронтальной камеры. Подробнее о работе с камерой