in

WPF Design and Development

IdentityMine Team Blogs

David Kelley

A day in the life of a humble software architect... doing C#, WPF, Silverlight, Legos, Fuzzy Logic AI and/or whatever is the latest and greatest or more importantly the coolest techo mumbo jumbo...

Robotics Design Patterns

For now I'm going to use the following layout for design patterns with the MS robotics environment. Now don't get to excited. I haven't worked out really any details, this is just a start...

Title: Component/Part/Object
Problem Space: BaseLine
Abstract: All Windows/Legos Based robotic systems are derived from this pattern. Given the current state of the world you can't get around it.
Context: Microsoft Windows.NET, Microsoft Robotics API's, Lego NXT, Bluetooth
Known Uses: all
Related Patterns: all

Title: The Navigable System
Problem Space: Navigation
Abstract: Derived from Component/Part/Object this patterns address the abiltiy for a robot to move around in 2 or 3d space.
Context: Microsoft Windows.NET, Microsoft Robotics API's, Lego NXT, Bluetooth
Known Uses: Manuvering in a given area some kind of robot
Related Patterns: Component/Part/Object

Title: The Stationary Device
Abstract: Derived from Component/Part/Object this patterns address the abiltiy for a robot preform a given action.
Problem Space: The Machine
Context: Microsoft Windows.NET, Microsoft Robotics API's, Lego NXT, Bluetooth
Known Uses: Preforming actions, such as building or a repetitive action.
Related Patterns: Component/Part/Object

So regarding problem spaces I feel that there are others but for now I'll deal with these. So I have built robots as seen in earlier entries for the first 2 patterns and now I am focusing on the last one. The robot I built was a automated gun emplacement. In the processing of building this one I also learned more about the lego IDE including how to keep the robot from timing out and how to use variables and other complex 'lego' programming components. For the most part you can do anything you want but things to keep in mind are how variables are used and how they have to be wired up separately and you need different blocks for read, write and comparison operations. And all variables are global and have defined globally and with a 'brick'.

Back to my automated machine. So the idea is that the gun will rotate over a set of degrees and when it detects anything in its way it will fire as many rounds as it can it 1 or 2 second bursts. The processing of building this I also got the hang of gearing operations with the NXT servos which I'm sure will help with building other robots. I will include a picture of this with this entry. You'll note that in this we end of with gearing on 3 planes and we can achieve step down or up solutions with this design.

Comments

No Comments

About david.kelley

David for the past 10 years has focused on distributed application design and emerging Microsoft technologies on the web. Having helped design and build some of the largest systems for companies like Microsoft, Onyx Software, Saltmine, Giordanous Group and more and of course our favorite company Identitymine, he has been on the leading edge of applying the latest tech to real world business problems. David’s technology breadth includes everything from SQL Server to Windows/WCF and Silverlight. David’s accomplishments also include developing new technologies such as self editing XML files and related XML technologies to fuzzy logic systems and advanced web user interface design.
© 2007 IdentityMine, Inc.
Powered by Community Server (Commercial Edition), by Telligent Systems