@@ -17,9 +17,12 @@ Prerequisites
17
17
CUDA versions with the ``nvidia-smi `` command line utility. If you don't have it installed, follow the `NVIDIA CUDA
18
18
Installation Guide for Linux <https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html> `_.
19
19
20
+ .. _PX4 Autopilot :
21
+
20
22
PX4 Autopilot
21
23
===================================================
22
- PX4 **v1.13 ** is the only autopilot that is currently supported by GISNav.
24
+ PX4 **v1.13 ** is currently supported by GISNav. Earlier versions might work, but the :class: `.MockGPSNode ` demo requires
25
+ v1.13.
23
26
24
27
Follow the PX4 instructions to setup your `Ubuntu Development Environment
25
28
<https://docs.px4.io/master/en/simulation/ros_interface.html> `_ with `Fast DDS
@@ -78,7 +81,7 @@ better either through the PX4 shell, through QGroundControl, or in the
78
81
.. _ROS 2 Workspace :
79
82
80
83
ROS 2 Workspace
81
- ===================================================
84
+ ___________________________________________________
82
85
GISNav requires ROS 2 to communicate with PX4 Autopilot and is therefore structured as a ROS 2 package.
83
86
84
87
Follow the `PX4 instructions to setup ROS 2 and the PX4-ROS 2 bridge
@@ -99,7 +102,7 @@ manual repetition:
99
102
.. _PX4-ROS 2 Bridge :
100
103
101
104
PX4-ROS 2 Bridge
102
- ===================================================
105
+ ___________________________________________________
103
106
The default configuration of the PX4-ROS 2 bridge is not sufficient for GISNav. The bridge must be reconfigured and
104
107
the ``micrortps_agent `` re-generated.
105
108
@@ -156,7 +159,7 @@ folders. You must configure the following send and receive flags for the followi
156
159
script to automatically configure the above topics before building the PX4 SITL target.
157
160
158
161
PX4-ROS 2 Bridge Troubleshooting
159
- ___________________________________________________
162
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
160
163
161
164
Ensure you have your new workspace sourced before moving on to next steps:
162
165
@@ -194,7 +197,7 @@ before rebuilding again:
194
197
want to restart ``micrortps_agent ``.
195
198
196
199
gscam
197
- ===================================================
200
+ ___________________________________________________
198
201
199
202
The ``typhoon_h480 `` build target for Gazebo SITL supports UDP `video streaming
200
203
<https://docs.px4.io/master/en/simulation/gazebo.html#video-streaming> `_ . Here we will use ``gscam `` to publish the
@@ -221,14 +224,41 @@ with the provided configuration files:
221
224
on how to create a custom camera calibration file if you do not want to use the provided example
222
225
223
226
gscam Troubleshooting
224
- ___________________________________________________
227
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
225
228
226
229
.. note ::
227
230
*Unverified *:
228
231
When GISNav is running, it will try to exit cleanly when ``Ctrl+C `` is pressed. However, if the combination is
229
232
mashed quickly in succession the clean exit may fail and leave some subscriptions hanging. In this case you may
230
233
want to restart ``gscam ``.
231
234
235
+ .. _ArduPilot :
236
+
237
+ ArduPilot
238
+ ===================================================
239
+ ArduPilot is supported as an alternative to `PX4 Autopilot `_. The following tutorials should get you started with an
240
+ ArduPilot SITL simulation environment:
241
+
242
+ * `Setting up SITL on Linux <https://ardupilot.org/dev/docs/setting-up-sitl-on-linux.html >`_
243
+ * `Using Gazebo simulator with SITL <https://ardupilot.org/dev/docs/using-gazebo-simulator-with-sitl.html >`_
244
+ * `Connecting with ROS <https://ardupilot.org/dev/docs/ros-connecting.html >`_
245
+
246
+ As of ``gisnav `` v0.61, :class: `.MockGPSNode ` can be used in the ArduPilot SITL simulation included in the
247
+ `gisnav-docker <https://github.com/hmakelin/gisnav-docker >`_ image. The included ``gazebo-iris `` model only has a static
248
+ camera. Because the camera is not stabilized, it likely won't be reliable enough to act as a full replacement for GPS in
249
+ ArduPilot's mission mode, while loitering will work. Use the following command to start the ``mock_gps_node `` with the
250
+ ArduPilot bridge:
251
+
252
+ .. code-block :: bash
253
+
254
+ ros2 run gisnav mock_gps_node --mavros --ros-args --log-level info \
255
+ --params-file src/gisnav/config/typhoon_h480__ksql_airport_ardupilot.yaml
256
+
257
+
258
+ .. note ::
259
+ You may have to enable virtual joystick from QGroundControl settings and have it centered to maintain altitude in
260
+ ArduPilot's Loiter mode in the SITL simulation.
261
+
232
262
.. _QGroundControl :
233
263
234
264
QGroundControl
@@ -392,28 +422,6 @@ Test your MapServer WMS service by opening the capabilities XML in your browser:
392
422
393
423
firefox " http://localhost:80/?map=/etc/mapserver/wms.map&service=WMS&request=GetCapabilities"
394
424
395
- Docker commit the MapServer container with preloaded maps
396
- --------------------------------------------------------------
397
- To upload the image preloaded with maps to Docker Hub, first commit the container to an image:
398
-
399
- .. code-block :: bash
400
-
401
- export CONTAINER_ID=$( docker ps -q -f name=$CONTAINER_NAME )
402
- export IMAGE_NAME=gisnav-mapserver
403
- docker commit $CONTAINER_ID $IMAGE_NAME
404
-
405
- Then push the image to Docker Hub:
406
-
407
- .. note ::
408
- Replace ``hmakelin `` with your own user account name, and ``latest `` with your own tag
409
-
410
- .. code-block :: bash
411
-
412
- export DOCKER_HUB_USER=hmakelin
413
- export tag=latest
414
- docker image tag $IMAGE_NAME $DOCKER_HUB_USER /$IMAGE_NAME :$tag
415
- docker image push $DOCKER_HUB_USER /$IMAGE_NAME
416
-
417
425
GISNav
418
426
===================================================
419
427
@@ -452,11 +460,19 @@ Build the GISNav package:
452
460
Once GISNav is installed, you can run the included :class: `.MockGPSNode ` either directly with ``ros2 run ``:
453
461
454
462
.. code-block :: bash
463
+ :caption: Run GISNav with PX4 microRTPS bridge
455
464
456
465
cd ~ /px4_ros_com_ros2
457
466
ros2 run gisnav mock_gps_node --ros-args --log-level info \
458
467
--params-file src/gisnav/config/typhoon_h480__ksql_airport.yaml
459
468
469
+ .. code-block :: bash
470
+ :caption: Run GISNav with ArduPilot MAVROS
471
+
472
+ cd ~ /px4_ros_com_ros2
473
+ ros2 run gisnav mock_gps_node --mavros --ros-args --log-level info \
474
+ --params-file src/gisnav/config/typhoon_h480__ksql_airport_ardupilot.yaml
475
+
460
476
Or using the provided launch file:
461
477
462
478
.. code-block :: bash
0 commit comments