Navigace a plánovaní pohybu mobilního robotu

Abstract

This work presents the design and implementation of a modular system for autonomous mobile robotics using the ROS 2 (Robot Operating System 2) framework. The goal of the project was to develop a complete software architecture for controlling an Ackermann-steered robot equipped with perception sensors and a CAN communication interface for connecting to the drive electronics. The main computing unit is a Raspberry Pi 4 Model B+, integrated with a 2D LiDAR Slamtec A1M8 and a CAN HAT for direct communication with motor controllers. The system is further extended by an STM32F103 Nucleo microcontroller and an MCP2551 CAN transceiver for real-time handling of CAN traffic and interfacing ultrasonic sensors. On the software level, custom Python ROS 2 nodes were developed to handle LiDAR data processing, local trajectory planning using the Vector Field Histogram (VFH) algorithm, PID-based speed regulation, and feedback from the motor drive system. For navigation, the nav2 stack was integrated, enabling path planning based on a static or SLAM-generated map and dynamic obstacle avoidance. Visualization was provided via RViz 2, fully utilizing the TF2 transformation system for managing coordinate frames in real-time.

Description

Subject(s)

ROS, ROS 2, Ackermann steering, LiDAR, CAN bus, A*, VFH, TF, SLAM, RVIZ, Raspberry Pi

Citation