No, HOME is not always the the origin (0,0) of the relative coordinates. It is by default, but it can be moved using NavSetWaypointHere(HOME).
There are 2 user cases:
1 Flight plan origin defined at aircraft take-off position:
- All waypoints must be defined in relatives coordinates in the flight plan.
- NavSetGroundReferenceHere() is called in the flight plan to set (0,0) at aircraft position at the begining.
- Home is at (0,0), and doesn't need to be moved.
Warning: using absolute coordinates together with NavSetGroundReferenceHere is not handled (at least in rotorcraft), so the waypoints position will be wrong.
2 - Flight plan origin defined in GPS coordinates :
- Waypoints can be defined in absolute OR relative coordinates in the flight plan
- USE_INS_NAV_INIT to true (default now in master) set relative coordinates origin (0,0) at lat0, lon0 absolute coordinates defined in the flight plan.
- NavSetWaypointHere(HOME) moves home waypoint at aircraft start position.
Any other combination are possible, but these 2 situations are the most usefull.