Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
<table>
<tr>
<td>
<center>
<figure>
<img src={require("./img/microstrain_gq7.png").default} width="250" />
</figure>
</center>
</td>
<td>

```yaml
gps:
- model: microstrain_gq7
urdf_enabled: true
launch_enabled: true
parent: base_link
xyz: [0.0, 0.0, 0.0]
rpy: [0.0, 0.0, 0.0]
ros_parameters:
microstrain_inertial_driver:
frame_id: gps_0_link
port: "/dev/microstrain_main"
baudrate: 115200
```
</td>
</tr>
</table>

#### Package and Setup
The MicroStrain GQ7 sensor uses the `microstrain_inertial_driver` ROS 2 driver. The driver is open source, maintained by MicroStrain by HBK, and hosted on [GitHub](https://github.com/LORD-MicroStrain/microstrain_inertial/tree/ros2).

For specifics on the way Clearpath's configuration system launches the sensor driver, see the MicroStrain GQ7 [launch file](https://github.com/clearpathrobotics/clearpath_robot/blob/main/clearpath_sensors/launch/microstrain_gq7.launch.py) and the [default parameter file](https://github.com/clearpathrobotics/clearpath_robot/blob/main/clearpath_sensors/config/microstrain_gq7.yaml) in `clearpath_sensors`.

For a list of all possible parameters and documentation on what they do, see the [params.yml](https://github.com/LORD-MicroStrain/microstrain_inertial_driver_common/blob/main/config/params.yml) provided by the `microstrain_inertial_driver`

#### Device Path
The `port` ROS parameter must be set to the device path of the MicroStrain GQ7. To simplify this process, use the `/dev/microstrain_main` or `/dev/microstrain_main_<SerialNumber>` path. This path is only available when the MicroStrain UDEV rules are installed. These are installed alongside the `microstrain_inertial_driver` package. If the receiver is connected, but the `/dev/microstrain_main` device is not, check the file `/lib/udev/rules.d/60-ros-humble-microstrain-inertial-driver.rules` exists.
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
---
title: MicroStrain GQ7
sidebar_position: 3
---

import Support from "/components/support.mdx";
import YAML from "/docs_versioned_docs/version-ros2humble/components/yaml/sensors/microstrain_gq7.mdx";

<center>
<img
src="/img/sensor_images/microstrain_gq7.jpeg"
width="400"
/>
</center>

## Item Numbers

| Description | CPR Item | Sales Kit | Installation Kit, With Fasteners |
| :-------------------------- | :------------------------------------------------------: | :-------: | :------------------------------: |
| MicroStrain GQ7 | N/A | N/A | N/A |

---

## Specifications

| Description | Value |
| :--------------------------------------------------------------------------------------------------------- | :------------------------------------------------------ |
| Mass | 78 g |
| Voltage, Minimum | 4.2 V |
| Voltage, Maximum | 16 V |
| Voltage, Sensor | 5 V or 12 V |
| Power, Average | 2.0 W |
| Data | USB or RS-232<br />Default setting is 115200 baud |
| View, Vertical | Unknown |
| Position Accuracy | 1.25 m horizontal<br />2 m vertical |
| Position Accuracy RTK (requires a [Base Station](../../add-ons/base_station.mdx) or a positioning-service) | 2 cm |
| Ingress Protection, Solids | 4 |
| Ingress Protection, Liquids | None |
| Operating Temperature, Min | -40 °C |
| Operating Temperature, Max | 85 °C |

---

## Software Bringup
This sensor is included in the Clearpath Robotics robot package that is installed on all of our robots.
This allows you to add or remove the sensor from your robot's software description by modifying the [robot configuration yaml](../../../../ros/config/yaml/sensors/overview.mdx).

<YAML/>

#### Antenna Offsets

The GQ7 needs to have it's antenna offsets properly configured in order to get optimal position and orientation estimates. The `microstrain_inertial_driver` makes this easy to do,
and allows multiple ways to accomplish this.

##### From tf tree

The `microstrain_inertial_driver` can look up the location of the antennas from the transform tree as long as it is configured to look for the correct frames.
One can configure antenna offsets to be looked up from the transform tree by including the following parameters

```yaml
gps:
- model: microstrain_gq7
...
ros_parameters:
microstrain_inertial_driver:
gnss1_antenna_offset_source : 2
gnss1_frame_id : "right_antenna_link"
gnss2_antenna_offset_source : 2
gnss2_frame_id : "left_antenna_link"
```

A more complete example of configuring the GQ7 to look up the locations of the antennas from the transform tree, and setting up the antennas in the robot.yaml can be found
[here](https://github.com/clearpathrobotics/clearpath_config/tree/main/clearpath_config/sample/j100/j100_microstrain_gq7.yaml)

##### Manually

This method is not recommended for use with clearpath robots as the `robot.yaml` makes it easy to define GNSS antennas in your robot description, but it is the quickest way to get started.
One can configure antenna offsets manually by including the following parameters:

**IMPORTANT**: When manually configuring the antenna offsets, the measurements will be in the MicroStrain vehicle frame. See
[this wiki page](https://wiki.ros.org/microstrain_inertial_driver/use_enu_frame#different_frames) for more information.

```yaml
gps:
- model: microstrain_gq7
...
ros_parameters:
microstrain_inertial_driver:
gnss1_antenna_offset_source : 1
gnss1_antenna_offset : [0.0, 0.7, -1.0] # x, y, z in meters
gnss2_antenna_offset_source : 1
gnss2_antenna_offset : [0.0, -0.7, -1.0] # x, y, z in meters
```

#### Transforms

In order to integrate more easily with existing ROS tools such as RViz and Nav2, the `microstrain_inertial_driver` will publish several transforms.

The default behavior of the device when used in a clearpath robot is to publish the global position of the `odom` frame relative to the first valid fix received by the device,
but it can be configured to publish the global position of a different frame, or no frames at all.
For more information on the transforms published and how to configure them, see the [transforms](https://wiki.ros.org/microstrain_inertial_driver/transforms)
page of the `microstrain_inertial_driver` wiki.


---

## Troubleshooting

<Support />

For issues directly related to the `microstrain_inertial_driver` or the GQ7, please open an issue on [GitHub](https://github.com/LORD-MicroStrain/microstrain_inertial/issues/new/choose)

---

## Further Reading

1. [Clearpath Robotics Store](https://store.clearpathrobotics.com/collections/gnss-ins)
2. [GQ7 User Manual](https://files.microstrain.com/GQ7+User+Manual/Home.htm)
3. [GQ7 Webpage](https://www.microstrain.com/inertial-sensors/3dm-gq7)
4. [microstrain_inertial_driver wiki](https://wiki.ros.org/microstrain_inertial_driver)
5. [microstrain_inertial_description wiki](https://wiki.ros.org/microstrain_inertial_description)
Binary file added static/img/sensor_images/microstrain_gq7.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.