This ROS node for localization using a set of the DecaWave EVK1000. This ROS node uses known anchor positions to solve for the position of a tag. This approach uses a non-linear optimization method to determine the position of the tag which makes it more resilient to noise than naive geometric approaches. Also, I use Kalman filter to reduce the noise in the position signal.
cd $CATKIN_WS
git clone https://github.com/wallarelvo/decawave_localization.git
cd decawave_localization
pip install -r requirements.txt
- Turn on three or more anchors and one tag
- Record the locations of the anchors relative to a known origin in
launch/localize.launch
or inparam/demo.yaml
- Run
roslaunch decawave_localization localize.launch
with the appropriate parameters for your current setup - Open RViz or run
rostopic echo /radio_pose
to see the current pose of your tag
In param/demo.yaml
you will a list of customizable parameters such as the
the transition matrix, observation matrix, initial state estimate, and initial
covariance estimate used for the Kalman filter. You should change this based
on the setup of your system.