NodecopterLX 2013

In October, the first Portuguese Nodecopter event was held in Lisbon. Nodecopter is a hackathon that enables the participants to control real quadrocopters using a programming language. These events started in October 2012, and have since then spread to many different countries. Since there was a big Javascript conference coming up, LXJS, we decided to bootstrap NodecopterLX by inviting their participants.

We had around 35 participants in a total of 11 teams. Luckily, no quadrocopter was harmed and everyone had a blast! There were many demos by the end of the day, and, more importantly, our participants had the chance to learn how to program some cool robots. I’ll leave you with some photos (but you can check all of them over at our Google+ page):

IMG_0987

IMG_1002

IMG_0953

IMG_1008

PS: I’d like to thank our awesome sponsor Flipside, our partners Inspiring, IST, ISCTE-IUL and Instituto de Telecomunicações, Andrew Nesbitt and Gilles Ruppert for being awesome and bringing some extra AR.Drones, and the rest of the team: Daniel Gomes, David Dias, João Jerónimo, Joaquim Serafim, Pedro Dias, Samuel Gordalina and Tiago Carlos. Make sure you follow our Twitter account @nodecopterlx to know when we are preparing the next event 🙂

Robô Bombeiro 2013

Recently some colleagues and I participated in the Robô Bombeiro 2013 (Firefighter Robot) competition, which has been organized by the Guarda Polytechnic Institute for 11 consecutive years. The objective of the competition is to build a robot that is able to navigate in a maze-like environment, find a fire (which is represented by a candle), and extinguish it. Participants are free to choose whatever design they want for their robot, and how they want to extinguish the flame. The environment has 4 rooms which are connected by corridors. In the entrance of a room there is always a white line that the robot can detect. The configuration of the environment can change, for instance, certain doors might be placed in a different location and an obstacle (represented by a sheep) can block a corridor in one of three places.

Robô Bombeiro 2013 Guarda

There are several different modes that a team can choose to participate in for extra points. In one of the modes, for instance, the robot must start its mission after it detects a sound with a certain frequency, instead of waiting for the push of a button. In a different mode, the robot must start and end in a random room, instead of the the regular white circle. The competition had 22 teams in the high school league and 24 in the university league. Our robot, IEEE Firefighter, competed in the university league, and our team was composed of seven BSc, MSc and PhD students. It was our first robotics competition and we had only one month to prepare. Due to the lack of time, we took the easiest route: we built our robot using the Lego Mindstorms NXT. Our robot was equipped with a rotating turret that enabled it to quickly scan a room for a candle with two infrared/flame sensors, three sonars for obstacle avoidance, a color sensor to detect the lines at the entrance of the rooms, and a fan to put out the fire. Due to the NXT’s limited sensor and actuator ports, we added an Arduino with a Bluetooth module, which controlled the two flame sensors, a microphone, a couple of buttons and the fan.

IEEE Firefighter

Things started going badly as soon as we got to the venue. The conditions we tested our robot in proved to be quite different from the real thing. The environment’s floor gave us some headaches because of our robot’s tracks, and the 35º Celsius in the gym were messing with the infrared sensors. We also had to tweak our algorithm because of the “sheep” obstacle, since we kept knocking it down. After spending the whole morning changing things, we had to hand in our robot to the judges.

There were a total of three rounds, and every robot had to be tested. This translated to roughly 90 minutes per round. I wasn’t expecting it to be such an intense experience! Waiting for your team’s name to be called out, and then hoping that both your algorithm and hardware work perfectly is totally nerve-wracking. Usually in other types of competition, such as sports, you are in direct control of your actions and you can affect the outcome of a match. In this case, we simply had to observe as our little robot did what we programmed it to do.

In the first round we were able to quickly put out the fire and ended up in a surprising first place. In the second round, we were successful at putting out the fire but unable to return to the starting position. This placed us in the 2nd overall position. The third and final round was a disaster for us. Our robot crashed on its way to the candle and it kicked us all the way back to 7th place. We were a bit sad at first, but we quickly bounced back – it was a great result for our first try. Next year we’ll try to enter the competition again, but with a few kinks ironed out. A huge thanks to the team! Here’s a group photo – Adriano, Paulo, moi, Mário, Tiago, Carlos and Vasco. See you next year, Guarda!

IMG_0360

Why should you become an IEEE volunteer?

IEEE logo

If you’re in the technology field, you have probably heard of IEEE before. It is the largest professional organization in the world, with over 400.000 members in more than 160 countries. IEEE is associated to over 1000 scientific conferences annually, and publishes over 100 peer-reviewed journals. However, IEEE can do much more for students than providing scientific knowledge. This post is aimed at students, both graduate and undergraduate, and tries to explain how IEEE can have a major contribution to your personal and professional development.

Student Branches (SB)

