Sphero has a new robot the RVR. This is a serious, robust, and capable small tank robot for a good price.
IMO this is a good robot for high school and university level introductory work. But it really needs a ROS interface.
Creating the ROS interface would be a good undergrad or advanced high school project. I’d pursue it myself but have other activities over the next months that limit the time I can spend on it. Plus, bluntly, I don’t know enough about ROS internals, working with URDF, etc to address this.
Here’s why I think the RVR should receive attention.
It provides a serial port for control by another controller mounted on the chassis. The serial API provides access to control the motors and read gyro, accel, imu, speed, velocity, and location. Sphero is saying a 1st quarter 2020 release will provide access to the magnetometer and other drive functions. The API also accesses power and drive status, and controls LEDs. The Sphero link above provides access to the documentation on the API.
Sphero has Python code that runs on the Raspberry Pi. I’ve reverse engineered the protocol for C++. I’ve run my code on an Up Board which is a quad core 1.7 Ghz SBC mounted on the RVR. My code is at https://bitbucket.org/rmerriam/rvr-cpp/src/master/.
If someone is interested I can be of some assistance.