Jon, your idea is interesting, but I think it needs a lot more investigation before being implemented. As for programming the robots, even when you have these high level languages, as in LabView, the code you write is internally stored in a form more like the "older" styles of code you mention. In the end, these things have to be translated into something a computer can understand. That means a formal language that can be compiled, optimized and translated into machine code.In the end, these codes also have to be precise and provable. I see a lot of higher level languages used, but still the lower level ones are needed to do things the developers of the high level codes did not anticipate.
I agree naperlou - while higher level languages are convenient and typically much easier to use (loved CEC's Testpoint back in the day), nothing beats the control you can get at the lower levels. This coming from someone who still uses assembly when programming PICs- love moving those bits around!
Nancy Golden, Using assembly language with gesture controls may improve response time because of the software being one level above machine code. Therefore, bit processing is closer to the target microcontroller than a high level language like "C" code. Just thinking out loud folks!
Hi, mrdon. I bet bit-bashing code in assembly language provides only a small time advantage over code written in C and compiled. Current compilers provide optimizations and can get very "close" to an MCU's hardware for control. I would much rather read control code in C than try to figure out bit configurations and settings in another programmer's assembly-language code. (Been there, done that!)
OK, mrdon. Some MCU manufacturers offer wizards to help programmers configure the bits and bytes through a graphical interface. The Texas Instruments "GRACE" software, for example, provides this capability for some of the MSP430 processors. A programmer selects the necessary peripheral devices and then selects the desired settings. GRACE creates C-language source code to do the job.
I think the idea of extending vision-based gesture recognition to industrial robots makes a lot of sense. We've written about use of the Kinect vision sensor, a major new input device for vision-based gesture recognition, applied to robotics, as well as this robotic gesture-recognition software based on a 3D bend-and-twist fiber optics sensor used in the film industry for motion capture: http://www.designnews.com/author.asp?section_id=1386&doc_id=245683 Interestingly, those researchers said their next rev would be Kinect-based. A different approach we wrote about would help industrial robots predict humans' next moves in assembly based on a decision-tree algorithm: http://www.designnews.com/author.asp?section_id=1386&doc_id=246646 A member of the Embedded Vision Alliance (whose representatives lectured at our recent Digi-Key CEC on embedded vision) has also written this article on vision-based gesture recognition focusing on Kinect, which also discusses software: http://www.digikey.com/us/en/techzone/microcontroller/resources/articles/vision-based-gesture-recognition.html
The Microsoft Kinect's range of uses that have been reported represent just the tip of the proverbial iceburg. I'm certain we will see it being used for many more applications, including those within the areas of robotics.
Respectfully, you may have a misconception about LabVIEW that is (unfortunately) somewhat common. Many people assume that LabVIEW provides an interpreted programming approach because the code is largely represented graphically instead of through text.
The truth is that "G" (i.e. graphical code) in LabVIEW has been a compiled language for several decades now. At the end of code compilation, LabVIEW code is converted into machine code in the same manner as other programming languages. LabVIEW now uses a very powerful, open-source compiler known as LLVM that is also used by industry leaders like Apple, Adobe and Sun Microsystems.
In addition to being able to compile to machine code, LabVIEW code can also be compiled to run on silicon in the form of FPGAs. The reliablity and performance achieved through FPGAs have made popular as part of the control systems in many robotics and mechatronics systems.
You can read more about the LabVIEW compiler here:
Hi, Naperlou, et al. LabVIEW creates compiled code. It does not create some sort of intermediate code that requires an interpreter. Instead, you get native code that runs on your target processor. And as far as I know, you can mix in C-language code, too, if you need to do something at that level. Also, LabVIEW will compile and run applications in FPGAs.
Gesture controls for video games and entertainment systems are fine; if a gesture is incorrectly there is nothing worse happens than needing to do a reset. Gesture controls on something as fast and powerful as an industrial robot could easily knock ones"block" off, quite literally. Equipment and machines that are capable of being unsafe are probably not a good choice for control inputs that are subject to interpretation. That is something that needs to be kept in mind when choosing an input system, but may not have come to mind when considering a departure from the more standard methods.
William K, I think gesture controls could be used in industrial applications by providing a simple movement/motion protocol. The protocol could have a similar format like sign language but less complicated in physical movement. For example, to stop an industrial process one would gesture a hand pressing an e-Stop (emergency) pushbutton. Also, for critical industrial processes, redundant switches/sensors can be packaged on the machine as well.
Hi, William. People would train robots to respond only to specific gestures. Thus, someone couldn't use an industrial robot to follow his or her every move and start tearing apart an assembly line. Gesture control would require security to prevent unauthorized use or "training."
I can see that an industrial robot that would run the program based on a gesture for a start command could be safer, and possibly even better. BUT as an engineer responsible for safe operations I would NEVER consider leaving out the big red EMERGENCY STOP button. Adding a gesture input in addition would be OK, but to put something as important as an emergency stop function on the wrong end of a lot of software would be very irresponsible. JUst remember those cars with thatbSTUPID start/Stop button that does not work in an emergency situation. There is a very valid reason that E-Stop is not done in software.
Gesture control although a very useful and efficient solution to many engineering problems, might not fit here. Because in emergency situation to have a direct mechanical control is most reliable. There might be alot of safety precautions with gesture control as well, but it is always safer to have a direct emergency control that requires some mechanical action, it is almost always trustworthy.
The Smart Emergency Response System capitalizes on the latest advancements in cyber-physical systems to connect autonomous aircraft and ground vehicles, rescue dogs, robots, and a high-performance computing mission control center into a realistic vision.
Focus on Fundamentals consists of 45-minute on-line classes that cover a host of technologies. You learn without leaving the comfort of your desk. All classes are taught by subject-matter experts and all are archived. So if you can't attend live, attend at your convenience.