![]() |
Re: Programming Team's Role
Quote:
|
Re: Programming Team's Role
Depending on the size of your team (and the number of individuals interested in programming), the roles on your programming team and goals are going to be different.
You should start in the preseason with a set of goals of things you'd like to be able and know how to do on the robot, and then work as time allows to try each one. That way, once you get to the build seaon, you won't be scratching your head thinking "how do I use a gyro in code?" and you'll be familiar with finding documentation on problems that may arise (part of being an engineer - you don't necessarily need to know what something is, you need to know how to find it quickly). Once the game is announced, you'll be able to describe to the mecanical team your abilities and your limitations (I know how to use a camera to orient the robot towards a target, but I don't know how to calculate the distance to determine wheel speed.) You'll also be able to ask for sensors in parts of the robot (I need an optical encoder somewhere near each drive wheel so that I can have the robot automatically drive at a specific speed,) which should make the robot more of a robot and less of a remote controlled vehicle. As the robot nears completion, you'll know what the structure of your code should look like in order to do tasks, and what the operator interface should look like in order to control the robot (when the driver presses this button, the robot should orient itself towards a target, and the driver will know it's done when this LED flashes) You'll also need code to test the orientation of motors and pneumatics, one at a time. It'll be a good idea to have an abstraction layer where that's all defined, so when you're working in higher up code you don't care if 254 is forward or reverse, your math makes sense. Lastly, you'll be responsible for the autonomous mode. This will be game dependent, but it's a good idea to have high level functions implemented (DriveForward(distance), TurnLeft(degrees), MoveArm(configuration)) and tested, so putting together a few strategies isn't a pain. |
Re: Programming Team's Role
I believe one of the roles of the programming team is to assist the mechanical/electrical teams with debugging the individual systems.
Develop a set of tools (the supplied examples are a great starting point) that will allow you to isolate the individual systems. For example, you should have code that will test an individual encoder, run each motor individually (or in tandem is using two motors with a gearbox), test individual solenoids etc.. This will allow the team to debug connection problems and help isolate problems to have them corrected sooner. When the season begins, I have the programmers look into the examples and use them for this purpose. It makes trouble shooting easier to look at only one part of the system at a time, rather than the entire robot, which can be overwhelming. |
Re: Programming Team's Role
I will tackle our programming teams role in two ways. What the lead does and what the team does
First the Programming Group Lead: •Programming Group Lead is to assure that all coding being done for the robot is done in an orderly and timely fashion. •Programming Group Lead is to be the liaison between mentors of the group and the students of the group. •Programming Group Lead will work to teach new students the current language of the team. •Programming Group Lead is expected to communicate with the Mechanical Group Lead about the direction the robot is taking and any components that have been changed as not to waste the groups time on a task that will not be used. •Each Group Lead is responsible for dividing up tasks among students in their sub-team. •Group Leads are expected to be in the Pit to answer judges questions unless they are participating in another regional activity (field team, Chairmans presenter, ETC.). Now for the remainder of the team their roles are much simpler. -Listen to the group lead about the tasks you are assigned -Be honest about your skills and ask questions if you are confused - Learn how to deploy code, run debug, reset code, and know the safety rules of the robot. |
Re: Programming Team's Role
Im not sure what has already been said, but this is my input.... ((get it? input?.... nvm))
anyway, as the head of the programing team on my robotics teams, I have plenty of responsibilities in coordinating with other teams, and bringing up ideas. in the preseason, you have to bring all new programmers up to speed with the language and methods used by the team. teach em the trade! programers are engineers too, so their ideas for a mechanical contraption are no less serious than a mechanical team's idea. their job in the design process is to come up with ideas, and be able to admit their limitations to the other teams. you always have to be thinking about your limitations, and thinking of new ways to control the robot. say the mechanical teams says.... "We want to make this awesome arm with 14 degrees of rotation." first thing you have to think is..... Can we program it? and is it worth it? if the answer to either is no, it is the programer's responsibility to announce that. the other thing is, if it is an idea you want to go with, think from the beginning how you want to control it. if you want a feed back control loop, you have to tell the other teams you want a sensor in there from the beginning. next, in terms of the building the robot, you have to coordinate with the electrical team and mechanical team to find where you need and want sensors. the earlier the better. next in the actual programing.... 1: plan. plan how you are going to program it. any control loops, and any special algorithms you are going to need. 2: make it. program it.... pretty self explanatory. 3: test it. you have to make sure it works. work out all the bugs. 4: modify it. you almost never get something you want to keep all the way through the competition, so you have to be able to change code mid competition. I hope this helps! |
| All times are GMT -5. The time now is 01:59. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi