@@ -7,42 +7,47 @@ https://user-images.githubusercontent.com/22712178/187902004-480397cc-460f-4d57-
7
7
8
8
GISNav is a ROS 2 package that enables map-based visual navigation for airborne drones ** in a simulation environment** .
9
9
10
- GISNav provides an * accurate* ** global** position for an airborne drone by visually comparing frames from the drone's
11
- nadir-facing camera to a map of the drone's * approximate* global position retrieved from an underlying
12
- GIS system.
10
+ GISNav provides a * precise* global position for an airborne drone by visually comparing frames from the drone's
11
+ nadir-facing camera to a map of the drone's * approximate* global position retrieved from an underlying GIS system.
13
12
14
13
# Mock GPS Example
15
14
16
- The below steps demonstrate how GISNav's ` MockGPSNode ` ROS 2 node enables GNSS-free flight with PX4 Autopilot's
17
- [ Mission mode ] [ 1 ] in a SITL simulation.
15
+ The below steps demonstrate how GISNav enables GNSS-free flight with PX4 Autopilot's [ Mission mode ] [ 1 ] in a SITL
16
+ simulation.
18
17
19
- You will need to have [ NVIDIA Container Toolkit ] [ 2 ] for Docker installed.
18
+ You will need to have the [ docker compose plugin ] [ 2 ] and [ NVIDIA Container Toolkit ] [ 3 ] installed.
20
19
21
20
[ 1 ] : https://docs.px4.io/v1.12/en/flight_modes/mission.html
22
-
23
- [ 2 ] : https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html
21
+ [ 2 ] : https://docs.docker.com/compose/install/linux/
22
+ [ 3 ] : https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html
24
23
25
24
## Build and run SITL simulation
26
25
26
+ Build the Docker images:
27
27
``` bash
28
- git clone https://github.com/hmakelin/gisnav-docker .git
29
- cd gisnav-docker
30
- docker- compose -f docker-compose.yaml -f docker-compose.demo.yaml build sitl
28
+ git clone https://github.com/hmakelin/gisnav.git
29
+ cd gisnav
30
+ docker compose build px4 qgc mapserver micro-ros-agent gisnav
31
31
```
32
32
33
- Once the ` sitl ` image has been built, run the ` mapserver ` and ` sitl ` services:
34
-
33
+ Run GISNav along with supporting services:
35
34
``` bash
36
- docker-compose -f docker- compose.yaml -f docker-compose.demo.yaml up -d mapserver sitl
35
+ docker compose up px4 qgc mapserver micro-ros-agent gisnav
37
36
```
38
37
39
- > ** Note** :
40
- > * The build for the ` sitl ` image takes a long time.
41
- > * The ` mapserver ` container needs to download roughly 1 GB of high-resolution aerial imagery, so it may take some
42
- > time until it starts serving the WMS endpoint.
38
+ > ** Note**
39
+ > * The build for the ` px4 ` and ` gisnav ` images may take a long time.
40
+ > * The ` mapserver ` container needs to download roughly 1 GB of high-resolution aerial imagery when ran for the first
41
+ > time, so it may take some time until it starts serving the WMS endpoint.
42
+ > * If the Gazebo and QGroundControl windows do not appear on your screen you may need to expose your `` xhost `` to your
43
+ > Docker containers (see e.g. [ ROS GUI Tutorial] [ 4 ] ):
44
+ > ``` bash
45
+ > for containerId in $( docker ps -f name=gisnav -q) ; do
46
+ > xhost +local:$( docker inspect --format=' {{ .Config.Hostname }}' $containerId )
47
+ > done
48
+ > ` ` `
43
49
44
- [ 4 ] : https://hub.docker.com/r/hmakelin/gisnav-sitl
45
- [ 5 ] : https://hub.docker.com/r/hmakelin/gisnav-mapserver
50
+ [4]: http://wiki.ros.org/docker/Tutorials/GUI
46
51
47
52
# # Upload flight plan via QGroundControl
48
53
@@ -52,11 +57,9 @@ Docker container, and then start the mission.
52
57
53
58
# # Simulate GPS failure
54
59
55
- > ** Warning** Do not attempt this on a real flight - simulation use only.
56
-
57
60
Wait until the drone has risen to its final mission altitude. You should see a visualization of the GISNav-estimated
58
- field of view projected on the ground appear. You can then try disabling GPS from the * nsh * console running on the drone
59
- through your [ MAVLink Shell ] [ 6 ] * (accessible e.g. through QGroundControl > Analyze Tools > MAVLink Console)* :
61
+ field of view projected on the ground appear. You can then try disabling GPS through your [MAVLink Shell][5]
62
+ * (accessible e.g. through QGroundControl > Analyze Tools > MAVLink Console)* :
60
63
61
64
` ` `
62
65
failure gps off
@@ -73,14 +76,14 @@ listener sensor_gps
73
76
If the printed GPS message has a ` satellites_used` field value of ` 255` , your PX4 is receiving the mock GPS node output
74
77
as expected.
75
78
76
- [ 6 ] : https://docs.px4.io/main/en/debug/mavlink_shell.html#qgroundcontrol
79
+ [5 ]: https://docs.px4.io/main/en/debug/mavlink_shell.html#qgroundcontrol
77
80
78
81
# Documentation
79
82
80
- See the [ latest developer documentation] [ 7 ] for information on how to setup a local environment for GISNav development,
83
+ See the [latest developer documentation][6 ] for information on how to setup a local environment for GISNav development,
81
84
for code examples and API documentation, and for contribution guidelines.
82
85
83
- [ 7 ] : https://hmakelin.github.io/gisnav
86
+ [6 ]: https://hmakelin.github.io/gisnav
84
87
85
88
# License
86
89
0 commit comments