ROS 2 interface example for an externally aided tactical grade INS with Dual-Antenna GNSS receiver and RTK corrections via a one-shot launch file.
- MicroStrain CV7-INS
- Black c-series dev board
- Septentrio Mosaic GNSS Receiver - either:
- Mosaic Go heading eval kit (Mosaic H receiver)
- Mosaic Go X5 eval kit (Mosaic X5 receiver)
- SMA - SMA GNSS connector cable
- 2x L1/L2 or Full Band GNSS Antennas
- SensorCloudRTK API
- Linux machine running Ubuntu 22.04 or later
- Install ROS2 and create a workspace: Configuring Your ROS2 Environment
- Clone the repository into your workspace:
git clone https://github.com/ianjmoore/modular_ins.git ~/your_workspace/src/modular_ins- Install rosdeps for this package:
rosdep install --from-paths ~/your_workspace/src -i -r -y - Build your workspace:
cd ~/your_workspace
colcon build
source ~/your_workspace/install/setup.bashTip
The source command will need to be run in each terminal prior to launching a ROS node.
Two launch files are provided for recommended use for specific applications:
- Dual Antenna Heading (GPS compass) with Mosaic H to CV7-INS
- Recommended for hovering UAS that require static heading, vehicles with low dynamics, or strong magnetic interference
- Ex: VTOL / Quadcopter UAS, Differential drive wheeled vehicles, QUGV, USV, low jamming & spoofing environments
- Recommended for hovering UAS that require static heading, vehicles with low dynamics, or strong magnetic interference
ros2 launch modular_ins mosaic_h_cv7_ins_ext_heading.py- Full Band GNSS with Mosaic X5 + CV7-INS Magnetometer Heading
- Recommended for highest interference / GNSS contested environments (jamming, spoofing), fixed-wing UAS that do not hover, Ackerman steering geometry vehicles, low magnetic interference
- Ex: Fixed-wing UAS, vehicle in known GNSS contested environment, high-multipath lawn mower, few moving ferro-magnetic moving parts near INS
NOTE: Dual Antenna Heading not supported on Mosaic X5
- Recommended for highest interference / GNSS contested environments (jamming, spoofing), fixed-wing UAS that do not hover, Ackerman steering geometry vehicles, low magnetic interference
ros2 launch modular_ins mosaic_x5_cv7_ins_mag_heading.pyThe easiest way to develop in docker while still using an IDE is to use VSCode. Follow the steps below to develop on this repo in a docker container.
- Install the following dependencies:
- Open VSCode and install the following plugins:
- Open
/workspace_dir/src/modular_ins/directory in VSCode - A prompt should appear, and click "Reopen in devcontainer"
- If not, follow Docker Troubleshooting below
- Once the project is open in the container, it will take some time to automatically install the rosdeps inside the container
- Build your workspace:
# cd ~/your_workspace #TODO: Check if recommended
colcon build
source install/setup.bashTip
The source command will need to be run in each terminal prior to launching a ROS node.
- Proceed to Run Instructions
- Click the blue
><icon in the bottom left corner of the window- Choose
Reopen In Container
- Choose
- If that does not work or if VS Code keeps prompting you to open a devcontainer:
- Close VSCode
- In terminal, navigate to
/your_workspace_dir/src/modular_ins/ - Run
code . - [If prompted] select
modular_ins/.devcontainer/devcontainer.jsonas container settings file - You should be prompted to "Reopen in devcontainer"
- If still having troubles, open a ticket on the MicroStrain Support Portal or write to MicroStrainSupport@HBKWorld.com