Friday, October 25, 2013

The Truth About Agile

The Truth About Agile: http://www.telerik.com/agile-project-management-tools/blogs/13-10-23/the-truth-about-agile-top-30-agile-myths--busted.aspx

One of the better write ups on Agile I have read in a while.  "As described in the myth “Agile Projects don’t provide Budget Estimates”, agile teams fix the cost, fix the date, and vary the scope. The onus is on the Product Owner to make sure the requirements are not only prioritized correct, but ordered correctly. "

So very true!  Which brings up an important aspect of Agile I don't see many publication how, "How to be a good Product Owner".  If you have a customer, project manager, or product owner - whom ever is setting the priorities - if they are not effective, at that the end product is still going to suffer. 

For robotics and robot builders this is important to keep in mind.  Set your goals and prioritize!

Tuesday, October 15, 2013

Agile - For Robotics

Agile can be defined as - "Characterized by quickness, lightness, and ease of movement; nimble."

Agile in the business world, specifically software development is a group of development methods based on incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development and delivery, a time-boxed iterative approach, and encourages rapid and flexible response to change. It is a conceptual framework that promotes foreseen interactions throughout the development cycle.

When put into action successfully it makes for a quick and lean development cycle where software developers are always releasing updates or features to their software. 

Think of it this way as it relates to robotics; imagine you are building a robot that has human like abilities in both form and thought.  It's going to take a lot of work and a lot of time to perfect this robot.  One method to build a robot like this would be to hide away in a dark lab like Dr. Frankenstein slowly going mad while perfecting your creation. 

  OR...

You could apply Agile methods and practices to the design of your robot and release and add features incrementally.  What I'm talking about is applying Agile for the solo developer, in the case a robotics developer who works on both hardware and software.  Agile is designed for teams of software developers, so some overall modification to the methods must be made.  There are many examples of solo agile developers if you seek them out in an Internet search so what I'm describing is nothing new, although it may be new to the world of robotics.

Agile the J2R way

The main objective is to Deliver Value Incrementally.
This is done with three steps:
  •     Daily Standup (a review)
  •     A defined set of Goals/Vision (with priority levels)
  •     Build/Release (carry over)
We'll start with your goals and vision.  You must start by setting a set of clear of objects you have to complete with your robot hardware and software.  For example, I wanted to build a new robot recently to test software ideas for the EZ-B board from EZ-Robot. 

My hardware goals were this:  Build a light weight mobile robot with 2 drive servo motors, a servo controlled gripper, an interactive head, sonar sensor, wireless camera, touch/pressure sensor, voltage monitor for battery level indication and EZ-B wireless controller. 

My software goals were this: Use EZ-Builder software to create a robust set of manual controls to test the robot and it's hardware.  Create controls to allow for voice commands.  Create controls and scripts to allow the robot to autonomously explore about an environment.  Test the ability of the robot to find a target with the camera and attempt to grab the object with its gripper.  Specifically test touch sensor and voltage level sensor integration.  Test and export of values from the EZ-Builder to external software.  Test the import of values to the EZ-Builder software from external software. 

With my goals defined I could set a build/release schedule.  Agile software development is usually a 2 week cycle. For the robot build or solo inventor I think the cycle is important to set and keep but not the specific amount of time in the cycle.  For example if you work a 8-5 job like I do then you are going to have a limited amount of time to dedicate to your project.  What works for me is a week long cycle. 

Now that you have your goals and cycle you need to break down your goals to fit in the cycles.  For example week 1 might be hardware fabrication.  Week 2 might be setting up the software for testing of hardware under manual controls.  Week 3 autonomous navigation.  And so on...  The idea is to have a pre-planned set of objectives to complete in every cycle that account for all of your goals.

Another part of the cycle management is the priority of the tasks.  For example if in week 1 you fail to complete the hardware fabrication, your other tasks may fail.  So that task may need to "carry over" into week 2 or 3 until it is complete.  A goal such as "Test a pressure sensor" if it were missed in its weeks cycle it may be something that can wait and be put into a "back log" of tasks or project goals that were not started or completed.

So within the cycle management we have "carry over" and "back log".  This is a way to mark your project tasks.  Do they get put on the back burner in a back log pile?  Or were they started and not completed or are they critical, if so they might need to carry over to the next cycle. 

