Lego Robotics Design Part 2: Stop, Drop, and Roll!

When we left off last post, my design partner and I had built and programmed a robot that could pick up and store 6 colored golf balls. Now the challenge was getting the robot to be able to deposit each ball into the pocket of corresponding color, and to complete the design in less than a week.

Stage two of the design process begins with a box of Extra Toasty Cheez-Its. As you’ll recall from last post, the robot sorts red balls on one side and blue on the other, so our depositing system must have to involve some sort of selective release system so as to dump only balls of one color at a time. With scissors and some glue, I set to crafting the (now empty… burp) Cheez-It box into an element that our classmate CJ termed the “turkey-tail.”

The turkey-tail concept is simple — after our robot has collected all 6 balls, it will back up to the first, blue pocket. Once the robot is snug against the side of the first pocket the turkey-tail will rotate 90 degrees to the position of the blue balls, thus dropping the blue balls into the blue pocket. Then the robot can proceed to the second, red pocket and rotate the cutout of the turkey-tail 180 degrees to drop the red balls.

Remember those Mountain Dew cans that made such a brilliantly resourceful ball-storage solution? As you can see in the photos above, those cans were nixed from our design pretty quickly. My partner and I discovered that the malleability of the aluminum cans would readily allow any balls traveling at a large enough velocity to slip past the turkey-tail, so we had to devise a new solution. After a few hours of redesign and testing, we settled on a simple ramp design.

We built and programmed early into the mornings, having our work cut short multiple times by the college’s 2:00 AM closing time. Ultimately we finished the project just in time for class-competition day — Our checklist was nothing less than fully checked:

Class-competition day arrived. Nerves were high. Rest was lacking. When our turn came around, my partner placed our robot on the track and ran the calibration program. Then we sent it off to do its robot magic…

FAIL

So, our robot worked, just not all too well. We managed one perfect trial and a couple of decent trials on the competition day and we came out on top, leading our class!

Here’s the catch — the winner from each individual class competition goes on to compete against all the others in the school-wide competition. My partner and I had won in our own class, but now our robot would be pitted against all the best robots in the school. We knew that to have any chance at the gold we would need to greatly refine our robot. Immediately we began brainstorming, and we pinpointed 3 elements of our design that we would need to refine if we were to have any chance at victory in the school-wide competition:

Asked and answered:

In all honesty, most of our two remaining days were spent fine-tuning code — a tedious process which I will not share here for fear of putting you, dear reader, to sleep. As for our building methods, perhaps they were a bit janky, what with the generous use of tape and popsicle sticks, but we got the job done.

And we did get the job done. On our last late night before the school-wide competition, my partner and I finished fine-tuning our bot it consistently achieved perfect trials.

On the day of the school-wide competition, my partner and I christened the robot Athena after the Greek goddess of wisdom and war strategy. Then she was off to compete!

Athena, unfortunately, experienced performance anxiety at the competition, and for the first 3 of 4 rounds she only deposited 3-5 of the 6 total balls. Athena was still in the running, but we’d need to achieve a perfect trial — successfully deposit all 6 balls — to be able to pull off a victory.

The issue keeping us from that perfect trial was that sometimes Athena would decelerate sharply which would jostle the stored balls and sometime allow them to roll back off the top of the storage track, like so:

Well, in Engineering you’ve gotta be prepared to think on your toes — identify a problem and respond to it with the limited resources you have at hand. I quickly devised a solution:

We did not have time between rounds to test our solution, so we just set Athena off for the 4th and final round and crossed our fingers.

Perfect. Run. Hell yes.

Athena picked up all 6 balls, no problem, aptly dropped the blue balls into the blue pocket, navigated to the red pocket, and deposited the red balls. Athena had performed, and by a mere 20 point lead we beat the competition!


What a validating experience! I feel that my years worth of experience with the LEGO system allowed me to problem solve effectively and helped to think realistically about what is and is not possible with the LEGO parts we were provided.

Of course, this competition was as much a coding as a building challenge, and my partner deserves the lion’s share of the credit for the coding that took Athena to gold. He spent many hours developing an infrastructure to contain our elements of code; problem solving coding issues late into the nights and carrying out the tedious process of fine-tuning the behavior of the robot. I always like to say that he is the definition of a “gentleman and a scholar.”

Also, thanks to Clockworksparrow for all the professional level photographs of the completed robot that have appeared across these two posts!

Ladies and gentlemen, that’s going to do it for today’s post. That’s also going to do it for this blog.

Maybe sometime your favorite LEGO fan blog will return, but for now it’s time for me to focus on Mechanical Engineering, which is kinda like LEGO in its own right.

Thank you for reading and enjoying the Royal Brick Blog for the past 4 years — It’s been a time and a half! Now go! Stop reading this and go have an extraordinary day and a happy New Year!

