Drivetrain PID Control
Path generation for the mobile base of the robot will be a process executed by ROS. The generated path will be a sequence of linear velocities and angular velocities for the mobile base to execute. This sequence of commands will then be interpreted by the drive train MCU to control the motor output. If the actual path of the mobile base deviates from the path calculated by ROS a new path will have to be calculated to achieve accurate positioning.
The role of the PID controller is to optimize the path generation process by altering motor output to closely adhere to the calculated path. This will reduce the need for constant path recalculations. Meaning less processing power will be required by ROS to achieve proper positioning.
The drive train PID controller will be implemented using an Arduino Mega MCU and the quadrature rotary encoders built into the drive train motors. The MCU will receive input velocities from the ROS mobile base module through RS-232 serial connection.