We've added a concept of controls (or helpers) to make working with the sdk convenient, we traditionally expose the sdk commands as a 1 to 1 with how the firmware team exposes their commands. As a result, some of the commands are a bit complicated, which is why we added the controls.
We have 4 types of controls that are available in some, not all, of the SDKs, which include (1) a control for driving, (2) working with LEDs, (3) sensor streaming and (4) sending/receiving IR commands. In the How Tos, you’ll see samples that show how to do both using commands directly OR using a control.
The drive controller helps to condense actions like turning, driving and stopping into "human readable" commands, rather than requiring you to work specifically with the bytes that initiate and control these actions.
The LEDs controller helps you by configuring named, "human readable" colors and LED names, rather than requiring you to configure the specific bytes that correspond with each LED's position and the colors you would like to set them to.
Sensor streaming is one of the more complicated features of RVRs API, and we've tried to hide (or encapsulate) this complexity into the controller. The sensor streaming controller allows you to simply state what sensors you want to stream, and let us take care of the rest.
Sending/Receiving IR Commands
The infrared controller puts the commands for stopping and starting streaming, as well as for scanning for IR signals into "human readable" string commands, as opposed to requiring you to work with the command IDs.