|
Package Summary
Tags | No category tags. |
Version | 1.3.0 |
License | Apache License 2.0 |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/cpswarm/swarm_behaviors.git |
VCS Type | git |
VCS Version | kinetic-devel |
Last Updated | 2021-02-04 |
Dev Status | DEVELOPED |
CI status | Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Micha Sende
Authors
- Micha Sende
ugv_random_walk
This package performs random walk coverage with an unmanned ground vehicle (UGV). It is part of the swarm behaviors library.
Dependencies
This package depends on the following message definitions:
The following library packages of the swarm behaviors library are required:
- swarm_behaviors_position
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:
- area_provider
- obstacle_detection
Further required packages are:
Execution
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.
Nodes
ugv_random_walk
The 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 Goal
-
ugv_coverage/goal
(cpswarm_msgs/CoverageGoal) A goal that starts the random direction coverage behavior.
Action Result
-
ugv_coverage/result
(cpswarm_msgs/CoverageResult) ID and position of the target that has been found.
Subscribed Topics
-
target_found
(cpswarm_msgs/TargetPositionEvent) Position and ID of a target detected by the target monitor. Only subscribed whensingle_target
is set totrue
.
Services Called
-
obstacle_detection/get_clear_sector
(cpswarm_msgs/GetSector) Get the circular sector that is clear of obstacles. -
area/closest_bound
(cpswarm_msgs/ClosestBound) Get the coordinates of the closest boundary in order to reflect from it.
Parameters
-
~loop_rate
(real, default:5.0
) The frequency in Hz at which to run the control loops. -
~queue_size
(integer, default:1
) The size of the message queue used for publishing and subscribing to topics. -
~single_target
(boolean, default:true
) Whether the algorithm will succeed / terminate once a target has been found. -
~step_size
(real, default:3.0
) The distance in meter that a UGV travels in one step. -
/rng_seed
(integer, default:0
) The seed used for random number generation. In the default case, a random seed is generated.
Code API
Changelog for package ugv_random_walk
1.3.0 (2020-01-03)
1.2.0 (2019-12-29)
- Changed: Refactor library structure
- Changed: Read RNG seed from parameter, use random seed otherwise
- Changed: Return state aborted once coverage finishes
- Changed: Check if movement was successful
- Changed: Targets handled by swarm functions library
- Fixed: Correctly handle state of behavior algorithm
- Fixed: Force C++11
- Fixed: Returning of target
- Initial release of ugv_random_walk
- Contributors: Micha Sende
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
swarm_behaviors |
Launch files
- launch/ugv_random_walk.launch
-
- id [default: 1]
- output [default: log]