~ The Royal Brick

Lego Robotics Design Part 1: Collect ’em Balls!

Well hello! It’s been a while, hasn’t it? Today I’d like to share the design process for a LEGO project that earned me college credit and some recognition, too!

This Fall I began my first semester at community college, where I am pursuing a degree in Mechanical Engineering. At the school I attend, a particular introductory computing course is required program-wide for freshmen. To complete this class, students must participate in a competition where the goal is to create a robot that can complete the following tasks autonomously:

  • Follow a track
  • Detect the position and color of 6 balls that are placed randomly on the track
  • Pick up and store 6 balls
  • Sort the balls by color
  • Navigate to two pockets
  • Deposit each ball into the pocket of corresponding color
Competition Track

To began preparing for competition day, students formed into teams of two and three and every team created the same base model very similar to the official LEGO NXT robot shown here:

LEGO NXT Official Model

The base model we all built was outfitted with a light sensor to allow the robot to follow the black line and a touch sensor to detect the edges of the pockets, but our robot also needed to be able to detect and collect colored golf balls. I spent my Thanksgiving break completely redesigning the robot’s structure:

Here’s the big idea: Using the distance sensor (sonar), the robot will detect how far it is from each ball. With the color sensor, the robot determines whether the ball in front of it is red or blue. Next, the robot will turn to one side for red and the other for blue and scoop up the ball into one side of the partitioned claw.

My partner and I developed my original design and iterations ensued:

Ultimately, after wrestling with my original design for about a week, my partner and I decided to return to the official LEGO model, and we proceeded designing by making additions and modifications to that official base model. We shifted some of the Mindstorms components — this allowed to to have a much more compact core bot, and our first key addition to the base bot was made — a revised pair of lifting claws to collect the balls:

During one of our late night building sessions at the college, my partner and I were brainstorming potential ball-storage solutions. Our first solution came from an unlikely source… the recycling bins! Some Mountain Dew cans I rooted out of the bins did the trick and provided our robot with a ball-storage solution!


Now the robot could collect and store all 6 golf balls. Nice! Next we needed to tackle a ball depositing system, and in my next post I will detail that design process and I will also discuss how the robot performed on competition day.

Stay tuned for part 2!

A Stupendous Adventure – The Hobbit, a Stage Production!

Greetings, all! The Royal Brick, at your service!

Runic F

Today’s post is a special one! For the last month, I’ve been practicing for my first ever play. The production is The Hobbit, which is one of my favorite stories of all time, and to top that, the cast members are the most wonderful people! Today is the last day of tech week. Tomorrow, we perform.

I’ve been having so much fun, I couldn’t resist putting some bricks together to try to recreate the magic of this show:

 

IMG_0173

 

Above is a recreation of our Smaug prop. The very free form nature of the real, paper mache prop is a challenge to recreate in LEGO, but curved and sloped pieces allowed me approximate the shapes . Here’s a (very blurry) picture of the real prop:

IMG_0251

This production has been marked by a lot of goofing around. I think the picture I chose to LEGO-ify shows that (I wish I could say I covered our Bilbo’s face with Martin Freeman’s to protect her identity, but this is really her face…):

IMG_0151

IMG_0186

I know that my fellow cast members are reading this, so I’m going to thank. Thank you for being such positive, funnyaccepting, caring, talented individuals. I can genuinely say this production has been one of the highlights of my life, and that all comes down to you!

Thanks for reading everyone, and have an incredible day!

TheRoyalBlock – 256 Blocks Is the Limit!

You don’t have to be a long time reader to know how fond I am of Steampunk. So it shouldn’t be a surprise then that at the first opportunity, I got to building airships in Minecraft:

2017-01-18_22-38-32

This was one of my first major Creative Mode projectsand the freedom Creative Mode provides compelled me to experiment! This airship became a study in character for me, and I tried to consider how the functions and inhabitants of the ship would inform it’s appearance.

2017-01-22_08-40-582017-01-22_08-51-19

The clean lines and white quartz blocks create a very regal look, while the vines mixed in bone and snow blocks reveal the ship’s past.

2017-01-22_08-52-57

Now we can meet the captain – except… This is one place where Minecraft fails and LEGO (amongst many other places, I assure you) – characters. There just isn’t a proper equivalent to Minifigures in Minecraft, only other real player avatars.

Because of this, the builder must create character in other ways! I tried to convey the nature if a captain as well as possible by his messy cabin:

2017-01-18_22-40-07

Apparently the crew is more organized – the storage area is much better!

2017-01-18_22-41-01

Now you’ve seen the whole build, so that’s another Minecraft build into the blogosphere!

I hope you enjoyed the tour! See you next time!