I finally got my RVR fully interfaced with my existing body of work for a Real Time Strategy game inspired interface and wanted to share plus request some help.
First up, Here is RVR working properly in its turning precision. I am utilizing a speed of 50 here for rollStart commands, and rollStop to stop the unit. Please observe when the unit stops, it gradually decelerates instead of abruptly stopping.
On the other hand, Here is what happens after I bump the speed up to 100 and use rawMotors(0,0) to stop the unit from rolling since rollStop has an imprecise rollout. From what I can gather, the rawMotors command does not fulfill the rollout requirement of the rollStop command and it is queued up into the RVR if that makes sense. Once the unit is told to turn, it begins the queued rollout while turning which is what is observed in the video. To purge the rollout I have tried:
- Sending a rollStop command AFTER the rawMotors(0,0) command so RVR verifies it is already stopped. This causes the RVR to lurch and actually FINISH the rollout prevented by rawMotors(0,0).
- Sending a rollStart command AFTER the rawMotors(0,0) command with a speed of 0, same thing causes a lurch.
- Sending rollStop or rollStart with a speed of zero before the rawMotors command stops the unit precisely, but still turns with rolllout.
- Any variation of rollStart/rollStop + rawMotors(0,0) + delays still results in a lurch or rollout when the rollStop inevitably has to play out.
I’m using a Raspberry Pi running the Sphero Nodejs SDK. Any advice on how to get this thing to turn on a dime while using rawMotors(0,0) to stop without the rollStop rollout would be much appreciated.