General description
Using AionRobotics with pixhawk4 and here+ RTK GPS.
The requirements of our survey are that the lines be separated by no more than 60cm. The planned linespacing of mission is at 0.4m with an inline spacing of 0.2m.
The problem is that the coordinates planned are truncated when stored in the pixhawk. This causes unregular linespacing of the mission (some waypoints are truncated in different ways from the previous points).
Analysis
The read vs written waypoints files are available here: https://drive.google.com/open?id=1358n4gqWHD_3hiR6Ss6FsIIgQxJn2T0l
The python script used to analyze the differences between the waypoints is on the same link:
import re
def get_wps_comp(wps_path: str) -> list:
wps = open(wps_path)
return [re.sub("\t", " ", l.strip()).split() for l in wps]
read_wps = get_wps_comp(r'path_to/compare_read_wps.waypoints')
write_wps = get_wps_comp(r'path_to/compare_written_wps.waypoints')
count = 0
for a, b in zip(read_wps, write_wps):
if a != b:
count += 1
print(a[-4:-2], '\n', b[-4:-2], '\n')
print(f'total num of unmatches: {count}, percentage: {count / len(write_wps) * 100}')
17% of the waypoints do not have matching coordinates for a total of 113 waypoints.
Issue
I understand that this is probably the expected behavior that results from a willingness to limit the space required by the waypoints. Using truncation methods is legitimate for most applications (particularly drone missions).
However, for survey applications that require having sensors at the ground level, being able to follow predefine at the 10cm level is a requirement. The goals of the application simply cannot be reached without working at that scale.
Solution
Does anyone know of current work being done on this front? I am willing to help on the development side of things to make this feature available.
The two options seem like either we must change how the pixelhawk truncates coordinates or we must develop an independent method of navigation for the rover.
Do not hesitate if you have any questions.