This ROS package is the implementation of the navigation algorithm illustrated in the article An Approach to Robust INS/UWB IntegratedPositioning for Autonomous Indoor Mobile Robots, Liu J, Pu J, Sun L, He Z., Sensors (Basel). 2019;19(4):950. Published 2019 Feb 23. doi:10.3390/s19040950 using Husky platform as benchmark
In order to use this package you should have ROS installed in your system. Additionally this package depends on some standard python libraries and two other packages used for the UWB Gazebo plugin which are gazebosensorplugins and gtech_msgs both by valentinbarral. Script dependencies.sh should set everything you need
chmod +x ./dependencies.sh && ./dependencies.sh
You should first set all the environmental variables for Gazebo to work correctly by running setup.bash in your workspace root folder
chmod +x ./setup.bash && ./setup.bash
And then launch the script start_all.sh which will start:
- Gazebo with Husky model in an empty world with UWB antennas
- The navigation node node_sage-husa.py
- rqt_multiplot with rqt_multiplot.xml config in order to monitor the filter behaviour
- Publisher for Husky velocity command in order to keep the robot in a circular uniform motion
chmod +x ./start_all.sh && ./start_all.sh
In order to start visualizing data in rqt plot you should hit the play button on the top right of each graph
Contains Python scripts which performs navigation. In particular node_sage-husa.py sets the node up and shfaf.py contains the filter class.
Contains data exported as csv of simulation run with different filter configurations
Contains roslaunch script to spawn husky with IMU and UWB tag (spawn_husky_uwb.launch, description.launch), Husky controls (control.launch), and to launch the empty world with UWB antennas in place (uwb_empty.launch)
Contains Husky urdf xacro model
Contains different world configuration