Setting up Payload Delivery with Gripper
Last updated
Last updated
The following configuration must be implemented by the drone manufacturer.
Payload delivery works by having a specified Mission item (e.g. Gripper) that sends out the Release mechanism vehicle command (e.g. Gripper Deploy), and having either internal/external entity sending back the acknowledgement (Vehicle Command Ack), which then allows a mission to progress to the next item.
Understanding of the detailed mechanism is not necessary for following the instructions below, but having a brief overview of the architecture by viewing the diagram above can be helpful for further insights.
If you aren't familiar with this concept, check out the Creating Airframe Configurations for APX4 documentation, which provides also instructions on how to load the airframe configuration to the Auterion Skynode using the Auterion Developer Tools. From this point, we will be setting up an imaginary airframe 1300000_my_custom_airframe
for the payload delivery feature.
Payload Delivery feature isn't enabled by default. To enable, insert the following lines into the airframe file.
This would allow the Auterion PX4's startup script to detect that the payload delivery gripper mechanism is enabled, and would run the appropriate module to enable this feature.
By default, the Servos connected to the vehicle will be in a disarmed position when the vehicle is disarmed. However, since operator needs to open / close the gripper for mounting the payload while the vehicle is disarmed, we need to set a parameter to allow pre-arming, which allows Servos to move freely when disarmed, but not the motors.
Some mechanism specific settings need to be modified to make sure the system is aware of the mechanism's physical properties. Since every gripper works differently (speed / range of motion / behavior), you should not skip this step!
You need to select the type of the gripper. Currently only the Servo type is available, but in the future other types of gripper mechanisms might be supported.
This is the table of parameter value to set according to the gripper type.
Gripper Type | PD_GRIPPER_TYPE value |
---|---|
Undefined | -1 |
Servo | 0 |
Paste the code below into the airframe file to set the gripper type to "servo":
You need to specify an actuation time, which is the time it takes to open or close. As most grippers don't have a sensor to detect successful actuation (close/opening), the payload delivery feature will rely on this value to estimate gripper's position.
To measure gripper actuation time, go to the MAVLink Shell in AMC and execute the following code while the drone is on a bench and the propellers are removed:
Then observe how long it takes for the gripper to go from open position to closed position, and vise versa for opening. Note down the actuation time for both cases and choose the maximum measurement for the actuation time.
As an alternative test method, you can utilize the Joystick capability of AMC to trigger gripper open and close actions as well.
If you get an error message like "[payload_deliverer] not running", make sure that you have gone through the setup procedures above and rebooted the vehicle. Or alternatively, you could run payload_deliverer start
command in the nuttx shell to bypass reboot.
After measuring the opening and closing actuation times, add the maximum value to the airframe file as shown below. The default value for PD_GRIPPER_TO
is 3 seconds.
To use Auterion's payload delivery feature as part of a mission, it is important to make sure that a potential actuation failure does not cause the mission to be halted or interrupted.
For missions Auterion has therefore added an additional safeguard in form of a timeout, after which a mission is continued even if the gripper's successful actuation acknowledgement (which is published by the payload_deliverer
module in charge of the Payload Delivery feature) is not received.
Possible causes could be actuator failures (currently not the case since Gripper state feedback sensor is not supported), but also internal communication errors (Auterion PX4's internal messaging system can in rare-cases drop the acknowledgement message).
Currently, for PWM Grippers we rely on the Gripper Actuation Time alone to determine whether the actuation was successful or not.
Note that this timeout must be long enough to allow the delivery mechanism to actuate under all nominal conditions. Therefore chose a timeout that is larger than the Gripper Actuation Time.
Once an appropriate timeout value is known, add it with the following line to the airframe configuration file. The default value for MIS_PD_TO
is 5 seconds.
You must make sure that Payload deliverer module's Gripper close/open command actually closes/opens the gripper. If not set up correctly, gripper may grab the package instead of releasing it during the release phase.
Execute the following command in the AMC's MAVLink Shell:
Check if the gripper moves to an 'open' position, releasing the pacakge.
Execute the following command in AMC's MAVLink Shell:
Check if the gripper moves to the 'close' position, grabbing the package.
If you noticed that the open/close tests above results in a different action of the actual gripper, you must re-configure the Gripper mixer.
Note, if the gripper doesn't move at all, make sure you followed the full procedure in the Gripper Integration documentation and Configuring the Airframe file section above.
As the only case of failure can be mixing up the release/grab, for this you would simply need to apply the reversed gripper mixer (indicated by the -10000
in the line starting with O: ...
below.
Then follow the rest of the process of to load the custom mixer in the airframe & apply it to your vehicle.