Archive for the ‘Modern Engineer’ Category

Best Robotic Legs Ever?

Friday, July 6th, 2012

A very interesting development has been reported by the Daily Disruption News Desk regarding robotic legs that are claimed to “fully model walking in a biologically accurate manner.” This will come as good news for spinal cord injury patients. Those of us who follow developments in artificial intelligence and robotics will likely take note as well.

I read this account with fascination, and immediately wanted to sketch out my understanding in model form. Extending the colloquialism, to a hammer, everything is a nail – to a systems engineer, everything must be modeled. As conveyed in the article, human walking is controlled by a neural network called the central pattern generator (CPG), which is anatomically located in the lumbar region. It’s purpose is to generate rhythmic muscle signals. The researchers said in its simplest form the CPG can be modeled by a neuron pair that each fire signals in alternating fashion.

To complete this model in addition to the neural architecture, the robot needs muscle-skeleton and sensory feedback components. Roughly, this system can be modeled as shown:

I could be wrong, but this is how I understand the Robotic Leg System!

Co-author of the study Dr Theresa Klein was quoted as saying “…we were able to produce a walking gait, without balance, which mimicked human walking with only a simple half-centre controlling the hips and a set of reflex responses controlling the lower limb.”

So, did you catch that? That was quite a surprising statement. Two things are totally counter intuitive to me. First, she said the robot works “without balance.” Does that mean that this robot does not need an “inner ear” to balance? Second, the CPG apparently apparently converts coarse motor commands into forces applied at the hip joint only. The “dangling part of the leg, the lower limb, just follows reflexively, implementing easily programmable commands that simple follow what is happening up stream at the hip.

Another implication of this analysis is that the brain proper plays less of a role in controlling gait that I would have guessed.

This would be a good time to confess that I could be totally wrong in my interpretation of this research and its result; I am learning as I go.

Speaking of which, the CPG model of this study is apparently a good facsimile of how gait is refined from early childhood steps through later improvement during the maturing process. The CPG in humans gets better over time as it learns the best walk to walk by repetition.

This is exciting as I can see similarities between this system and what I am learning in my Udacity.com artificial intelligence class. The evolving understanding of complex bio-mechanical systems as well as advances in AI make this a great time to be a student of such things.

Math as Model

Sunday, July 1st, 2012

My elementary math education in must have been effective – to this day there are specific, although arguably obscure, things that I remember. Specific useful items such as multiplication tables – check. Addition, subtraction, division – check. A little on the obscure, but still useful side, the concepts of additive and multiplicative identity. Respectively, those two identities are, zero plus anything equals that same anything, unchanged, and one times anything equals that same anything, again, unchanged . So identities – check. Rote facts and concepts dutifully absorbed. But one key idea was missing. Why does math matter? What’s it good for? Just a little bit of mathematical philosophy would have gone a long way.

That key missing idea is actually pretty simple – it is that math serves as a model; a method to simplify and understand the world. Once modeled we have a means to comprehend, deal with and predict behaviors in the future.

These things are essential to problem solving – this is the basis for so much of our industry as humans.

This concept might seem obscure at first, but throughout my many years of practice as an aerospace engineer, I’ve learned that the concept serves as the foundation of understanding – models are key to our understanding of the world.

If someone had explained this to me as a child, in terms I could comprehend, which I think it easily realizable, I could have avoided substantial frustrations while learning math – years of math classes that took me all the way through five semester of college math.

Even though I survived my journey could have been much easier.

As a young boy growing up, I was surrounded by models as plaything. Building blocks, Legos, Lincoln Logs, Tinkertoys and even model airplanes. All of these things let me build models. Along the way I was asking , and answering questions that were important to me at the time. What would happen if I stacked the pieces this way, or that? Do I need attach wheels here to make it my creation balanced? What would my model look like if I changed this aspect or that?.

If I would have known that learning math was all about modeling the world, my understanding and ease in class would have been greatly facilitated. After all, for me, modeling was fun.

How much easier would my education have gone? Rather than just survive, I believe I would have thrived.

Will Robots Rule the Road?

Thursday, June 28th, 2012

Robot cars are a reality, having already proven themselves in desert and urban road settings, accumulating thousands of miles of travel in the process. Sebastian Thrun was the leader of a Stanford University team whose entrant, Stanley, won the DARPA Grand Challenge in 2005. Sebastian is also the co-founder of the online university Udacity.com. Fortunately I will benefit from both of these facts because, as of yesterday I enrolled in Udacity’s class, cs373, Artificial Intelligence (Programming a Robotic Car), as taught by Sebastian himself. That’s kind of like being asked to land on the moon with Neil Armstrong as pilot.

