A package performs random walk coverage with an unmanned ground vehicle (UGV).
- 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 ugv_random_walk ugv_random_walk.launch
to launch the ugv_random_walk 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 ugv_random_walk.yaml that allows to configure the behavior of the ugv_random_walk node.
ugv_random_walkThe ugv_random_walk performs coverage using the random walk algorithm. The random walk is a mathematical movement model, where an agent moves straight for a specific distance. Then, it changes its direction randomly into a direction that is clear of obstacles and moves straight again. If it arrives at the environment boundary, it reflects to continue its walk. When the parameter single_target is set to true, the UGV succeeds once a target has been found and returns the target ID and position.
Action Goalugv_coverage/goal (cpswarm_msgs/CoverageGoal)
- A goal that starts the random direction coverage behavior.
Action Resultugv_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 Calledobstacle_detection/get_clear_sector (cpswarm_msgs/GetSector)
- Get the circular sector that is clear of obstacles.
- Get the coordinates of the closest boundary in order to reflect from it.
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 that a UGV travels in one step.
- 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.