Autosteer Single GPS+IMU+Panda

I’ve been hacking on an ESP32 sketch that implements all the same logic as Panda, but also combines the gyro offset calculations from AOG and does the calculations and translations for terrain compensation right on the ESP32, emitting a synthetic GGA and VTG stream. This allows me to use the corrected GPS position for a variety of purposes including other devices and precise logging on my phone. So far the tests are promising on the bench. I’ll be trying it on the tractor soon. Not sure it is of any value with AOG, given that AOG can already do it nicely with the Panda messages. I haven’t bothered with reverse detection for now; at slow speeds the heading comes entirely from the gyro anyway, so it would function correctly for most of the times I back up. Hope to have something to post very soon.

6 Likes

Ok I may be missing something, so does the panda board currently just output CAN, or is it still using V2 as remote IO over UDP?

I think there are still no PANDA/autosteer boards, no UDP-teensy-PANDA code, no PANDA-autosteer code (for UDP, I have made one for USB)

I’m looking for UDP code, I have boards but struggling with coding :grimacing:
will continue to try in the next days.

1 Like

Looks to me like it’s just simple serial over USB really, just like how GPS was typically done before through AgIO. With a Teensy 4.1, though, it could easily support UDP. Don’t think it has anything to do with CAN.

So its just GPS+IMU+Guidance fused for 0 lag, but the final command goes to V2 via udp to steer.

Clearly from the lines in the field its steering, @Vili is a machine, but those lines are not from a lightbar.

Panda is like game genie

1 Like

You are using cmps14 and bno08x? Does they have specific orientation? You take 5v and gnd from the teensy and gave power supply to the f9p through the 5v in and gnd which is on the right side of the picture?

Hello! When will the pcb be available?

Yes I did it this way. Power f9p (simplertk2b) from 5V of teensy, and I powered bno by 3.3v of simplertk2b (has higher current draw than teensy). Don’t forget to supply same 3.3v to IOref of simplertk2b

Testing it, and much more, news coming soon :wink:

The team wants to make sure everything works before releasing anything. Please be patients.

4 Likes

I think the word “fusion” or “fused” is confusing and a misnomer. To me “fusion” means that GPS+IMU is read, then combined such that the output GPS is corrected for the terrain (roll of the tractor).Panda certainly doesn’t fuse GPS and IMU; that happens inside AOG. Panda does, however, attempt to synchronize the GPS fix and the IMU reading so that the lag between them is zero, making the fusion that AOG does more accurate.

From experimentation it seems it takes the F9P about 90 10 milliseconds to compute the RTK fix. Pretty impressive, really.

3 Likes

There’s only 10ms left before it needs to start calc the next fix?

Actually it is the other way around, F9P takes around 10ms to do the calculations, but because we can’t go back in past to read the Imu, we start a counter when a GPS sentence is read, and then after 90-95ms we read the IMU for the NEXT GPS sentence

4 Likes

yes you’re right. I misspoke. The f9p takes roughly 10 ms to calculate the fix from the time of observation. So the ideal IMU roll angle to send to AOG for fusing with the GPS is from 10 ms before the GGA NMEA message rolls in. Lining this up is what Panda is all about.

3 Likes

I know that this is off topic. I am new on here. Can anyone tell me if they have ever incorporated collision or object avoidance into the autosteer platform. Preferable optical or Lidar.

I’m currently working on it, Velodyne vlp16 Lidar and ZED2 camera, I’m new to ROS, I’ll post it when I’m done.

What if we decrease the sampling time of the IMU? Like 5Hz, 10Hz, 20Hz, and 50Hz.

Basically, it seems like whatever sampling rate you use, you need to grab the IMU reading 10ms before the GPS fix. To do that, in the Panda sketch change the imu delay to (1/frequency - 0.01) * 1000. For 5Hz, that means imu delay should be 190 ms, 10 Hz 90 ms, 20 Hz 40 ms, 50 Hz 10 ms. I think I got that right. Might need to experiement at the other frequencies to see if it works okay.

1 Like

What is the difference with dual antena as IMU? Except the price.

A quote from Brian.

BNO is a directional device that helps to stabilize the single vibrating antenna value. MMA just rolls from side to side.
But the 2-position dual antenna can pinpoint your exact direction even when stationary. You know which way your body is facing, just like you have 2 feet on the ground. There is absolutely no need for bno when using Dual.
Using the height of each antenna you can now determine which is higher/lower and determine the vehicle’s rotation - which way it is leaning. The wider the antenna, the more accurate the direction and roll. Ships are very wide and long so can be extremely sensitive, but a tractor can also be quite sensitive by moving the antennas as far as possible.
Neither BNO Brick nor MMA is required when using a dual antenna system.

1 Like

That being said, the new IMU+GPS timed Panda performance looks very good, better then the dual GPS in some ways.

2 Likes