Frequently Asked Questions (FAQ)
We get many e-mails and questions from students new to UCF who want to get involved in robotics. The information presented here is a growing list of the most frequent questions. If your question is not answered here, feel free to come to a meeting or e-mail the club news address to get an specific answer.
- What kind of robots do you build?
- Why should I join?
- How do I join the club or get involved on the projects?
- I have class on X day when you are meeting and can't come, what do I do?
- I have class until after the meeting starts, or I missed the previous meeting, can I still come to the next meeting?
- What type of experience do I need before I can join?
- How much time should I expect to spend working on one of the robots?
- Where can I learn about the competitions you go to?
- Can we work on X project? Project X is really cool!
- I have never programmed before in my life, where do I start?
- What programming language, software, tools, and libraries do you use on your projects?
What kind of robots do you build?
The Robotics Club at UCF focuses exclusively on autonomous robotic platforms. In other words, we do not build remote control vehicles or Battlebots, only robots that are capable of self-navigation. We having nothing against Battlebots or remote control projects, but autonomous robots require interdisciplinary teams able to design the physical platform, integrate power systems and electronics, and program them to perform a mission. It is the best way to include as many different fields of engineering as possible. Over the years the Robotics Club at UCF has built air, ground, surface, and underwater robots for competitions sponsored by the Association for Unmanned Vehicle Systems International (AUVSI). As of the Fall Semester 2013, our focus is on surface robots for the RoboBoats (http://www.auvsifoundation.org/foundation/competitions/roboboat/) competition.
Why should I join?
There are many reasons to join, but the primary reason is to gain engineering experience that you would not get through your coursework alone. Many students who do not participate in projects outside of school may never build, wire, or program anything significant until they reach their Senior Design class. It is important to make yourself as marketable as possible when you graduate, and having experience building an autonomous robot within an interdisciplinary team is a big selling point on your resume. Also, the organizers, sponsors, and judges at the competitions we attend are looking to hire students who participate. So think of going to an AUVSI competition as an extended job interview or networking opportunity.
How do I join the club or get involved on the projects?
To participate in the club you must be a registered UCF student, attend meetings, and pay yearly or semester dues. Meeting times are posted on our main page at http://robotics.ucf.edu and are updated every semester.
I have class on X day when you are meeting and can't come, what do I do?
We typically have meetings 2-3 times a week, including the weekend. So there should be ample opportunities for new students to come meet the teams, learn about projects, and get involved. If you can't make one of the weekly meetings just pick another day, it is not required that you attend every meeting.
I have class until after the meeting starts, or I missed the previous meeting, can I still come to the next meeting?
If you are going to be around 30 minutes late to a weekday meeting come when you get out of class/work. If you will be later than that, feel free to call the lab to see if anyone is still there (407-882-0293), but the meeting itself will probably be over. For weekend meetings feel free to call and verify someone is there, but weekend meetings typically go for several hours so 30 minutes or so probably won’t matter. However, if you don’t have class or work, please show up on time (5 minutes before) so that we can start the meeting on time. If you missed a previous meeting you can still come to the next one, we don’t take attendance.
What type of experience do I need before I can join?
As a registered student organization, the club cannot refuse entry any registered UCF student. So technically, anyone with a valid UCF ID can join, however, depending on what types of skills you wish to develop/contribute at the club (e.g. computer programming), you may want to wait until you've learned a few things on your own and in your coursework before joining. For example, we recommend the following:
- Computer Programmers: You should have knowledge of C/C++/Java and basic data structures. You should be able to create a project with an IDE (e.g. Qt Creator, CodeLite, Eclipse, Visual Studio), and understand Object Oriented Programming (OOP) concepts like class inheritance, scope, access, and operator overloading
- Electronics: You should have basic understanding of electrical circuits including: voltage, current, resistance. However, if you have ever experimented with hobby kits for RC planes and cars and understand the difference between power and ground terminals you will probably be Ok.
- Mechanical Systems: Almost no experience is required to jump into the mechanical systems of our projects. However, if you don't know the difference between a philips and flat-head screwdriver, you may want to find a different field of study.
How much time should I expect to spend working on one of the robots?
It is best if you plan to spend at least 4 hours a week working on any of the projects. Depending on your role on the team, anything less will make it difficult for you to learn what you need to know and contribute to the project. Saturday meetings are the best time to work on the projects since more team members will be at the lab actively working. In the weeks leading up to an actual competition date, after the Spring Semester, expect to spend at least 8 hours a week in the lab if not more getting ready
Where can I learn about the competitions you go to?
The following is a list of competitions we have attended, at the moment we are only participating in the RoboBoats competition
- RoboBoats - http://www.auvsifoundation.org/foundation/competitions/roboboat/
- Intelligent Ground Vehicle - http://www.igvc.org
- RoboSub - http://www.auvsifoundation.org/foundation/competitions/robosub/
Can we work on X project? Project X is really cool!
Short answer, no. It takes a lot of resources and time to work on the currently planned projects, therefore we do not support working on unrelated efforts. Many of the projects we are involved with were carefully selected to be multidisciplinary and are also supported by our sponsors. Also, if you have never built an autonomous robot before, you probably don’t know what you are getting into yet, so trust in our project selections, as they were chosen for good reasons.
I have never programmed before in my life, where do I start?
Currently all software running on our robots uses the C++ programming language and GNU/Linux operating system (Ubuntu 12.04). Although we do have some projects using Java, we highly recommend you learn C++. To get started, follow these steps:
- The first thing you will need is a C++ compiler. Instructions can be found here: http://www.cprogramming.com/code_blocks/
- A great place to get started with C++ once you have a compiler setup is using a tutorial from either http://www.cprogramming.com/tutorial/lesson1.html or http://www.cplusplus.com/doc/tutorial/. They are great websites for the C++ language, and the tutorials are designed for those without any programming experience.
- Practice, practice, practice practice! You wouldn\'t expect to learn to play an instrument without regular practice, and the same is true for programming. Just going through a tutorial by reading or duplicating the steps is not enough. You need to challenge yourself to solve problems outside of the tutorial to make sure you really learned the material. Some C++ quizes can be found at http://www.cprogramming.com/quiz/ or through web search. We want to teach you how to program a robot via topics like computer vision, path planning, network communication etc., not teach you basic programming concepts. So please learn the basics and we will show you how to apply it.
If you already know C++ programming in general and want to learn more, we highly recommend you learn about OpenCV (http://opencv.org/) , as it is used throughout all of our projects.
What programming language, software, tools, and libraries do you use on your projects?
- C++ Programming Language
- GNU/Linux - Ubuntu 12.04
- Boost C++ Libraries
- Open Source Computer Vision Library (OpenCV)
- Qt Creator
CMake is the main build system used on our C++ projects. It makes it easy to make big changes to our project structure and test on other operating systems (e.g. Windows)
We use Qt Creator in Ubuntu using CMake project files