Skip to content

Commit 50de002

Browse files
committed
Further updates
Signed-off-by: Rob Fisher <[email protected]>
1 parent 0e06532 commit 50de002

File tree

1 file changed

+21
-14
lines changed

1 file changed

+21
-14
lines changed

tutorials/docs/navigation2_with_microstrain_gq7.rst

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,9 @@ The following XML shows the most simple version of adding a GQ7 to your robot al
208208

209209
An in-depth installation guide can be found on the `GQ7 manual <https://files.microstrain.com/GQ7+User+Manual/user_manual_content/installation/Installation.htm>`_, but we will provide a trimmed down guide for this tutorial.
210210

211-
TODO: Talk about mounting, maybe get Ian to help write some documentation on this?
211+
When mounting the GQ7, and antennas, you will need to measure the offsets between the GQ7 and the mount it is placed on, as well as the antennas and the mount they are placed on, and update the .urdf.xacro file we made above with those offsets.
212+
213+
**Note:** The GQ7 has axes printed on the case, in ROS if you are using the robot_description like we are using in this tutorial, **DO NOT** use those as a reference, instead use the `ROS body frame <https://www.ros.org/reps/rep-0103.html#coordinate-frame-conventions>`_.
212214

213215

214216
2- Configure your GQ7
@@ -479,7 +481,7 @@ We will not review the entire nav2 configuration file. Instead, we will start fr
479481

480482
Since the ``microstrain_inertial_driver`` and ``robot_description`` are already providing the full transform tree, we do not need to launch Nav2's localization launch file, nor do we need to amcl configuration, so that can be removed from the params file.
481483

482-
``bt_navigator`` needs to be configured to receive the odometry message from the GQ7 like so
484+
``bt_navigator``, ``controller_server``, and ``velocity_smoother`` need to be configured to receive the odometry message from the GQ7 like so
483485

484486
.. code-block:: yaml
485487
@@ -490,6 +492,17 @@ Since the ``microstrain_inertial_driver`` and ``robot_description`` are already
490492
odom_topic: gq7/ekf/odometry_map
491493
...
492494
495+
controller_server:
496+
ros__parameters:
497+
use_sim_time: True
498+
odom_topic: /gq7/ekf/odometry_map
499+
...
500+
501+
velocity_smoother:
502+
ros__parameters:
503+
odom_topic: "gq7/ekf/odometry_map"
504+
odom_duration: 0.01
505+
493506
We also need to configure the ``local_costmap`` to point to the correct frames. The way we do this is a bit strange since most of the time the ``local_costmap`` operates in the ``odom`` frame, but for our purposes, the global frame will be the ``map`` frame.
494507
If you were to run the ``microstrain_inertial_driver`` alongside ``robot_localization`` you would change ``global_frame`` to ``odom`` here.
495508
If you have a lidar installed on your robot, this is one of the points where you would want to make sure that you have the appropriate ``obstacle_layer`` and ``inflation_layer`` setup
@@ -503,8 +516,8 @@ If you have a lidar installed on your robot, this is one of the points where you
503516
robot_base_frame: base_link
504517
...
505518
506-
The ``global_costmap`` setup will look mostly identical to the ``local_costmap`` configuration in terms of our changes. For the rest of the parameters you may configure on the ``global_costmap`` it depends on what other sensors you have available.
507-
For our testing, we chose to remove the static layer, and use observations from a lidar sensor mounted on the robot.
519+
The ``global_costmap`` setup will look mostly identical to the ``local_costmap`` configuration in terms of our changes, but we will also increase the size of the costmap to 50x50 and make it a rolling window.
520+
For the rest of the parameters you may configure on the ``global_costmap`` it depends on what other sensors you have available. For our testing, we chose to remove the static layer, and use observations from a lidar sensor mounted on the robot.
508521

509522
.. code-block:: yaml
510523
@@ -513,15 +526,9 @@ For our testing, we chose to remove the static layer, and use observations from
513526
ros__parameters:
514527
global_frame: map
515528
robot_base_frame: base_link
516-
517-
Finally, if you are using a velocity smoother, you will want to set it up to receive it's odometry from the GQ7 like so
518-
519-
.. code-block:: yaml
520-
521-
velocity_smoother:
522-
ros__parameters:
523-
odom_topic: "gq7/ekf/odometry_map"
524-
odom_duration: 0.01
529+
rolling_window: true
530+
width: 50
531+
height: 50
525532
526533
# TODO: Check in the nav2 config we used and link to it
527534

@@ -546,7 +553,7 @@ In the second terminal, replace ``/path/to/nav2_params.yaml`` with the path to y
546553

547554
.. code-block:: bash
548555
549-
ros2 launch nav2_bringup bringup_launch.py params_file:="/path/to/nav2_params.yaml"
556+
ros2 launch nav2_bringup navigation_launch.py params_file:="/path/to/nav2_params.yaml" autostart:=True
550557
551558
Now that everything is running, the GQ7 will take some time to acquire a fix, but assuming your antenna offsets are accurate, and you have good sky view where you are testing, it should happen within a few minutes.
552559
If it doesn't enter full navigation in 3 minutes, see `this FAQ <https://files.microstrain.com/GQ7+User+Manual/user_manual_content/FAQ/FAQ.htm#Why>`_.

0 commit comments

Comments
 (0)