Category: Code
2011
02.04

WEC 2011

Last weekend I had the privilege of attending the 2011 Western Engineering Competition (WEC) at the University of Sasketoon. The activities were a blast and the Senior Design competition was great. After presenting our design, we felt that we did really well. The other teams also did great jobs and I’m sure it was very tough for the judges to make their final decisions. Sadly, we did not win, but we had a great time competing and getting to know fellow students from across the country. We took some video of our robot/tractor and I have embedded them below.

WEC 2011 – It’s alive! from Benjamin Bergman on Vimeo.

This was the first time we had our robot running in it’s final configuration at WEC 2011 Senior Design.

WEC 2011 – Hay Bail Challenge from Benjamin Bergman on Vimeo.

In this challenge, we had to remotely control the robot to lift a “hay bail” (a marshmallow, in this case) and place it in a small cup. This was one of the easier challenges for the day.

WEC 2011 – Pasture Crossing Challenge from Benjamin Bergman on Vimeo.

In this challenge, we had to remote control our robot tractor and drive it across the “pasture” (represented here by a steep, ~40˚ slope covered in a plastic tarp and a layer of very soft dirt). We had to avoid hurting any livestock or the environment (ie. the trees). While it looks like we did quite poorly, everyone got about the same distance on this one.

WEC 2011 – Grain Sorting Challenge from Benjamin Bergman on Vimeo.

In this challenge, we had to separate the “wheat” (marbles) from the “chaff” (rice) using our robot. The robots built by most of the other teams used the vex panels themselves (they have lots of holes) to filter out the marbles, but this was slow and required agitation. Our robot used some rails on end that left gaps barely wide enough to catch the marbles and let the rice immediately fall to the ground.

WEC 2011 – Manure Moving Challenge from Benjamin Bergman on Vimeo.

In this challenge, we had to remotely control our robot to move a pile of “manure” (loose dirt) from it’s initial location across a line. Our performance in this challenge was not great as it was hard to maneuver our robot in the tight space, plus our scraping mechanism did not reach as low as we would have liked.

WEC 2011 – Barrel Race Challenge from Benjamin Bergman on Vimeo.

In this challenge we had to autonomously get our robot to navigate a figure 8 around a pair of “barrels” (pop cans) and then complete a lap of an oval track. The oval was no problem, and in our testing we could do it very quickly, but the preceding figure 8 in the soft dirt made it impossible to line up for the lap. None of the competitors were able to complete this challenge. Since it was worth 50% of our demonstration mark, that put a lot of weight on our presentation.

WEC 2011 – Barrel Race Lap Demo from Benjamin Bergman on Vimeo.

After the competition, we wanted to demonstrate our completion of a lap of the barrel race track, just for fun. Some other teams also demoed their lap code, but ours seemed to be the fastest.

WEC 2011 – Attempted Marshmallow Destruction from Benjamin Bergman on Vimeo.

During building, we found that our gripper arm had a lot of torque, so after competition we tried to cut a marshmallow in half. Sadly, the gears kept slipping since we had stressed out all of our mounts during competition, but we had fun anyway.

WEC 2011 – Attempted Pop Can Destruction from Benjamin Bergman on Vimeo.

After competition we tried to crush a pop, but our gears kept slipping as the mounts had been stressed during competition.

WEC 2011 – ROV from Benjamin Bergman on Vimeo.

After playing with our robot for a bit, we decided to attach a phone to the arm. This clip was just to get a “first person” clip, but we later set up an IP webcam server from a phone to remotely control it. It was a bit laggy, but tons of fun.

2011
01.19

Those who have been reading my blog for a while will remember that I spent some time overseas working on my final year design project (aka. undergraduate thesis). We finally got our (unofficial) official grade back and we did pretty good. In the interest of sharing the knowledge we gained (as well as showing what we did) I am posting our final report and code here.

Final report
Code

The code was written to be used with the simulator that was supplied by the Budapest University of Technology and Economics. Since this simulator is not our property, it has not been posted. Hopefully the algorithms we used are understandable. If anyone has questions, feel free to contact me.

2011
01.14

Last term I took a course that involved a lot of FPGA programming. We used Altera’s DE2 development board as well as their example labs (Digital Logic and the first few Computer Organization labs). While the labs were quite enjoyable and very educational, it was a LOT of work compared to labs in other courses. This was also my first experience with Verilog (or any HDL for that matter) which didn’t help. Getting help with these labs was a bit tough as my classmates were all in the same boat, plus the professor and TA hadn’t done the labs yet. I have decided to post my solutions to these labs in case someone else down the line needs help with them too. I have included a README file with the code with a little more information and emails (or comments on this post) are welcome.

As an aside, I am currently hosting my code at github.com, but am debating switching to Gitorious (they seem to be more open source friendly) or possibly self hosting (Gitorious can be self hosted, or I might try cgit or Redmine). Does anyone have any thoughts on these? Perhaps other suggestions? I would love to self host, but the redundant offsite backups these services provide is always nice. Perhaps I will have to invest in a secondary, offsite server so I can do my own.