@Caleb: I see you're not going small with this one! 4 inch wheels!
I don't know what's considered big or small in this arena -- these were the smallest omni-directional wheels that I liked -- alhough there are some smaller ones out there. The thing is that once I actually have something up and running, I'll better know what direction to go in (no pun intended)
Now we are at EE Times, I presume there is no limitation to what chip maker we can talk about?
This board is so cheap I do not have to worry about blowing it up, except for getting a replacement, it took a couple of months for the order tpo arrive, hopefully stock levels in Europe are getting better.
Not sure what I will do with the beast yet, but I am certain something will come to mind.
The robots speed is limited in the same ways as driving a car at night is limited by the headlight range . So you have to work out the collision avoidance sensing distance , and use this in conjunction with the braking distance to determine the maximum "safe speed" . any where above this speed and you will have a non-zero velocity when robot_to_wall_range = zero . So you don't want to be too fast or too big.
About two years back I made robot base, using mostly "agricultural materials", basically a plywood base, 2 x 10" pneumatic wheels, 2 x castors, electric scooter motors, chain drive and a 12AH battery, The encoder was optical , using the sprocket teeth on the motor. At 100% modulation it would be a fast walking pace (but we limited it to ~25%) and weighed in around 6kgs
For sensors it had a magnetic compass, infrared short range, ultrasonic for long range, and some microswitches on a bumper bar for emergency shutdown.
The control was over a (wired) serial link using one of those Pololu M128 modules with the LCD and 5 buttons (we had UHF transceievers for later).
The algorithm that worked best basically used the range from the ultrasonic sensor, once this was less than 1m it would make a random left or right deviation of 10degrees , then keep going in the direction with longest range (It also remembered the best direction of the last two turns to bias the next turn direction) . In retrospect it would have been better to have stereoscopic sensors, and just veer in the direction of longest range. Using a single sensor and trying to remember the "best range" is fraught with difficulties.
So when it was trundling along you could step in front of it and it would go around you . And it would avoid walls most of the time, but would occasionally sideswipe walls or furniture.
Problem was during development it would always be crashing into walls or running over your toes, and the black rubber would leave skidmarks on the floor and walls, and tear flesh off your toes and ankles. And because of it's weight it would just buckle up the safety bumper and jam the microswitches.
So your little robot is probably about right with 4" wheels, small enough to nudge with your foot, light enough to bounce off walls and furniture, but big enough so you can work on it comfortably.