A package that performs random direction coverage with an unmanned aerial vehicle (UAV).
- Maintainer status: developed
- Maintainer: Micha Sende <sende AT lakeside-labs DOT com>
- Author: Micha Sende <sende AT lakeside-labs DOT com>
- License: Apache License 2.0
- Source: git https://github.com/cpswarm/swarm_behaviors.git (branch: kinetic-devel)
This package depends on the following message definitions:
The following library packages of the swarm behaviors library are required:
The following packages of the swarm functions library are required:
target_monitor (only if single_target=true)
The following packages of the sensing and actuation library are required:
Further required packages are:
Run the launch file
roslaunch uav_random_direction uav_random_direction.launch
to launch the uav_random_direction node.
The launch file can be configured with following parameters:
id (integer, default: 1)
- The identifier (ID) of the CPS used for name spacing in simulation.
output (string, default: screen)
Whether to show the program output (screen) or to write it to a log file (log).
In the param subdirectory there is the parameter file uav_random_direction.yaml that allows to configure the behavior of the uav_random_direction node.
uav_random_directionThe uav_random_direction performs coverage using the random direction algorithm. The random direction is a mathematical movement model, where an agent moves straight forward until it reaches an obstacle or the environment boundary. There, it changes its direction randomly into a direction that is clear of obstacles. When the parameter single_target is set to true, the UAV succeeds once a target has been found and returns the target ID and position.
Action Goaluav_coverage/goal (cpswarm_msgs/CoverageGoal)
- A goal that starts the random direction coverage behavior. It contains the altitude at which to operate.
Action Resultuav_coverage/result (cpswarm_msgs/CoverageResult)
- ID and position of the target that has been found.
Subscribed Topicstarget_found (cpswarm_msgs/TargetPositionEvent)
- Position and ID of a target detected by the target monitor. Only subscribed when single_target is set to true.
Services Calledarea/get_area (cpswarm_msgs/GetPoints)
- Get the area polygon.
- Get the circular sector that is clear of obstacles.
Parameters~loop_rate (real, default: 5)
- The frequency in Hz at which to run the control loops.
- The size of the message queue used for publishing and subscribing to topics.
- Whether the algorithm will succeed / terminate once a target has been found.
- The distance in meter to keep to the environment boundary.
- The seed used for random number generation. In the default case, a random seed is generated.
This work is supported by the European Commission through the CPSwarm H2020 project under grant no. 731946.