Параметры и настройка через 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
Файл для запуска издателя с данными полученными из фронтальной камеры. Подробнее о работе с камерой