Starling 2 not following navigation path
-
Hello @ApoorvThapliyal,
I put the log file here: log100.ulg on Filebin.net
I also put the the output fromvoxl-vision-hub --debug_offboardsuggested by @Cliff-Wong in another post in another upload here voxl-vision-hub-log.txt on Filebin.net.When I attempted the flight, the drone appeared to fly to the correct X and Z coordinates, but it was close to the floor and well below the correct Y coordinate.
Here are a couple of picture of the map and projected route:


And a couple of the map after the drone tried to navigate and ended up below the point:


-
For convenience I took out the section that has the trajectory from the voxl-vision-hub logs:
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.7 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.7 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.7 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.7 yaw: 0.3
commanding: XYZ -0.4 -0.2 -1.7 yaw: 0.3
Received trajectory has duration 1.953539 seconds
Received load and start command.
commanding: XYZ -0.4 -0.2 -1.0 yaw: 0.7 V: 0.0 0.0 -0.0 A: 0.1 0.0 -0.0
commanding: XYZ -0.4 -0.2 -1.0 yaw: 0.7 V: 0.0 0.0 -0.0 A: 0.2 0.2 -0.0
commanding: XYZ -0.4 -0.2 -1.0 yaw: 0.7 V: 0.0 0.0 -0.0 A: 0.3 0.3 -0.0
commanding: XYZ -0.4 -0.2 -1.0 yaw: 0.7 V: 0.0 0.0 -0.0 A: 0.5 0.5 -0.0
commanding: XYZ -0.4 -0.2 -1.0 yaw: 0.7 V: 0.0 0.0 -0.0 A: 0.7 0.6 0.0
commanding: XYZ -0.4 -0.2 -1.0 yaw: 0.7 V: 0.1 0.1 -0.0 A: 0.9 0.7 0.0
commanding: XYZ -0.3 -0.2 -1.0 yaw: 0.7 V: 0.1 0.1 0.0 A: 1.0 0.9 0.0
commanding: XYZ -0.3 -0.2 -1.0 yaw: 0.7 V: 0.1 0.1 0.0 A: 1.1 0.9 0.0
commanding: XYZ -0.3 -0.2 -1.0 yaw: 0.7 V: 0.2 0.2 0.0 A: 1.1 1.0 0.0
commanding: XYZ -0.3 -0.2 -1.0 yaw: 0.7 V: 0.2 0.2 0.0 A: 1.2 1.0 0.0
commanding: XYZ -0.3 -0.2 -1.0 yaw: 0.7 V: 0.3 0.2 0.0 A: 1.2 1.0 0.0
commanding: XYZ -0.3 -0.2 -1.0 yaw: 0.7 V: 0.3 0.3 0.0 A: 1.2 1.0 0.0
commanding: XYZ -0.3 -0.1 -1.0 yaw: 0.7 V: 0.3 0.3 0.0 A: 1.2 1.0 0.0
commanding: XYZ -0.3 -0.1 -1.0 yaw: 0.7 V: 0.4 0.3 0.0 A: 1.1 1.0 0.0
commanding: XYZ -0.3 -0.1 -1.0 yaw: 0.7 V: 0.4 0.4 0.0 A: 1.1 1.0 0.0
commanding: XYZ -0.3 -0.1 -1.0 yaw: 0.7 V: 0.4 0.4 0.0 A: 1.1 1.0 0.0
Received trajectory has duration 1.452853 seconds
Received insert command.
commanding: XYZ -0.3 -0.1 -1.0 yaw: 0.7 V: 0.5 0.4 0.0 A: 1.1 0.9 0.0
commanding: XYZ -0.2 -0.1 -1.0 yaw: 0.7 V: 0.5 0.4 0.0 A: 1.0 0.9 0.0
commanding: XYZ -0.2 -0.1 -1.0 yaw: 0.7 V: 0.5 0.5 0.0 A: 1.0 0.9 0.0
commanding: XYZ -0.2 -0.1 -1.0 yaw: 0.7 V: 0.6 0.5 0.0 A: 0.9 0.8 0.0
commanding: XYZ -0.2 -0.0 -1.0 yaw: 0.7 V: 0.6 0.5 0.0 A: 0.8 0.7 0.1
commanding: XYZ -0.2 -0.0 -1.0 yaw: 0.7 V: 0.6 0.6 0.0 A: 0.8 0.6 0.1
commanding: XYZ -0.1 0.0 -1.0 yaw: 0.7 V: 0.7 0.6 0.0 A: 0.7 0.5 0.1
commanding: XYZ -0.1 0.0 -1.0 yaw: 0.7 V: 0.7 0.6 0.0 A: 0.6 0.5 0.1
commanding: XYZ -0.1 0.0 -1.0 yaw: 0.7 V: 0.7 0.6 0.0 A: 0.5 0.4 0.1
commanding: XYZ -0.1 0.1 -1.0 yaw: 0.7 V: 0.7 0.6 0.0 A: 0.4 0.3 0.0
commanding: XYZ -0.0 0.1 -1.0 yaw: 0.7 V: 0.7 0.6 0.0 A: 0.3 0.2 0.0
commanding: XYZ -0.0 0.1 -1.0 yaw: 0.7 V: 0.7 0.6 0.0 A: 0.2 0.1 0.0
commanding: XYZ 0.0 0.1 -1.0 yaw: 0.7 V: 0.7 0.6 0.0 A: 0.0 0.0 0.0
Received trajectory has duration 0.510237 seconds
Received insert command.
commanding: XYZ 0.0 0.1 -1.0 yaw: 0.7 V: 0.7 0.6 0.0 A: -0.1 -0.1 0.0
commanding: XYZ 0.1 0.2 -1.0 yaw: 0.7 V: 0.7 0.6 0.0 A: -0.2 -0.2 0.0
commanding: XYZ 0.1 0.2 -1.0 yaw: 0.7 V: 0.6 0.5 0.0 A: -0.2 -0.2 0.0
commanding: XYZ 0.1 0.2 -1.0 yaw: 0.7 V: 0.6 0.5 0.0 A: -0.3 -0.2 0.0
commanding: XYZ 0.1 0.2 -1.0 yaw: 0.7 V: 0.6 0.5 0.0 A: -0.4 -0.3 -0.0
commanding: XYZ 0.1 0.2 -1.0 yaw: 0.7 V: 0.6 0.5 0.0 A: -0.5 -0.4 -0.0
commanding: XYZ 0.2 0.3 -1.0 yaw: 0.7 V: 0.6 0.5 0.0 A: -0.6 -0.5 -0.0
commanding: XYZ 0.2 0.3 -1.0 yaw: 0.7 V: 0.6 0.5 0.0 A: -0.7 -0.6 -0.0
commanding: XYZ 0.2 0.3 -1.0 yaw: 0.7 V: 0.5 0.5 0.0 A: -0.7 -0.6 -0.0
commanding: XYZ 0.2 0.3 -1.0 yaw: 0.7 V: 0.5 0.4 0.0 A: -0.7 -0.6 -0.0
commanding: XYZ 0.2 0.3 -1.0 yaw: 0.7 V: 0.5 0.4 0.0 A: -0.8 -0.7 -0.0
commanding: XYZ 0.2 0.3 -1.0 yaw: 0.7 V: 0.5 0.4 0.0 A: -0.8 -0.7 -0.0
commanding: XYZ 0.3 0.3 -1.0 yaw: 0.7 V: 0.4 0.4 0.0 A: -0.8 -0.7 -0.0
commanding: XYZ 0.3 0.4 -1.0 yaw: 0.7 V: 0.4 0.3 0.0 A: -0.8 -0.7 -0.0
commanding: XYZ 0.3 0.4 -1.0 yaw: 0.7 V: 0.4 0.3 0.0 A: -0.8 -0.7 -0.0
commanding: XYZ 0.3 0.4 -1.0 yaw: 0.7 V: 0.4 0.3 0.0 A: -0.7 -0.6 -0.0
commanding: XYZ 0.3 0.4 -1.0 yaw: 0.7 V: 0.3 0.3 0.0 A: -0.5 -0.5 -0.0
commanding: XYZ 0.3 0.4 -1.0 yaw: 0.7 V: 0.3 0.3 0.0 A: -0.4 -0.3 0.0
commanding: XYZ 0.3 0.4 -1.0 yaw: 0.7 V: 0.3 0.3 0.0 A: -0.3 -0.3 0.0
commanding: XYZ 0.3 0.4 -1.0 yaw: 0.7 V: 0.3 0.2 0.0 A: -0.4 -0.4 0.0
commanding: XYZ 0.3 0.4 -1.0 yaw: 0.7 V: 0.3 0.2 0.0 A: -0.6 -0.5 -0.0
commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7 V: 0.2 0.2 0.0 A: -0.8 -0.7 -0.0
commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7 V: 0.2 0.2 0.0 A: -1.1 -0.9 -0.1
commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7 V: 0.2 0.1 0.0 A: -1.3 -1.1 -0.1
commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7 V: 0.1 0.1 0.0 A: -1.4 -1.1 -0.1
commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7 V: 0.1 0.1 0.0 A: -1.3 -1.1 -0.1
commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7 V: 0.0 0.0 0.0 A: -1.0 -0.9 -0.1
commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7 V: 0.0 0.0 0.0 A: -0.7 -0.6 -0.1
commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7 V: 0.0 0.0 0.0 A: -0.3 -0.2 -0.0
commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7 V: 0.0 0.0 0.0 A: -0.0 -0.0 -0.0
commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7 V: -0.0 -0.0 0.0 A: -0.0 -0.0 0.0
FINISHED TRAJECTORY
commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7
commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7
commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7
commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7
commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7
commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7
commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7
commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7
commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7
commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7
commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7
commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7
commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7
commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7
commanding: XYZ 0.4 0.5 -1.0 yaw: 0.7
commanding: XYZ 0.4 0.5 -1.0 yaw: 0.7
commanding: XYZ 0.4 0.5 -1.0 yaw: 0.7
commanding: XYZ 0.4 0.5 -1.0 yaw: 0.7
commanding: XYZ 0.4 0.5 -1.0 yaw: 0.7 -
@ApoorvThapliyal, if you/your team needs anymore information or data, do let me know. Thank you.
-
Hey @greg_s
I just wanted to confirm, are you dragging the planned point to the height desired? By default, simply clicking on the map will generate a point at height 0.
Let me know, thanks -
Hello @ApoorvThapliyal,
Yes, I am dragging the point up and panning the camera around to ensure it is roughly the same height as the drone. The line drawn for the path is pretty straight and at the correctly level. The drone just ends up flying down below the point after I have move it.
-
Hello @ApoorvThapliyal,
Is there anything more your teams need to investigate/troubleshoot the issue? Thanks.
-
Hey @greg_s
I was able to reproduce the issue where the drone does not fly correctly toward the setpoint. I think reviewing theextrinsics.conffile is a good next step, as there may be an incorrect transform defined there. -
Hey @ApoorvThapliyal,
Here is the output of the extrinsics:
voxl2:~$ voxl-inspect-extrinsics --all
name: D0014_Starling_2
#0:
parent: imu_apps
child: tracking_front
T_child_wrt_parent: 0.037 0.000 0.001
RPY_parent_to_child: 0.0 90.0 90.0
R_child_to_parent: 0.000 -0.000 1.000
1.000 0.000 -0.000
-0.000 1.000 0.000#1:
parent: imu_apps
child: tracking_down
T_child_wrt_parent: -0.088 -0.004 0.027
RPY_parent_to_child: 0.0 0.0 180.0
R_child_to_parent: -1.000 -0.000 0.000
0.000 -1.000 -0.000
0.000 0.000 1.000#2:
parent: imu_apps
child: tracking_rear
T_child_wrt_parent: -0.092 0.016 0.004
RPY_parent_to_child: 0.0 -90.0 -90.0
R_child_to_parent: 0.000 0.000 -1.000
-1.000 0.000 -0.000
0.000 1.000 0.000#3:
parent: imu_apps
child: hires
T_child_wrt_parent: 0.039 0.000 0.019
RPY_parent_to_child: 0.0 90.0 90.0
R_child_to_parent: 0.000 -0.000 1.000
1.000 0.000 -0.000
-0.000 1.000 0.000#4:
parent: body
child: imu_apps
T_child_wrt_parent: 0.029 -0.006 -0.016
RPY_parent_to_child: 0.0 0.0 0.0
R_child_to_parent: 1.000 -0.000 0.000
0.000 1.000 -0.000
0.000 0.000 1.000#5:
parent: body
child: imu_px4
T_child_wrt_parent: 0.004 0.007 -0.016
RPY_parent_to_child: 0.0 0.0 0.0
R_child_to_parent: 1.000 -0.000 0.000
0.000 1.000 -0.000
0.000 0.000 1.000#6:
parent: imu_apps
child: lepton0_raw
T_child_wrt_parent: -0.085 0.013 0.024
RPY_parent_to_child: 0.0 0.0 90.0
R_child_to_parent: 0.000 -1.000 0.000
1.000 0.000 -0.000
0.000 0.000 1.000#7:
parent: body
child: tof
T_child_wrt_parent: 0.066 0.009 -0.012
RPY_parent_to_child: 0.0 90.0 180.0
R_child_to_parent: -0.000 -0.000 1.000
0.000 -1.000 -0.000
1.000 0.000 0.000#8:
parent: body
child: ground
T_child_wrt_parent: 0.000 0.000 0.033
RPY_parent_to_child: 0.0 0.0 0.0
R_child_to_parent: 1.000 -0.000 0.000
0.000 1.000 -0.000
0.000 0.000 1.000 -
Hello @ApoorvThapliyal,
Is there anything that looks wrong or off about the configuration? Should I look at any other file in particular?
-
@greg_s
Hi there, your extrinsics are good: same as a factory Starling. Now, if you altered thevoxl-camera-server.conf(e.g. enabled a flip of a camera stream when it wasn't) or physically changed a camera mount point then the extrinsics would need to be adjusted. Let assume that's not the case.From your vvhub trajectory output, it appears your setpoints command the vehicle to move forward (X) and to the right (Y) > 1m while dropping altitude (Z) 0.8m --recall mapper runs in FRD (aka body) space where Z up is negative. Also you do pass through the take off origin (0,0,0). If that's not what you wanted, then we have a "requested trajectory" drawing problem in the portal tool or mapper's found invalid regions/obstacle and could not draw the "requested trajectory".
In the former case @ApoorvThapliyal mentions the un-intuitiveness of the portal tool that you already understand.
In the latter case, upon "request trajectory" submission, voxl-mapper will analyze the map to see if there are obstacles and alter the trajectory to fly around potential obstacles. You can alter in
voxl-mapper.conf:rrt_min_distance(try 0.125)esdf_inner_sphere_radius(try 0.15)
if you seeing mapper create trajectories going around 'ghost' objects. This should allow RRT generated trajectories to get closer to objects.
In checking precision, you'll need to take the trajectory output (e.g. the setpoints in the
*commanding: XYZ*messages) and compared it against VIO position to determine tracking error. You have 2 ways to get that data:-
option 1 is record you vvhub traj output as above and record the output of voxl-inspect-vins -n then plot compare the tracking error.
-
option 2 is running voxl-vision-hub --debug_offboard --debug_odometry which you'll need to seperate the traj messages from the vio (T_body_wrt_local) messages, then you ca plot the tracking error.
The goal is we want the vio position to follow the commanded trajectory: (it's doing what is told to do). That will narrow down where your concerns are w.r.t what module has a problem.
Hopefully that gets you on the right track, just post any outputs you gather that continue to show tracking error.