Only one lecture in, but I can tell already it is going to be a great course. Taught using python, it seems to be a perfect extension of what I’ve learned in my two preceding Udacity classes, cs101 and cs212. Look for my ‘udacious’ impressions in an earlier post.

Robotic driving necessarily involves the application of artificial intelligence insofar as the car has to make autonomous decisions continuously based on it’s perception of its environment using onboard sensors. It also has to effect correct guidance and control commands using its mechanical actuators. Much of this type of command and control is commonplace in other applications, but what makes this different is the need to inform those commands based on real-time application of probabilistic modeling and decision-making.

To digest, and check my understanding, I will reflect on it herein.

a Data Flow Diagram for a simple localization function

The first function is called localization; the robot has to accurately know where is compared to where it has been told it might be. Note that the image embedded above is a Data Flow Diagram in which I will capture my interpretation of this concept using a model notation familiar to the practice of functional analysis.

The map of where the robot might be has several components. The first is represented by a base probability that is equal to 1 divided by the number or possible locations. If however some of the locations have distinguishing features that can be sensed by the robot then another product can be introduced. Detection of a sensed value representative of the feature indicates a higher likelihood that the robot is next to that feature. However there may be more than one instance of that feature. As such a probabilistic signature has to be formed. The overall map is representable by the product of the feature map as multiplied by the base probability.

The robot sensing of a location feature can be simulated in code and then provides the basis for a probability equation that allows to robot to say to itself, if I sense this type of feature, when compared to the input location map, then I am at any given location with a particular probabilistic certainty.

The requisite math, and its implementation in python, were covered in the lecture. To me it was gratifying that what I have been learning in cs101 and cs212 enables techniques required to solve AI problems. Furthermore I welcome this class because, despite five semesters of math for my aerospace engineering degree, I was not deeply exposed to probability theory in that curriculum.

As an aside, and in the spirit of “synthesis,” which is part of the system engineer job description, I was struck by the similarity between localization and the “orientation” part of the OODA Loop. I have discussed the OODA Loop in a different context, for my own decision-making purposes, in an earlier post. So for different reasons I am exposed to similar concepts once again. I should not be surprised though. The OODA Loop represents a command and control mechanism that in fact includes a localization component. A component which is carried out real-time by a pilot for effective decision-making in combat. As such combat piloting and robotic driving are more similar than you might think at first glance.

I don’t know what’s next in the class, but if continues to be as interesting as localization was, I’ll be a happy student.

A Brief Introduction to Systems Engineering

Wednesday, June 27th, 2012


Systems engineering is a specialized set of skills that deal with how large and complex projects are acquired for customers like the US Government. Often applied to the development of weapon systems by the defense industry, this approach was also applied for a time in the software development community.

The benefit of the approach, when practiced properly, is that large acquisitions will be more efficient during their development, they will be more likely to be delivered within their cost and schedule constraints, and they will more likely function as required once deployed.

Introduced in the late 1970’s the approach relies on use of diagrammatic models as a means of understanding the context of the systems, its interfaces and its functional requirements. A seminal textbook on the underlying modeling technique was Structured Analysis and System Specification, written by Tom DeMarco.

The goal for a system, as a prerequisite to full-scale development is to have a complete, correct, and executable specification. To do that, the system’s context, boundary, external entities, interfaces, functions, and data needs are defined throughout the process of modeling the system.

The method uses the power of abstraction to define each level appropriate to its implementation. Abstraction means that only the level of detail required is dealt with at that level, and subordinate details are abstracted and pushed down to the correct level where they are meaning full. For example if the system is military airlift, the highest specification only speaks to the distance, volume, frequency and reliability of transport that is required. The fact fact there may be a new airplane as part of the acquisition, or a ground transportation infrastructure, those are to be considered as lower level components and are separately modeled and specified.

Once potential problems are identified and solved in a process called functional analysis, the resulting models can be converted to a common language set of specification that represent each applicable level of implementation.

Realities of the modern economy, changes in acquisition, including likely reductions in defense funding will affect, and possibility displace, many in the workforce. Even though not in vogue outside of defense, the method still has merit. It simply remains as a challenge to the engineer in transition (from defense to commercial) to discover what concepts and portions of the method are reusable and will complement current commercial development techniques. Understanding these systems engineering concepts will be helpful in preparing for that transition. Although specific techniques may have evolved, the need for correctness in understanding the system being built has not.

