Controlling a Robot
Configuring a Definition
The first step to controlling your robot is to create a definition, which characterises a specific action you want your robot to perform. The DroneDeploy Robotics Portal provides two mechanisms with different characteristics for telling your robot to do something:
Commands are the best way of telling your robot to do something. Commands are a high-level mechanism, and are efficient, performant, offer good feedback and reliability, and provide a simple and consistent experience when being called from your own applications via API. You should generally use Commands for most situations where you want to control your robot.
Controls are an older, lower-level mechanism; they are used for controlling your robot via a Gamepad, and for transparent bridging of ROS telemetry between two robots, but for all other situations, you are probably better to use a Command instead.
Invoking the Definition
Having created a definition for a Command or Control, you will still need to actually invoke it somehow. The simplest way is to create a Button, which will appear in the DroneDeploy Robotics Portal, and can be clicked to run the Command:
See here for information about Buttons.
Instead of manually clicking a button, you can instead configure an Event to execute a Command automatically. Events can be used to detect the occurrence of a particular condition onboard a robot, and to take action in response to that condition; for more information refer here.
Finally, you can also invoke Commands and Controls programmatically, via DroneDeploy APIs:
- Commands may be invoked using the gRPC Command Service.
- Controls may be invoked using the gRPC Control Message Service.