So playing around with some python code and trying to get some basics down I came across a few missing functions that are either really necessary or very good to have. So thought we can collect function requests here so the Sphero team knows what we are looking for.
So for me necessary would be:
shutdown - send the RVR into deep sleep meaning power it down. This would need to have a parameter to wait some seconds so when you have a Raspberry connected you can gracefully shut that down before power goes out. (I saw a discussion in another thread that there seems to be a message you can send already that can do this, but no clue how send this as raw data, so maybe someone has an idea?)
drive by distance - let the RVR drive a certain distance. Probably with a parameter in mm or cm? Don’t think that a precision down to mm is realistic so down to cm would be great.
drive to x,y - let the RVR drive to a certain point in its own coordinate system. Tried to implement this by getting heading from the line of the current location to a target point, but ran into other issues here. One of the problem here is also that setting the heading only works with integers, so it is quite low precision here. When driving a few cm a heading in integer degrees does not matter much, but if you are half a degree off and drive several meters being half a degree of can miss the wanted target location by a lot. Can be circumvented by checking heading along the way and correcting it when it is off. But that is a lot of data going over the serial line so it makes more sense to have this build in the RVR.
set turn speed - it seems when changing the heading the RVR always does that full speed. So quite often the heading is off a bit. Or when turning on the spot the RVR actually drives a bit into some random direction while turning. For my project I really need it to be able to turn on the spot and not change location while doing so.
enable/disable bluetooth - from another thread we know that bluetooth is always active and shares the serial line. When using a Raspberry for example think most will use the bluetooth of the Raspberry for communication so it makes no sense keeping the bluetooth of the RVR active.
Functions that are nice to have would be:
drive curve - essentially you can slice down a curve into small straight segments and that would work, but some way to really drive a curve/circle would make it much much easier and nicer.
set heading to point goes hand in hand with the drive to x,y. So target coordinates as a parameter and the RVR turns to face that point.
Hope some of these can be considered. Some are a blocker for me at the moment. So spending time to build everything else around it at the moment, but to complete what I want to do with the RVR I probably reach a wall soon till the next firmware update. If anyone else has more suggestions let us collect all here