New Access to Knowledge Delivery for Everyone!

Saturday, June 23rd, 2012

Here’s a bold assertion – any person, anywhere in the world, who is seeking to learn computer science, and who has access to the internet need look no further than Udacity.com. Enrolling in a class will allow any person free college level education, taught by world-class professors using coursework comparable to that at America’s premier technical universities.

So named by combining ‘U’ for ‘University’ with ‘-dacity’ as the root of the word ‘audacious’, Udacity.com represents a revolution in how knowledge is being delivered.

Frustrated by the limitations of teaching a relative handful of elite students at a time, at exclusive schools like Stanford and MIT, pioneers like Sebastion Thrun are promising, and delivering disruptive innovation in education.

At a time when our traditional university system is showing its limitations in terms of limited access, declining funding, rising tuition and crushing student debt, the prospect of FREE, WORLD-CLASS education is supremely appealing.

The world needs this, and thanks to visionaries like Thrun and others (many from Silicon Valley) it is ready resource, available to one and all.

If it sounds like am a convert, I am guilty as charged. I’ve had the good fortune to discover this right at its inception, in April 2012, and I have already completed two classes – cs101 How to Build a Search Engine (an introduction to computer science using Python programming language) and cs212, The Design of Computer Programs. The latter class was taught by Dr Peter Norvig, who is not only director of research at Google, but he is a recognized world leader in the field of artificial intelligence.

One undeniable benefit of this approach is that each class, which is delivered online in video format, has its own student support forum. All students can interact, one another, the teaching assistants and the professor himself. In fact I have posted questions on the forum to which have been directly answered by Dr. Norvig. When is the last time you got direct interaction with a pioneer and leading authority in the field of artificial intelligence?

By completing a class student get, in addition to the knowledge received, a certificate that indicates a varying measure of mastery, but oddly enough, no grade. This tends to rattle some students who, by habit, think only in traditional terms of grade-based feedback. To think that way is to miss out on the beauty of the concept of Udacity.com; what good is a grade, in a class where every exam is ‘take-home’ and the main purpose is the acquisition of knowledge?

There is speculation that their business model will evolve to include paid-for certifications where exams are somehow monitored and results verified, but Udacity.com has pledged that all their courses will always be available for free. This suits my needs perfectly; I don’t need the grade, I need the knowledge, and the price is right!

To deal with the stresses of our current economic despair and to be sufficiently prepared for our individual and collective futures I believe each person has to become a better version of themselves in all ways. What Udacity.com has to offer to me fits perfectly with this belief and is part of my personal plan forward. I’d invite you to consider for yourself whether this, or something similar could help you become a better version of you. The next offering of classes starts on June 26th, 2012.


That’s my OODA Loop, and Yes, I am Happy to See You!

Friday, June 22nd, 2012

Having introduced the OODA Loop yesterday it’s now time to examine how its application is relevant in my life currently.

Traditionally associated with military tactics in aerial combat, this recurring decision-making cycle consists of these steps – Observe, Orient, Decide and Act. Information from each step feeds forward into successive steps. Similarly, results of each increment feed back directly to the Observe step since they represent significant changes in the overall situation.

This has proven effective in the stress of combat because correctly applied it allows the pilot to respond effectively to the environment and to his opponent. He will defeat the enemy and perhaps most importantly, he will likely survive the encounter.

While I am not engaged in aerial combat presently, I do find myself in a rather stressful situation. I am currently unemployed; my economic survival and readiness for my future are in question. As such, it occurred to me to revisit the OODA Loop with the following question in mind – could I apply it to my present circumstances?

Here’s what’s going on with my OODA Loop, mid-cycle:

Observe – Relevant aspects of my observable environment include, [1] a US economy in a deep and severe recession, with sparse, if any at all, indications of near-term improvement, [2] an aerospace industry that is stagnant with no major US government acquisitions on the horizon, [3] a personal economy that includes mortgage commitments, and retirement savings which, although “above average” will not be sufficient on their own, especially in light of likely Social Security and Medicare reform.

Without making my age an inordinately large part of this conversation I will say that I am too young to take early retirement, but I’ve been around long enough to become vulnerable in terms of age and wage discrimination in my former industry.

If the preceding observations seems overly negative, I will assert that I do have useful skills accrued over my undergraduate education and professional career. These are reusable skills that can be leveraged and repurposed.

