Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

META - Ecosystem terrain standardization #65

Open
Ryanf55 opened this issue Apr 21, 2024 · 2 comments
Open

META - Ecosystem terrain standardization #65

Ryanf55 opened this issue Apr 21, 2024 · 2 comments
Assignees

Comments

@Ryanf55
Copy link
Contributor

Ryanf55 commented Apr 21, 2024

Design Goals

  • Use the same terrain data across all devices in the ecosystem
    • Autopilot (PX4, ArduPilot, Etc)
    • Companion Computer (grid_map_geo) or other computers running ROS 2
    • Ground Station (QGC, MAVProxy, Mission Planner)
    • Simulator (Gazebo, SITL)
    • Developer visualization tool (RVIZ, Foxglove)
    • Autonomy navigation/planning frameworks (NAV2)
  • Support loading terrain from an online terrain server
    • ArduPilot SRTM
    • AirMap
  • Reduce network usage by maintaining a local cache of terrain data
    • Only download tiles once from online terrain server to devices in field
    • Cache terrain on the companion computer and/or autopilot to reduce GCS-Vehicle network congestion
  • Reduce the time, complexity, and difficulty to set up terrain data for terrain navigation
    • Example: given no terrain data is installed on any devices, and the system is started without GPS signal, when the GPS is enabled, then the autopilot, companion computer and GCS retrieve terrain and the simulator displays the terrain and the local origin of the simulation is to the home location.
  • Enable using drones at large latitudes beyond SRTM's 60 degree limit
  • Support simulation of similar scale flight as this

Current Issues

Visualization/Sim

Gazebo

QGC

MAVProxy

Mission Planner

Companion Computer

  • If the companion computer doesn't have SIM card, it can't fetch terrain data from online, even if the GCS has terrain data

Autopilot

What's working well

Terrain transmission between autopilot and GCS

  • Based on MAVLink terrain protocol

Navigation/Planning (NAV2)

  • NAV2 currently is heavily tied to Costmap2D in the GlobalPlanner
  • NAV2 can't support 3D planning
  • NAV2 assumes grid-based algorithms, no allowance for geometric
  • We want to efficiently represent airspace and coastlines without a grid

Current Terrain Data Transmission Approaches

These are the standards or techniques to share terrain data between devices over networks, both IP and serial, wired and wireless:

Current Terrain Sources

@Ryanf55 Ryanf55 self-assigned this Apr 21, 2024
@knmcguire knmcguire transferred this issue from ROS-Aerial/aerial_robotic_landscape Apr 22, 2024
@ROS-Aerial ROS-Aerial deleted a comment from knmcguire Apr 23, 2024
@ROS-Aerial ROS-Aerial deleted a comment from knmcguire Apr 23, 2024
@tridge
Copy link

tridge commented Apr 23, 2024

some other issues:

  • ublox use a course grained table for alt models, its significantly wrong in many places
  • i am not certain that terrain.ardupilot.org is AMSL everywhere, though the ublox issue complicates testing
  • we shift terrain db up/down based on home vs terrain height, see TERRAIN_OFS_MAX

@Ryanf55
Copy link
Contributor Author

Ryanf55 commented Apr 23, 2024

From ArduPilot dev call today:

Mission Planner support geotifs.
Mavproxy can pull different terrain from a domain in geoscient australia. It's untested in a while.

  • Terrain.ardupilot.org has SRTM1 and SRMT3

The SRTM database may be ellipsoid or AMSL data. NASA might not have converted this (yet).
THe other complication is that ublox implemented a coarse grain table for the world similar to AP's magnetic field.
Even with RTK lock, ublox might return meters different accuracy. AP could also run the calculations correctly.

AP shifts the terrain for baro.

Users want to store their own terrain data. Mission planner can add in its own terrain.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: No status
Development

No branches or pull requests

2 participants