I'm a [former] robotics software engineer. Can I still help if I don't have a tractor?

For several years, my day job involved testing & developing underwater robots to navigate and do “work” in the ocean (covering an area to take pictures and water quality measurements). That involved a lot of skills and experience that also seem relevant here:

  • Being able to decode data in a variety of sensor formats, e.g. NMEA
  • Figuring out where the heck we are and where we want to be
  • Sending commands to various motors to keep things on track (without overcompensating, driving wildly, etc)
  • Recording good data so that if things go sideways we know what part of the code to fix
  • Creating ways to visualize data on Google Earth or other graph/chart options

Is there any way I can be useful to this community?

8 Likes

Welcome to the community! Well definitely, probably one of the best ways is to overlook the project and figure out areas that could have improvement with a solution. One of the big things/wants is to be able to have google earth as a background, but the GE api has changed so much over the years, its gotten quite hard to use with WinForms.

Steer motor control is certainly an area to look over given your skill set

4 Likes

GE integration would be a great feature.

Then again, I do kind of like the rawness of it as it stands. It’s clear where you have been, uncluttered.

1 Like

Is there a document somewhere that describes the general hardware/software architecture that you use? If not, what does this group typically use to share such things?

One of the things I’ve done in the past is a unit testing system for Arduino, which would allow folks to test their libraries without having to duplicate each others’ hardware setups.

The other one is a Google Earth integration that I wrote for ship traffic, but could probably be adapted (in a straightforward way) to showing other data – hence my question about the formats that are used.

If someone has a text file with output to convert to Google Earth format, I can start from there.

Also, would you be willing to set up a GitHub group to capture a collection of open source Ag projects?

Even without a tractor, a smaller robot (with ackerman steering for example) could be used with AOG. Or a small lawn mower. And some of us are interested in using AOG on swathers, which use differential steering instead of an ackerman-style rack and pinion.

Documenting in detail in place the various algorithms used in AOG would be interesting too. With references back to AOG particulars maybe (the data structures it uses).

1 Like

Documentation always suffers in a DIY/Open Source community - but that is being worked on now.

Even without documentation, if there is a place that I can find some sample data files then that might get me started.

For example, what kind of data would you like to display in Google Earth?

Actually have google earth as the background in AgOpen. There is a really good kml streamer already that works well, but you are more then welcome to see if it can do better

1 Like

@ianfixes, kalman-filter skills might be also a benefit for the project. Maybe you have experience in it?

1 Like

I do have some experience working with Kalman (and EKF) navigation stuff, but the broader question in all of those cases is “how does the data arrive and how does it get sent out”. Typically in robotics we have a lot of different components all reading and writing data collaboratively, and there are a lot of pros and cons to whether you write one monolithic process or just create a bunch of modular components around a common communication architecture.

I would think that for this particular application, the design goal is “able to be fixed in the field by someone who isn’t primarily a software developer”.

So I guess this is a long way of saying that no matter how I end up contributing (Kalman stuff or otherwise) my first step is understanding what parts you all work with and how they interconnect.

I am (hardly!) trying to work with Web Map Services (WMS, WFS, WMTS???) using Server / client HTTP request… Could be useful for “live” maps layers to be added…;
Tough! do you know this technique?

I’ve never worked with Web Map Services in particular, but that sounds like just another format to learn.

What does everyone use as their “main” view of their work, and is there a separate tool for in-the-tractor vs analyzing-at-home-afterwards?