Orient – A large part of my orientation step depends on the quality of, and my interactions with my immediate and extended network, and with friends, one of whom has assisted me in a role as my mentor. The interim result of my orientation step is an awareness that [1] software solutions are ubiquitous with little prospect that software’s role in our lives will diminish, [2] modern personal computers are incredibly capable and can be leveraged to host powerful development environments, [3] the open source software movement has produced vast volumes of free software, [4] delivery systems, most notably cloud-based computing have revolutionized how software can be distributed, [5] the internet itself stores expansive resources to learn many things, including software development, [6] new means of “knowledge delivery” are beginning to emerge, most notably Udacity.com, a free, online university taught by world-class professors, from institutions such as MIT and Stanford. Did I mention it was free, and world-class?

Decide – Based on my observe and orient steps I have decided on this path: I will prepare myself to become a hybrid of a systems engineer and a software developer, by following a jointly determined (by myself and my mentor) learning curriculum, using my “powerful laptop” along with open source software development tools fashioned to implement a linux-python-java-groovy-grails-MySQL ramp in order to develop value-added solutions to customers ranging from small business to large-scale aerospace, delivered whenever possible as a hardware/software appliance bundle, or as software-as-a-service (SaaS).

Act – Based on the above plan I will learn specific software skills through [1] self-directed study using borrowed books and the internet, and through [2] successive classes at Udacity.com. Associated actions, on a parallel path to the software learning include, learning the basics of business, and business development through interaction with my network, and by attendance at various meetups and user’s groups. In addition I will be revisiting selected liberal arts educational objectives that weren’t part of my aerospace engineering eduction.

As a result of actions, taken above, more feedback is directed to the Observe step and the cycle repeats.

Note, to tell this story, it has been streamlined. In reality I have already been doing this over the course of a year. I have been through roughly four complete cycles, and this post represents a distillation. At this point I am effectively entering a new Act step which will include enrollment and completion of several Udacity.com courses for the next hexamester that starts Monday the 26th of June. Having completed Dr Peter Norvig’s most recent class, cs212, the Design of Computer Programs I have Observed, Oriented, and then I Decided on the next classes. Note that the classes I will take are different than what I might have expected to take prior to the last cycle through the OODA Loop.

This is an experiment-in-progress, but so far, I’d say it has been effective for me. In my opinion it is a flexible, agile approach. With current economic stresses and uncertainties, combined with concerns over the long term prospects for traditional employment models in corporate America, I believe that this kind of method is as applicable, now, to people in my situation, as it was when first formulated by John Boyd for application to aerial combat.

Is there an OODA Loop in your Future?

Thursday, June 21st, 2012

Being out and about in today's dismal economyJohn Boyd’s OODA Loop as Data Flow Diagram by Michael LaRue presents an array of opportunities and challenges. Since the word displaced is a euphemism for laid-off/unemployed, let's face it, restoring an income stream is one of the most important of those challenges. One way or another, doing that will require some situational assessment and decision-making.

Regardless of how well an aerospace engineering degree and decades of professional experience may equip a person, there is no silver bullet solution, or natural growth path towards a comfortable future, once displaced. A person in this position has to be resourceful and purposeful in moving forward.

Presented with this exact situation myself, I wondered what decision-making framework from my prior experience might serve well? Fortunately for me, something came to mind pretty quickly, the famous OODA loop!

My exposure to this concept came while working on an enhanced threat assessment feature of the Space-Based Space Surveillance system. Don't worry, it's unclassified, or at least it was at the time.

Briefly, OODA is a method for effective decision-making which is composed of a recurring cycle of the following steps: Observe – Orient – Decide – Act. This loop was created by Air Force Colonel John Boyd for application to military tactics in aerial combat. To paraphrase, the objective is to defeat an enemy in combat, and survive, by operating at a tempo faster than their ability to effectively make their own decisions. An excellent introduction to the subject can be found within this wikipedia entry.

For a person in my position, this seems like useful strategy to employ. If you are in a similar situation and don't think it's good, then perhaps you married rich, are already otherwise financially independent, or you've got a better idea yourself. If that's the case I'd love to hear from you; let me in on your secret, please!

To illustrate the OODA Loop I've created a Data Flow Diagram. This is a notation by Tom DeMarco in his excellent book, Structured Analysis and System Specification. I've used this notation frequently, to great effect in my aerospace engineering days. Most other times I've seen it presented though, it's been in a classical flowchart style. Rather than just regurgitate that form, I thought a fresh look might be helpful.

In my next post I will outline how I've applied, and will continue to apply, this approach, to the ongoing process of recreating myself for my future.

Until then, if you've lacking for something constructive to do, at least start doing the first of the two O's – start observing your environment and your circumstances. What could be more important that being aware of where you're at?