Last but not least is the Daily Standup.  This is designed to be a review point for the project.  In Agile software development this is done daily and meeting boils down to 3 questions for each team member:
  • What did you do yesterday?
  • What will you do today?
  • Are there any problems that are getting in your way?

  • For robotics, this is fantastic to do if you are working with a team.  If you are a solo developer I still recommend implementing a review process where you answer those 3 questions.  I currently implement this on a weekly bases.  Agile software development would call this a cycle or iteration review between cycles.  I find it helpful to review what I did, what I want to do and what problems I encountered. 

    Now, all this Agile stuff might sound like things you naturally do anyway at least some of the time.  But if you apply Agile to your robotics development I think you'll find you accomplish more than the traditional method of:  Build a robot, play with it for a while, get frustrated with some aspect.....leave it on desk.....move it to a closet.....see something cool on the internet that makes you want to play with your robot again, dig out the robot, dig out your parts and tools....work like a crazy person on your robot for a couple of sleepless nights.  - Repeat the cycle.

    Thursday, September 12, 2013

    NEW J2R Website!!

    Ewww, Ahhhh....that new website smell.  I moved the J2RScientific.com website to a more professional hosting service, namely Yahoo!  Yahoo really does offer some neat features for small business like mine.  The old website was hosted on Tripod, AKA Lycos, that service in my opinion has gone down hill like a bad neighborhood in Detroit.  I really was getting the impression no was steering the ship there at Lycos.  

    Check out my new site at J2RScientific.com

    Tuesday, August 13, 2013

    The Idea Box = FDD (Feature Driven Development)

    If you are like me, you are always thinking of new ideas.  Perhaps, like me, many of your ideas are not that great.  If you also have a habit of jumping from one idea to the next without finishing many of your projects then you and I have a lot in common!

    Coming up with new ideas is great!  But chasing your tail trying to switch gears in the middle of a project leads to what I call "Grass is Greener-itis".  For me, each new idea sparks new energy and new potential.  Every new idea has the potential to be the next "big thing".  If I don't work on this new idea I might miss out on the best opportunity ever!!

    I've found if I don't govern the tendencies to jump ship for each new idea I never complete anything.  If I never complete anything, I never truly learn anything.  Without learning I can't properly implement new ideas.  And so on, and so on....

    To help cure my "Grass is Greener-itis" I have started using an idea box.  The concept is very simple, I use a $1 plastic pencil box and not down my ideas on note cards and place them in the box.  This does two important things for me.  It lets me write down my idea so I don't have to keep it in my head.  It also give me time to further ponder the idea over time.  I treat my idea box like my own personal suggestion box.  Much like you might find a suggestion box at a restaurant.

    I note my ideas on 2.5" by 3" card stock.  The small size helps keep my ideas brief, which I find also helps me.  It keeps me writing out complex ideas for example: "build a terminator, teach it track people, give it gun, take over the world".  That complex idea would break down into 4 ideas with 4 cards.  On my idea cards, I try to draw pictures, add concept ideas in bullet points and I always note the date!  The date lets you track your ideas over time.  In this example, you could track the ideas over time. 

    Here is a picture of my idea box.  I made a divider out of paper because my idea box is used for ideas and small sketches. 

    The idea box plays into my personal implementation of AGILE.  Part of AGILE is to focus on feature driven development or FDD.  The ideas in my idea box represent features in my overall robotics and creative endeavors.  I weed through these ideas through a review process.  On a regular bases I sort through my ideas and arrange them in relevance to things I want to work on or things that might add value to my work. 

    I never throw out the ideas; bad ideas simple are moved to the bottom of the pile.  In my example above, "take over the world" would be moved to the bottom.  "Teach it to track people", now that might be moved to the top as I would actually like my robots to do that.  When I am ready to work on an idea or two, I take them out of the box and tack them to a cork board.  From there I can further review the ideas, work on them or reject them.  Completed ideas, I mark them complete and save them in a complete box. 

    If you are serial inventor, tinkerer, always thinking of new ideas, or just have some big projects like a house renovation I encourage you to create your own idea box.  You'll find it, a good idea.  :-)

    MicroMedic Contest

    The MicroMedic Contest sponsored by Parallax and the US Army proved to be rather hard.  Designing a device that could be used in the medical field is a far cry from robotics design.  Because when you design something as a medical device you are designing something to be used on a human, presumable a sick or injured human. 

    Our final design concept was a wearable health monitor with a wireless interface.  Our design used the Parallax Propeller Board of Education as the main controller.  We also used the LM35 temperature sensor, wireless heart rate monitor, SPo2 finger sensor, 4 directional tilt sensor and mico-sd memory card slot on the Prop BOE.  We wanted to add a Bluetooth link with an interface for PC or smart phone but we did not incorporate it.  We also used the IR detector and IR universal remote control from the kit to create a user interface for settings and control. 

    We were able to integrate all the sensors but I feel we were pretty far from a truly useful product, but we were on the right path.

     (Work in progress)


    In the end out project suffered from personal time management, things kept getting in the way and the time for the project and contest kept being pushed back.  From this experience it has lead me to study AGILE.  AGILE is a system used by businesses, usually software development teams to continual release product updates through value added increments.  It's usually applied to teams where you would have managers, project managers, sales managers, programmers, application testers and so on.  But there are many articles on the web were AGILE has been adapted for individual use.

    My next post will follow up on how I have implemented AGILE.

    Monday, July 22, 2013

    Playing Catchup

    Lots to catch up on in robotics news from my lab.

    First off, I have a new "Robot Movie" on favorite list, it's "Robot and Frank".  It's a very cute movie with a well played humanoid robot, awesome cast and neat story plot. 



    Next in lab news, Heather and I have entered the MicroMedic 2013 contact sponsored by U.S. Army Telemedicine and Advanced Technology Research Center (TATRC), Carnegie Mellon Entertainment Technology Center, and Parallax Inc.  So far the contest has been kicking my rear end.  Turns out attempting to design a medical device is easier dreamed about then accomplished.  But (fingers crossed) we have another week to complete our prototype and submit out entry by July 31st, 2013. 
    http://learn.parallax.com/micromedic

    My newest purchase was an EZ-B bluebooth robot controller from http://www.ez-robot.com. I'm very excited about the potential of the EZ-B robot controller and kit.  If you have not heard of it, please check it out.  In a nutshell traditional robot building requires you to buy a micro-controller like an arduino create a custom program to control devices connected to the arduino - connect to the arduino to a computer via a wireless link - write the code for the arduino to communicate with a pc - write code for the PC to communicate the arduino controlled robot - keep developing the software on the PC to do things like image processing, face detection, color tracking, voice recognition, speech output and so on. 



    The EZ-Robot concept with the complete kit gives you a pre-programmed controller with bluetooth link, wireless camera with usb PC interface, a sonar sensor and enough servos to make most any beginner to intermediate level robot.  It also comes with software for your PC that lets you point and click your way to robot programming.  Instead of programming a microntroller with code on how to move a servo you simply tell the EZ-Builder software to set a port on the controller as a servo, set the range of motion you want (if you want to limit it), add control interfaces if you want (like arrow keys for manual control or script entries to automate process; like see a face, say hello). 

    Best of all there is a very robust support and educational resources in place for the EZ-Robot system.  the website offers and online manual, many beginner videos and a very supported online forum with fellow EZ-Robot owners.

    Overall  I am extremely pleased with the EZ-Robot product and I look forward to sharing more about my EZ-B robot as time goes on.  You can ready about my first robot with an EZ-B from the EZ-Robot support forum: http://www.ez-robot.com/Community/Forum/posts.aspx?threadId=4020

    Last but not least, I am builder a Coaster Bot for the Jameco Coaster Bot contest, which is due 8/31/13.  http://www.jameco.com/Jameco/workshop/challenge/challenge-coasterbot2.html

    Oh, and I have started to build my own army of troopers (WHAT!)  :-) 
    Seriously, I'm building a StarWars themed storm trooper robot build around an Ardbot chassis from http://www.budgetrobotics.com/  - details, pictures and videos to follow in the coming months. 

    As you can see it's a busy time in the J2R Scientific research lab. 







     

    Thursday, March 28, 2013

    Mensa Speech: Robots for children with Autism

    On 3/23/13 I was invited to speak at the Mensa Regional Gathering in Dayton, OH. http://www.dayton.us.mensa.org/index_files/RG.htm  It was my first time at a Mensa event and my first time publicly speaking about how robots can be used to help children with autism and other special needs.

    You can download a copy of my presentation from J2RScientific.com

    I brought my Gold J2 robot which is a prototype of a new type of J2 which I'm going to call the "J2 Action+"  It's a standard J2 chassis with articulated arms and addition electronics including a Bluetooth link and a wireless camera.  I hope to have more information about this robot model and pricing on www.J2RScientific.com soon. 

    I also prepared a rather lengthy PowerPoint presentation.  I had an hour and half to speak and I must be more of a talker than I thought because I ended up going over my time and did not get to show everything I wanted to in as much detail.

    It sure was a fun time.  Everyone I met was very nice and welcoming.  I received good feedback on my presentation.  I got the sense that everyone understood all of the robotics design concepts I brought up, even my thoughts on a new robot/artificial intelligence frame work.  I'm accustom to needing to cover topics from the prospective of audiences that need more general background information on robotic concepts.  I believe I could have presented information at a much higher level.  When giving a presentation it is hard to gage where your audience will fall in their background knowledge.

    In short, the Mensa gathering was a delightful experience with a group of people who are funny, witty, interesting, knowledgeable on a wide range of topics and were very welcoming and friendly. 

    Tuesday, March 12, 2013

    Robot Combat League on SyFy

    The Robot Combat League on SyFy Tuesday Nights at 10pm (EST) is a really awesome new show.  It features full humanoid size robots which were all prebuilt by the same robot designer.

    http://www.syfy.com/robotcombatleague

    The robots are given to teams of two who then have to pilot the robots in a combat arena to fight them.  The teams are pitted against each other in elimination style matches. 

    My favorite team is Team Crash fighting the robot named Crash.
    http://www.syfy.com/robotcombatleague/crews/crash

    The team features Intel engineer Dave Shinsel who also built the Loki robot.  http://www.dshinsel.com/ one of the most sophisticated hobby robots in the world.  It also features his daughter Amber.  Team Crash lost the first robot contest on the show and had to fight an elimination match; thankfully they won their match after a broken arm on Crash.  My fingers are crossed they win every match!  Go Dave and Amber!!

    I love the show and the concept of the show.  However, to achieve the fighting effects in the shows I perceive that the robots are all built with certain physical design limitations that allow them to break more easily in certain sports.  The robots use hydraulics which no doubt carry a lot of force, but the sparks produced during hits appear to be from placed explosive charges.  Each robot seems to have "sweet" spots where if hit correctly will render the robot a pile of junk. 

    I don't think the show is "fake" but the added theatrical effects of the robots fighting take a little of the sense of magic away.  It would be like watching a magician do a card trick but you know how the trick was done.  But I understand the added theatrics keep the non-robot builders watching.  It does seem like a real life "Real Steel", which is totally awesome.  The robot builders behind it all should feel very proud.

    What would be really awesome is if it turned into a real sport where teams built their own robots to fight.  I know that already happens in robots wars, but fighting full size humanoid robots is totally different. 

    Sunday, March 10, 2013

    Takes a licking

    I hate when my robot breaks!  I walking by my newest robot a prototype of a new J2 robot model and blammo, my gold J2 hit the floor and busted. 


    He looked so cool in pieces all sprawled out I had to take a picture.  It reminded me of when Johnny Five was smashed and beaten up in the movie Short Circuit 2. 

    Not to fear though, this Humpty-Dumpty story has a happen ending.  My gold J2 did go back together and again and none of the Kings horses had to be called. 

    Friday, March 8, 2013

    King of the Nerds

    Who watched this season's King of the Nerds on TBS?  http://www.tbs.com/shows/king-of-the-nerds/

    Well I got hooked on it half way through.  My favorite nerd was Virgil, I wish he would have lasted longer/won.  But the cast featured a neat collection of nerds including a NASA scientist.  It had a little something for every nerd.  I heard they will have a another season and I'm looking forward to it. 

    But in the mean time....

    I crown this guy King of the Nerd Keyboardists http://www.youtube.com/watch?v=TRCQmNMOqUY 

    How can you watch that and not want 12 keyboards?

    Saturday, February 2, 2013

    Daniel's new robot

    Today my youngest brother-in-law Daniel built a robot with a little help from Heather and I.  His robot used the old body and clothes from my dissected "David" robot.  The head is a Halloween skull I had previously decorated as Terminator Endoskeleton Head.  The arms are made from plastic wire guard links removed from a server terminal rack mount system.  The linked plastic pieces let the arms move.  The main body is two plastic containers.  The legs are wood.  After much debate, work, re-work, undoing and redoing the hands are simply small blue mittens.  :-) 

    After building and playing with his robot I asked him what he was going to name it.  He said, "Good Idea.  I'll name him Skeleton". 

    The build was fun.  Seeing Danial make choices in the design and use his creativity was awesome as his ideas came to life.  Seeing his joy when he asked if he could keep him and take him to his house with him and my answer, "Yes, he's your robot", was the best.  :-) 



    Happy Roboting!  And remember, there is no right or wrong way to build a robot.  If you are having fun, you are doing it right!

    Monday, January 28, 2013

    In Other News

    My friends at www.RobotBASIC.org have released their new robot kit for a low introductory offer. http://robotbasic.org/6.html The robot is build to go along with their RROS chip.  What they offer is unique I think because you can't program the chip in a traditional microcontroller way like the Ardiuno or Basic Stamp.  Their RROS chip is pre-programmed with software for a preset interface options.  Normally with a Basic Stamp type microcontroller you could pick any of it's 16 i/o pins to be an input or an output.  With the RROS chip, each pin is assigned to something or an optional something.  For example pin 1 might be set for either sonar or IR sensor, and so on. The nice part is it is designed to work with their RobotBASIC program which is free.

    I find it interesting in its design and concept.  It does not match up with my design interests in robotics right now but I wish my friends at RobotBASIC very good luck with their kit.

    And in other news....I really need to try to watch the TV show 60 Minutes more often.  They often cover interesting subjects like March Of The Machines from this last Sunday on 1/13/13.  The video can be see here: http://www.cbsnews.com/video/watch/?id=50138922n  This article says the A3 or Association of Advancing Automation was not happy with the 60 Minutes piece.  http://www.roboticstrends.com/consumer_education/article/60_minutes_robotics_segment_stirs_controversy/?utm_source=RobTrendsWeekly&utm_medium=email

    I'd didn't see anything wrong with the piece.  What do you think?

    Robot Vs. Tiger. http://www.youtube.com/watch?v=UbpXw95WbHE If it had a J2 Laser I bet the cat would have chased it.

    And incase you missed it, CHARLI The Robot Gangnam Style:  http://www.youtube.com/watch?v=kmeJvkN4ntI  "Oppa is Gangnam style.......Eh- Sexy Lady oh oh oh oh"

    Tuesday, January 22, 2013

    Red J2 Out the Door

    The customer's finished J2 in a custom red paint scheme was shipped last week along with a bonus, the new J2 Laser. 

    The J2 laser consists of a bracket, a micro servo, a 5V red dot laser module and connecting wires.  The new laser module will be an option for J2 robots or available as a separate module from www.J2RScientific.com


    Wednesday, January 16, 2013

    Heat Shrink Tip

    When soldering it is a good idea to cover a solder joint of wires with heat shrink.  Sometimes if you have a solder joint with a bulge or sharp edges sticking up you can cause the heat shrink to tear when it is heated and shrinks. 

    To avoid this:
      1.) Cut the heat shrink tubing so it will more than cover the solder joint of the wire.
      2.) Place the heat shrink over the solder joint of the wire.
      3.) Apply heat first to the each end of the heat shrink so it shrinks around the wire
      4.) Apply a modest amount of heat to the center of the heat shrink so it shrinks but is not too tight around the solder joint.

    For larger solder joints you can use a thin covering of electrical tape around the soldered wires then use a large diameter of heat shrink tubing.  This will help protect against sharp edges of the solder from tearing through the heat shrink.

    And if you are used to using a lighter for heat shrink, think about investing in a heat gun.  It'll make your projects much easier and safer.

    Happy Roboting!

    Saturday, January 5, 2013

    In The Lab Now

    Two new J2's are in the lab.  The silver one is a rebuilt J2 I made for myself.  It is the first of a new set of J2 robots that will be used for further research into collaborative game play, human interaction and hunt/avoid behavior.

    The awesome looking red one is a custom J2 for a new customer.  The customer let me take a little creative license when he requested it in red.  I made the arms and wheels black to really make the red body and base pop.  The customer gave me a thumbs up on the color scheme so the assemble will be completed, programs loaded and tested and this sharp looking J2 will be shipping out soon.