HTM for drones?

Are there any companies currently applying HTM tech for drone / robotics control?

I would imagine the real-time adaptation to changing conditions would be a large boon over pre-trained AI navigation/operation systems, as well as the lightweight computation and noise reduction from working with SDRs.

The biggest hurdle I read about is real-time object detection/classification informing movement/obstacle avoidance navigation systems, and my immediate thought is “images are still a little problematic, Retina isn’t quite finished”.
But drones have a variety of sensors beyond cameras: laser distance, inertial measurement units etc to track self-position and objects. I’m sure there’s plenty of currently-encodable data streams available.

Hwangbo et al trained a neural network to fly a quadcopter (I wrote a quick summary, but the video may be faster) using RaiSim, but it’s closed source and has some hefty licensing restraints.

My plan so far is something like “Step 1: gather ingredients, step 2: bake cake”:

  1. Get drone-typical input data stream (are there drone flight datasets?)
  2. Get drone simulation software, hook up HTM to controls for flight similar to above video

The above quadcopter neural network was trained with an added “policy” net that rewarded the quadcopter for getting closer (in 3d space) to its designated destination). In simulation it’s easy to measure the XYZ position of drone and endpoint against each other, and in the live experiment they tracked it via cameras and constantly fed the updated position to the neural net controller.

I think the most common scenarios for drone navigation would be:

  1. From GPS coordinates X1Y1, go to coordinates X2Y1
  2. From starting position, go direction D, avoiding obstacles, performing certain task (until stop?)

These feel quite similar, and I suppose the only difference would be in 2) there’s no set end-coordinates, just a direction to travel. In both cases the drone would have to read its height/depth with… a laser, I guess?

I may be overlooking the biggest question: HTMs are about predicting the next datapoint by looking for patterns in the last N datapoints. I figure this would lend it strength in object classification (a bird and plane may look vaguely similar, but have quite different movement patterns - video feed is a series of previous images), but again we’re not exactly there yet, and most systems may use something like yolonet.
So what is the HTM supposed to predict? Depends on the task, I suppose - predicted the next best movement for the drone, for example by predicting the optimal output of rotor #2 to guide it to the GPS coordinates (based on last N drone position GPS ticks).

It is unfortunate that HTM uses the term “prediction” as that primes people with certain expectations.
It may be more productive to think of HTM as a novelty detector - it can tell if the stream of data has been seen before and will report when the stream deviates from that prior learned sequence. At the same time, this novel item is added to the catalog of known sequences.

Consider this list of learned sequences:
Hit
Hip
High
Hippopotamus
His
Hippy
Hinterland
Hill
Now we feed in a sequence “hi”
The “predictive part” anticipates that any letter from the set “tpgsnl” could happen.
When the sequence advances to 'hip" the network sees that this is known sequence and does nothing.

If, instead, we use the sequence “hix” then the network reports novelty (bursting) AND learns the sequence “Hix”.

The network anticipates the set of possible transitions at any point of a learned sequence but at the point “hi” it does not predict “a” next value - it predicts “all” the possible next steps that have been learned, in this case, “tpgsnlx”

Note that HTM “prediction” is very different from something like a bayesian filter that combines past motion with the estimate of current prediction to predict where we are going. An HTM model would take all the maneuvers that have led to this point and “predict” all the maneuvers that have ever occurred at this step in the sequence… If we took one of these predicted motions it would move on to the next set of possible maneuvers at the next time step. If we were to take some other maneuvers it would signal that this is something new. I don’t see how this would bring anything new to drone control.

1 Like

As one of those people who has been primed to think of HTM as predicting, upon further study, it seems fair to say the current HTM implementations behave as @Bitking described.

But the hypothesis of HTM is that HTM with the right algorithms will allow for the sort of intelligent behavior humans demonstrate. For example, navigating to a point they have never previously experienced.

Nobody has a formal theory of how brains do this. A few people like Jeff Hawkins at Numenta have hypothesis of how brains do this and it is a research project to test those hypothesis.

In summary, current HTM algorithms do not do a good job of generating predictive behavior but that is on the Numenta/HTM roadmap.

If I were trying to solve your challenge of navigating a drone I would look to research in autonomous vehicles e.g. Tesla