Skip to the content.

Representative Image

Abstract

Localization using magnetic anomalies is a promising approach for GPS-denied navigation, particularly in challenging environments such as indoor spaces, heavily forested areas, and long-horizon mission scenarios. However, the high cost of precision magnetometers and the complexities of calibration, influenced by distortions from both the platform and the surrounding environment, present notable challenges like wider access for the broader community and the rapid advancement of research in the field. Additionally, representative simulations of precision magnetometers are scarce, if not unavailable. However, simulating magnetic readings is not straightforward, at least not with the accuracies that GPS-denied navigation would require. Given the challenges in accurately modeling the interaction between magnetic fields and robots—particularly as current models often fall short for many applications—this paper introduces a neural network-based sensor model designed to account for environmental factors and internal and external magnetic field influences. The proposed approach also includes a virtual experimental framework implemented in NVIDIA Omniverse, providing a simulation environment where realistic, representative sensor measurements can be utilized for research and testing. This testbed is expected to serve as a tool for investigating magnetic-based navigation algorithms without requiring extensive physical setups. This testbed is released publicly for researchers to access and implement novel navigation and localization architectures.

Installation of Isaac Sim Environment

To run the simulation environment please visit the Github Repo for the environment provided. The installation instructions given in the repo are mirrored here.

To install the Isaac Sim MagNav Sim, first download the repo to create the environment. Extract these files to a folder you can easily locate: /home/user/MagNavIsaacSim

To run the robot sim environment, open NVIDIA’s Omniverse launcher and run Isaac Sim with the ROS2 Bridge Extension

Isaac Sim Launcher

Then navigate to the folder you extracted the files to in either the content explorer, or from File->Open. You will see the two following assets in the extracted folder:

Isaac Assets

Open the file called MagNavVirtualTestbed.usd which contains the environment used. You will see the environment which looks as follows:

Isaac Testbed

You can now move onto the ROS2 package installation to control the robot in the virtual environment.

Installation of Neural Based Magnetometer

To run the simulated magnetometer please visit the Github Repo for the magnetometer simulation provided. The installation instructions given in the repo are mirrored here.

To install the package you must git clone the repository into your workspace. This can be done as follows:

mkdir -p nn_magnetometer_ws/src && cd nn_magnetometer_ws/src
git clone https://github.com/aprilab-uf/nn_magnetometer
cd ../
colcon build --symlink-install

This will clone and build the package into the workspace. Do remember to source the workspace once you are done building to ensure you can see the package nodes. To run the magnetometer and a path follower to test the performance of the NN-based magnetometer run the following launch file (ensure the Isaac Sim environment is running live):

ros2 launch nn_magnetometer nn_test_sim.launch.yaml robot_namespace:="robot"

nn_magnetometer_node

To run the nn_magnetometer node, the easiest way is to run the launch file given. Some {robot_namespace} is required to namespace the topics. Make sure they are consistent between nodes you want to use. Once the package has been built you will have to have the following topics publishing:

Then you can run the following to launch the node:

ros2 launch nn_magnetometer nn_magnetometer.launch.yaml robot_namespace:="<robot_name>"

An example for the robot_name is:

ros2 launch nn_magnetometer nn_magnetometer.launch.yaml robot_namespace:="robot"

Now if you check the ROS 2 topics being published you should see a /robot/qtfm/field topic show up.

The following are the parameters and descriptions required for the node:

path_follower_node

Available in this package is also a path follower node that subscribes to a /{robot_namespace}/enu/pose topic and publishes a /{robot_namespace}/cmd_vel topic for a TurtleBot4. These topic conventions follow what is expected on a TurtleBot4. To run this path follower the following topics need to be subscriptable:

Then a launch file can be used to launch the path following node as follows:

ros2 launch nn_magnetometer path_follower.launch.yaml robot_namespace:="<robot_name>"

The following are the parameters and descriptions required for the node: