trilliumeng / orion-sdk

Public SDK and ICD for Trillium Engineering's Orion Gimbals.
http://www.trilliumeng.com
MIT License
15 stars 15 forks source link

Feed GPS/IMU data to gimbal #12

Closed arikrupnik closed 4 years ago

arikrupnik commented 4 years ago

I understand that it's possible to feed GPS data to the gimbal, so it would use the same solution as the platform. I understand that it's possible to feed NMEA to the gimbal through a serial port, but also through ethernet. I cannot immediately see the Orion message that would carry this information to the gimbal.

Is there an Orion message I can use to send GPS to the gimbal, or do I need to use a different interface? And while I'm at it, is it possible to send an IMU solution to the gimbal as well?

jefffisher commented 4 years ago

Have a look at the GpsAndHeading example; it demonstrates the use of the GpsData message. We do not accept IMU solutions, but do accept platform heading observations as shown in that example application

jefffisher commented 4 years ago

Forgot to mention: There is also an option to feed raw NMEA sentences to a serial port if you'd prefer. To use that functionality, you can send an OrionUartConfig message to set a serial port's protocol to PROTOCOL_NMEA_GPS.

arikrupnik commented 4 years ago

Thank you, @jefffisher. From the example I understand that ORION_PKT_GPS_DATA is "bidirectional." The gimbal uses it to report its solution, but if I send it to the gimbal, my data override the gimbal. This symmetry isn't obvious from the packet comment in the XML. It does include values in gpsSource_t that refer to the possibility of external data, but that's it.

So if I start sending ORION_PKT_GPS_DATA to the gimbal, it ignores its own GPS solution and heading and takes mine. If I stop sending this message, does it revert to its built-in GPS after a timeout? Or do I need to tell it which GPS to use with something like ORION_PKT_INS_OPTIONS?

Thank you again for following up and answering these questions.

jefffisher commented 4 years ago

I would recommend using autopilotSource for your application. If the gimbal hasn't gotten an update after 1.25 seconds, it will revert to the internal GPS; otherwise, it will use the data you provide for the GPS solution.

arikrupnik commented 4 years ago

Thank you, @jefffisher. The 1.25s timeout makes sense in the context of 4 Hz updates. No need for ORION_PKT_INS_OPTIONS then?

jefffisher commented 4 years ago

Nope, just send GpsData messages and you're good to go

arikrupnik commented 4 years ago

But I would need ORION_PKT_INS_OPTIONS to tell the gimbal how far my antenna is from it?

jefffisher commented 4 years ago

Yes, that's correct. InsOptions is non-volatile, so will only need to be sent once and will persist through power cycles.

arikrupnik commented 4 years ago

Thank you.