This Gazebo plugin implements a simple model of a sensor that provides range, bearing and elevation from a robot sensor to a fixed location. The plugin was developed to simulate an acoustic ranging system to support the VMRC project.
The model plugin is associated with a specific link in the robot URDF/Xacro definition file. The fixed location of the range/bearing target is defined in the plugin SDF using the beaconPoint
tag. The geometry of the scenario is used to determine the range [m], bearing [rad] and elevation [rad] from the robot (the link specified by the bodyName
tag) to te beaconPoint
.
The range, bearing and elevtion is reported as a three element std_msgs::Float32MultiArray message, where the range = element 0, bearing = element 1, elevation = element 2.
Independent Gaussian noise is added to each measurment. The noise is generated using Gazebo's sensor noise functionality.
The repository contains a working example...
roslaunch gazebo_rangebearing_plugin box.launch
which demonstrates the configuration of the plugin. The boxbot.urdf defines an example robot (just a small box) and configures the plugin to be associated with the robot model.