Go at Throttle Up!

Wednesday, June 20th, 2012

Check out Zejoop for all your casual event planning needs!



If you know the meaning of this phrase, Go at Throttle Up!, it is because you are familiar with terminology associated with the launch of a Space Shuttle. Or at least you were back when that was a going concern. It is no longer; a going concern – that is. I have heard the phrase myself scores of times, but that’s because I am, or at least was, an Aerospace engineer. In fact the Space Shuttle program was my first job out of college as a recent graduate.

For as many times as I have heard the phrase I’ve always experienced it with a certain measure of awe, but for three times in particular it represents moments crystallized in time. More on that later.

First, let me describe what the phrase means, practically. As any rocket ascends though the atmosphere, the shuttle included, it accelerates towards the target height and velocity that is required to achieve orbit. In other words it has got to get high enough and fast enough to stay in orbit, otherwise it will simply fall back to earth. Since it started with zero velocity and has to get to a fast velocity, at each point in the ascent it is going ever faster. As for the atmosphere, it represents a continuum, from thick and dense at sea level, and becomes thinner as altitude increases until, it vanishes altogether, thus defining the boundary to space. So, the shuttle starts out slow, in a dense medium, and ends up going really fast in a vacuum. Problem is that between those extremes there is a phase when the speed is just fast enough, and the atmosphere just thick enough that, left unmitigated the vehicle will suffer structural damage. In proper aerospace engineering terminology, this region of flight is called Max Q, or maximum dynamic pressure.

space shuttle - DRAWING - go at throttle up

(original art by the author, cross-posted at http://larueart.blogspot.com/2012/06/goodness-knows.html )

The mitigation strategy is two-fold; the flight trajectory includes a roll maneuver shortly after liftoff to minimize angle-of-attack related drag, and, the three main engines are commanded to a reduced throttle setting, just low enough to slightly decrease acceleration until the Max Q region has passed. Once out of Max Q the engines are commanded back to full throttle, hence the in-flight confirmation over the mission control voice link – “Go at Throttle Up!”

It is important to note that when they come, those words are kind of a celebration – remember spaceflight is dangerous – spoken with a measure of relief. They denote that the most risky part of the ascent is over. Steady on to MECO (main engine cutoff), but the worst is behind us.

As for my moments of awe, the first came very early on an April morning, seemingly, a lifetime ago. A student of Aerospace Engineering at the time, I remember clearly the excitement of the launch, filled with anticipation of what it might be like to actually work on such a majestic project. Remember, this was at a time when the nation still brimmed with excitement at America’s accomplishments in space, and this was the dawn of a new era; I was certainly caught up as well – “Go at Throttle Up!

My second remembrance, which was symbolic of a handful more, came when I, a recent graduate, and new-hire, had the privilege of actually supporting day-of-launch activities, monitoring the Shuttle first-stage ascent, real-time from the Rockwell International (my first employer) mission support room in Downey California. Imagine my excitement, watching strip charts showing telemetered data, live, from the launch, and hearing those words, first-hand over the official voice link – “Go at Throttle Up!

Finally, in horror, disbelief and sorrow I heard the playback on the news, the day of the Challenger tragedy, in the winter of 1986. I had since taken a new job with Northrop to work on the B-2 Bomber, so I heard the news second-hand. Still, I had my roots in the Shuttle Program, and I had worked with several of the astronauts who perished that day. Ironically, the cause of that accident was traced to an o-ring failure in which solid rocket booster leakage acted as a torch to burn through the external fuel tank. This led to the catastrophic failure, after Max Q had passed, when the riskiest part of the ascent was supposedly behind, and everyone was relieved have already heard the words – “Go at Throttle Up!

When I took the job with Northrop I had switched disciplines to that of systems engineer, no longer involved with the hard science aspects of aerodynamics, flight control and propulsion. I was happy to fill the role of the systems engineer tackling a different part of the problem space. I was happy and privileged once again for the chance to work the premier aerospace project of its time. Fact is now though, I am no longer an Aerospace engineer, sub-discipline notwithstanding… I am simply me, an engineer by training, but no longer a professional in the field.

I am wondering if, in the continuum of my life, if that was the moment I stopped being an Aerospace engineer, that day in 1986. Many years of gainful employment and legitimate contributions and accomplishments followed, but still… was that the moment I was left to discover my future on my own, for myself, just as I am now, discovering my future, recreating myself. Was that the moment, the moment of passage? From present to future, from the realm of our atmosphere to the unknown that is space… was that that moment? – “Go at Throttle Up!