They're not great on hard surfaces at all, especially uneven tile floors where one wheel might catch more than the others. You can still do sideways and diagonal translation, but it's very hard to control. (Since I'm using a cheap gamepad, it's hard to control even on carpet.) The printed parts are all ABS, and that's pretty hard.
Three things I've thought about are:
- A softer roller surface, either by printing in a softer material, or coating them with something like silicone or tool-dip.
- More weight. That would help with traction.
- Closed-loop control on the wheels. PWM voltage control gives whatever torque response the gearmotors have. I suspect it's not linear. In practice, some wheels tend to spin quickly once they lose traction, or some wheels will start moving faster than others. I bet with encoders, the MCU could adjust torque to get the actual wheel motion closer to the command input.
Glad you like it!