Circuit was designed based on the Linorobot circuit found here.
Components such as controller, IMU, motor driver are attached by 2.54mm pin female connectors on the PCB for modularity to aid future maintenance, able to be swapped out as required.
Main edit was to use a TB6612FNG for the motor driver, it was chosen as it could output an adequate average of 1.2A for two DC motors, and small footprint fit the PCB well. It was estimated that each DC motor would draw 3-500mA.
Source: Linorobot Base Controller
Plan was to use a 12v 6800mAH Li-ion pack as it was the most value for money. The pack has an onboard over-discharge, short protection and regulates charging to all cells by a single plug connector! Connection from battery to the PCB would be by a 5.5x2.1mm barrel plug connector which was designed in.
An I2c connection between the IMU and Teensy. Pullup resistors were designed in for resistors to be added later if there are any issues. A guide for calculation of the resistor value can be found here.
The Linorobot control will use at max approximately 2.5A, a 5V 3A DC-DC was designed onboard the PCB. The DC-DC circuit was designed based on the AIC2510-50GM5TR datasheet, with values selected for fixed a 5v configuration.
A copper cutout for the Inductor was done reduce on noise induced.
For connections to the two DC encoder motors, spring clamp terminal blocks were used. The PCB will not require a screwdriver or soldering to connect motor wires!
The Teensy 3.2 requires a USB cable to the RPI. As a possibility to save on one USB cable, a ROS SPI node will be required, and some development to Teensy firmware. SPI connection was designed in between RPI and Teensy to be used later.