The easiest way to get started in IEEE is to join the local Student Branch in your university. The SB is the way that students can get support from IEEE and participate in all the activities. Many universities already have an IEEE SB, but if yours doesn’t, try to contact someone from a nearby university and they should be able to help you start one.

One you have signed up for a membership, and associated yourself with a Student Branch, it’s time to get busy. In a Student Branch, you’ll probably find like-minded people. From my experience, it is the best way to find pro-active people with similar interests in an academic environment. Each SB must have a small management team (chair, vice-chair, and a few other people), but this is just a small part of the Student Branch’s activities Most of the SB’s members’ energy will go towards creating cool activities and disseminating knowledge. Our SB at ISCTE-IUL has only been created around one year ago, but we have been fairly active. Here are some examples of activities you can participate in and organize.

Workshops

IEEE ISCTE-IUL python workshop

Workshops are the easiest events to organize. You probably have lots of talented people in your SB. Is anyone a master in Python? Maybe someone is a web design expert, or has lots of experience with node.js. Open a “call for workshops”, and let your members submit ideas. It’s a win-win situation: the speaker gains some presentation skills, and the audience learns about a new subject. Two key issues when organizing a workshop are marketing and logistics. It’s important that you announce the workshop in advance using both physical (posters, flyers) and virtual channels (facebook, twitter, e-mail). In terms of logistics, don’t forget basic things such as making sure you have a big enough room, having a place to sit for every participant,  and power and internet connection if you’re hosting a technical workshops.

An interesting idea is to borrow a workshop from a different SB. In our case, we invited members from the University of Porto’s IEEE SB to host a Python workshop at our university, and it was a total success. We are also taking one of our members to Greece for a big bootcamp on web development at the IEEE University of Central Greece SB.

Societies and Chapters

Societies are special-interest groups, such as Robotics and Automation, Power and Energy, or Computer Society, and there are dozens of different Societies in IEEE.  A Chapter is the embodiment of a Society in a local community, such as a Student Branch. A few of your members can join up and start a Chapter within your SB and have access to finantial support for activities, expert knowledge, competitions, grants, and special events.

Student Branch Congresses

IEEE Student Branch Congress Porto 2013

One of the most rewarding things about being an IEEE volunteer is to be able to meet like-minded individuals and work together towards ambitious goals. One of the ways of fostering networking are Student Branch Congresses. There are national and regional Congresses, and usually some members of each SB receive financial support for travel expenses. Our SB has been present at several congresses, such as the Iberian Student Branch Congress in Oporto, the Portuguese Student Branch Congress in Guimarães, and the Region 8 Student Branch Congress in Madrid.

Grants and Competitions

IEEE strives to support its members through the awarding of grants and scholarships, or by fostering competitions. There are many grants up for grabs, and some are not even listed on the main page. Sometimes it is necessary to browse the website of each Society to find some grant opportunities. In terms of competitions, there are also plenty available. There are challenges for everyone, from the Student Paper Contest, to the Best Student Branch Website, and the famous IEEE Xtreme Programming (a 24h programming marathon).

Improving Yourself

If you’re not an IEEE volunteer, you’re missing out on an amazing way of getting the tools that will help you achieve your goals. At the end of the day, being an IEEE volunteer is all about improving your soft and hard skills, getting involved in cool projects, meeting awesome people, and making stuff happen. Check if your university has an active Student Branch and join up. Otherwise, just get a bunch of friends and start your own SB!  It’ll be one of the most important decisions in your academic life. I’ll leave you with a video from our friends at the IST Student Branch.

A quick analysis of the e-puck’s infrared proximity and light sensors

Recently I have begun developing for the e-puck robot as part of my thesis. The e-puck is a small (75 mm in diameter) differential drive robot that has several sensors and actuators, such as 8 infrared proximity sensors, a VGA camera, a 3D accelerometer, 3 microphones, a speaker and two wheels. For my research, I needed to model the way the infrared proximity sensors reacted to close objects and to light.

Proximity sensors

The e-puck can sense obstacles around itself via the use of 8 infrared proximity sensors, which are positioned around its perimeter. The measurements were taken with the wheels of the e-puck moving, but the robot itself was fixed in place. They were taken for 10 seconds with a sampling rate of 10 samples per second (for a total of 100 samples) and repeated at increments of 0.5 cm from 0 cm to 2 cm and at increments of 1 cm from 2 cm to 12 cm. The measured sensor was perpendicular to the wooden wall. The following data is the average values for 4 of the 8 sensors (sensors number 0, 2, 5 and 7) in two different e-pucks:

You can download the data as a CSV file. Included in the file is also the standard deviation: epuck_proximity_sensors.csv

Light sensors

The proximity sensors also can be used as light sensors. Following the same method as above, the e-puck was placed next to an LED lamp and measurements were taken for 2 of the 8 sensors (sensor 2 and sensor 5). The following data was gathered:

You can download the data as a CSV file. Included in the file is also the standard deviation and the reference value for the ambient light: epuck_light_sensors.csv