Параметры и настройка через launch
Загрузка робота
После включения робота, происходит загрузка системы и автоматический запуск всех необходимых для работы робота нод. Управление нодами, которые будут загружены, возможно через лаунч-файл /etc/ros/turtlebro.d/turtlebro.launch
По умолчанию запускаются следующие ноды:
/arduino_serial_node
/republish_raw
/robot_state_publisher
/rosapi
/rosbridge_websocket
/rosout
/rplidarNode
/simple_odom
/stm_serial_node
/uvc_camera_node
/web_telemetry_node
/web_video_server
/webserver
Работают топики:
/bat
/client_count
/cmd_vel
/connected_clients
/diagnostics
/front_camera/camera_info
/front_camera/image_raw
/front_camera/image_raw/compressed
/imu
/joint_states
/odom
/odom_pose2d
/raw_odom
/republish_raw/compressed/parameter_descriptions /republish_raw/compressed/parameter_updates
/rosout
/rosout_agg
/scan
/tf
/tf_static
/web_tele
Запущены сервисы:
/arduino_serial_node/get_loggers /arduino_serial_node/set_logger_level /board_info /power/off /power/reset /republish_raw/compressed/set_parameters /republish_raw/get_loggers /republish_raw/set_logger_level /reset /robot_state_publisher/get_loggers /robot_state_publisher/set_logger_level /rosapi/action_servers /rosapi/delete_param /rosapi/get_loggers /rosapi/get_param /rosapi/get_param_names /rosapi/get_time /rosapi/has_param /rosapi/message_details /rosapi/node_details /rosapi/nodes /rosapi/publishers /rosapi/search_param /rosapi/service_host /rosapi/service_node /rosapi/service_providers /rosapi/service_request_details /rosapi/service_response_details /rosapi/service_type /rosapi/services /rosapi/services_for_type /rosapi/set_logger_level /rosapi/set_param /rosapi/subscribers /rosapi/topic_type /rosapi/topics /rosapi/topics_and_raw_types /rosapi/topics_for_type /rosbridge_websocket/get_loggers /rosbridge_websocket/set_logger_level /rosout/get_loggers /rosout/set_logger_level /rplidarNode/get_loggers /rplidarNode/set_logger_level /set_camera_info /set_pid /simple_odom/get_loggers /simple_odom/set_logger_level /start_motor /stm_serial_node/get_loggers /stm_serial_node/set_logger_level /stop_motor /uvc_camera_node/get_loggers /uvc_camera_node/set_logger_level /web_telemetry_node/get_loggers /web_telemetry_node/set_logger_level /web_video_server/get_loggers /web_video_server/set_logger_level /webserver/get_loggers /webserver/set_logger_level
Настройка параметров запуска
Настройка параметров в файле .ros_params
Файл /home/pi/.ros_params
содержит параметры окружения для старта ROS:
Переменная окружения ROVER_WHEEL_PARAM определяет параметр wheel_param для определения типа моторов. Для старых моторов применяется значение: 22500; для новых моторов: 12280. Если одометрия робота из топика не совпадает с реальным перемещением робота, необходимо провести калибровку параметра.
Параметры одометрии
Для того, чтобы одометрия точно отображала реальное перемещение робота используются два параметра:
stm_serial_node/wheel_distance double
тип данных - числовой 64-битный тип
размерность - метры
обозначает - расстояние между колесами
stm_serial_node/wheel_param uint32_t
тип данных - числовой 32-битовый без знака
размерность - безразмерный
обозначает- число тиков энкодера на метр. Является расчётным коэффициентом.
Для расчёта параметра wheel_param используется следующая формула:
Установка параметров
Установка параметра wheel_distance возможна в launch-файле rosserial.launch
в пакете turtlebro:
Также в лаунч-файле rosserial.launch
есть возможность задачи параметра wheel_param:
но как можно заметить, значение данного параметра берется из переменной окружения операционной системы, а конкретнее задается в файле .ros_params
:
Настройка параметров в файле .ros_params
После изменения параметров необходимо выполнить на роботе команду синхронизации данных:
и путем выключения/включения тумблера питания перезагрузить всего робота.
В случае, когда пользователь не установил никаких параметров, происходит загрузка платы TurtleBoard с параметрами по умолчанию, которые обеспечивают работу идущих в комплекте с роботом моторов и колес. Процедура обновления параметров нужна только в том случае, когда плата TurtleBoard настраивается для работы с нестандартным шасси.
Загруженные параметры не сохраняются в постоянную память контроллера, поэтому при установке неправильных параметров необходимо произвести перезапуск устройства, чтобы загрузить значения по умолчанию.
Настройка ПИД параметров моторов
Для настройки коэффициентов ПИД регулятора можно использовать сервис ros /set_pid
Файл turtlebro.launch
Главный файл конфигурации -- подключает другие .launch файлы и глобальные настройки.
run_rosserial
-- запуск rosserial.launch для соединения с Arduino и STM МК
run_rplidar
-- запустить получение данные с RPLidar
run_turtlebro_web
-- запуск веб-интерфейса робота
run_camera_ros
-- включить камеру через пакет uvc_camera
run_simple_odom
-- подключить паблишер приведенной одометрии. Топик /odom_pose2d
Файл 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
Файл camera_ros.launch
Файл для запуска издателя с данными полученными из фронтальной камеры. Подробнее о работе с камерой
Last updated