Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Programming (http://www.chiefdelphi.com/forums/forumdisplay.php?f=51)
-   -   Programmers: I Have A Challenge For You (http://www.chiefdelphi.com/forums/showthread.php?t=84797)

davidthefat 30-03-2010 22:29

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by theprgramerdude (Post 946036)
By ditch the Crio, do you mean just build an autonomous robot independant of any competition with the spare parts from FRC?

I guess, I just want to build a prototype robot that is not using the crio, since the crio and the power board itself will take up most of the space of the robot (2 x 2 feet) so why even bother? Just get the essential ideas working and then we can transfer it to the actual robot during the 6 week build period. I just have to just port the code, configure the sensors to work for the robot bigger size. I try to code so that its reusable and easy to understand. So I have to get in the habit to comment a lot, because I tend to forget what some of my code does sometimes, it looks so complex at times IDK how I even coded some stuff:ahh:

gvarndell 30-03-2010 22:34

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by Greg McKaskle (Post 945970)
On the LV compilation topic, the LV source code is a dataflow graph of objects -- diagrams contain nodes connected by wires, with the occasional node containing other diagrams

The objects are visited over several passes in order to perform compilation tasks.
1. Data types are propagated after each edit.
2. Nodes are validated and syntax errors identified after each edit.
3. An algorithm performs what we call clumping -- coloring the graph based upon asynchronous operation.
4. Another algorithm improves inplaceness, reordering nodes to execute in an order which minimizes data copies.
5. Nodes allocate data storage.
6. Nodes emit code into clumps.

Clumps are blocks of memory that contain machine instructions in binary form. You can disassemble the instructions if you like and display them in text.

Thanks for this. It is good information to know.

That said, it's not the compilation I was asking about.
Assuming that a node is what I was calling an icon and graphically represents some logical or computational operation, there must exist some sequence of machine instructions to implement that operation.
You referred to these as clumps.
An assertion was made that there is no traditional textual source code associated with clumps -- notwithstanding that that terminology was not part of the discussion.
My claim is simply that the machine instructions contained in those clumps almost certainly were produced by a traditional compiler using a traditional text-based programming language -- quite likely C.

For the record, this didn't start out as a Labview discussion and I didn't lead it here -- nor did I want to.
There was first a claim that iconic programming was replacing text based programming.
I claimed that, on the contrary, text based programming is the foundation upon which iconic programming is built.
Icons (nodes if you prefer) graphically represent machine code.
AFAIK, other than compiling and/or assembling text files, we have no spiffier way of producing the machine code.

davidthefat 30-03-2010 22:38

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by gvarndell (Post 946047)
Thanks for this. It is good information to know.

That said, it's not the compilation I was asking about.
Assuming that a node is what I was calling an icon and graphically represents some logical or computational operation, there must exist some sequence of machine instructions to implement that operation.
You referred to these as clumps.
An assertion was made that there is no traditional textual source code associated with clumps -- notwithstanding that that terminology was not part of the discussion.
My claim is simply that the machine instructions contained in those clumps almost certainly were produced by a traditional compiler using a traditional text-based programming language -- quite likely C.

For the record, this didn't start out as a Labview discussion and I didn't lead it here -- nor did I want to.
There was first a claim that iconic programming was replacing text based programming.
I claimed that, on the contrary, text based programming is the foundation upon which iconic programming is built.
Icons (nodes if you prefer) graphically represent machine code.
AFAIK, other than compiling and/or assembling text files, we have no spiffier way of producing the machine code.

Text based programming will NEVER go away, it will be used to code those programs that are iconic or whatever... The click and drop ones. and the text based programming will also code the operating systems. and I doubt there will be enough freedom in the drag and drop ones. They are all high level, which means you can't have pointers, you can directly mess with the memory, click and drag will never replace text based programming

mwtidd 30-03-2010 23:27

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by Tom Line (Post 946015)
I'm curious. Are you aware that a single hard collision can easily throw a gyro off by hundreds of degrees?

I'm just curious have you tried using a compass to re-zero the gyro? I haven't tried it but from what I've read it seems to create an almost drift less gyro as the compass doesn't have the issues of drift.

note: running a compass is an expensive operation so it should only be run to reset the gyro which is less expensive (or so I've read...)

davidthefat 30-03-2010 23:53

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by lineskier (Post 946084)
I'm just curious have you tried using a compass to re-zero the gyro? I haven't tried it but from what I've read it seems to create an almost drift less gyro as the compass doesn't have the issues of drift.

note: running a compass is an expensive operation so it should only be run to reset the gyro which is less expensive (or so I've read...)

Its only about $30 for a compass, will think about it. Gyros are also about $30-$40 too, may be I will just try with 1 gyro, 2 IR and 1 sonar before adding more sensors

Radical Pi 31-03-2010 00:57

Re: Programmers: I Have A Challenge For You
 
If I were doing this, my first project would be a defensive robot. It is actually the simplest to code IMO. Just take the camera image, do a color analysys to find a rectangle of the opposing team's color, and drive towards that. Once you factor in a pinning timer through an accelerometer to determine if you are still moving, you could probably have a decent autonomous defensive robot.

Next would be the offensive ball collector. I personally would think of using an array of IR sensors that can give you a rough map of what is in front of you. Finding roundish-objects would be a bit of a challenge on the cRIO, but a fun one at that (would it be possible to generate a rough IMAQ image to use the existing libraries?). Alternatively, if a team could use a second camera, they could mount one high for targeting and one low for an ellipse detection below the bumper for balls.

Once you have possesion of the ball, I think the rest would be fairly easy. Do a spin until you detect a target, do a color check below the target to make sure you are aiming at the right team (180 spin if wrong), and then the rest has been done by other teams this year.

Sensor-wise, I think a gyro is a given. If you zero it after every targeting calculation, you could easily use it for relative motion in targeting through a state machine. I think flow would be camera detection->calculate turn amount->zero gyro->turn->when finished, re-check targeting and repeat if necessary. After a gyro, I think 2 cameras would be much more valuable than most other sensors. As I said before, a high camera has been proven to be acurrate for goal targeting. A low camera (kicker level?) could work using another ellipse detection algorigthm. Against the field, the balls would definitely have enough contrast to detect, but the field walls I'm not sure about.

On top of the cameras, some form of possession detection would be good. For our system, we mounted 3 IR sensors around the ball entry area. 1 sensor above the ball indicates when a ball is in our kicker (would have used this for autonomous if we had time most likely), and then 2 sensors, one on the left of the ball and one on the right, tell us the internal position of the ball in the kicker. A similar system might work in the autonomous bot idea.

AI flow as of now in my idea: Spin randomly->check for balls, spin again until found->aim for nearest ball->drive until in possession->spin until goal found->check if is correct goal, spin around if not->aim for goal and kick->repeat

Input?

EDIT: one more thing: a compass wouldn't work too well in this situation. I would expect that as electromagnetic motors, a fair amount of drift would be seen in any compass operation, causing the accuracy of the compass to change depending on speed and direction of driving

mwtidd 31-03-2010 02:30

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by Radical Pi (Post 946124)
a team could use a second camera, they could mount one high for targeting and one low for an ellipse detection below the bumper for balls.

I was wondering about this, how do you hook up two cameras? Can you do this with a network switch or is it another way?

Alex.Norton 31-03-2010 02:43

Re: Programmers: I Have A Challenge For You
 
to paraphrase the words of the preeminent voice in the field of computer vision when DARPA asked the somebody to make a computer that could see as well as a 5 year old child: "Could we try for 2 year old autistic monkey instead?"

I will realize that this view isn't very adventurous, but I'm a firm believer that taking small steps to improve ones programming is important, that and I wouldn't want my programmers to spend so much time on it that they fail their classes.

I personally would rather see my team automate everything except the basic movement of the machine. Make the machine collect the game piece, turn and score. I've programmed fully autonomous tank games and it can be very hard to design a system that can predict the actions of an opponent. I like having a human mind in the loop acting as a garbage collector and main decision maker.

-Alex

Vikesrock 31-03-2010 02:52

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by Radical Pi (Post 946124)
Alternatively, if a team could use a second camera, they could mount one high for targeting and one low for an ellipse detection below the bumper for balls.

Why not use a single camera with a tilt mount? You could either try to find a mount height that allows for a single angle that will detect balls and another angle to target or you could determine a range of tilt values to scan over in each mode.

mwtidd 31-03-2010 03:06

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by Vikesrock (Post 946145)
Why not use a single camera with a tilt mount? You could either try to find a mount height that allows for a single angle that will detect balls and another angle to target or you could determine a range of tilt values to scan over in each mode.

Ball detection was talked about in this thread:

http://www.chiefdelphi.com/forums/sh...highlight=ball

My thinking is by having a camera at the ball level, it would greatly reduce if not eliminate the shadow issue, allowing you to use the findEllipse method.

one design i did see which is a median between the two is putting the camera on a pneumatic, lower position for being at the ball level, top position for being high enough to see the goal.

Greg McKaskle 31-03-2010 07:48

Re: Programmers: I Have A Challenge For You
 
I'll try to sum up the icon and compile thing quickly so as not to interrupt the design of SkyNet.

Quote:

My claim is simply that the machine instructions contained in those clumps almost certainly were produced by a traditional compiler using a traditional text-based programming language -- quite likely C.
Textual representation of machine code is usually called assembly code. The actual machine code is in fact a sequence of bytes, but not human readable in the slightest. The LV product contains a compiler which writes machine instructions into memory based on the passes over the graph -- no calls to gcc or asm, nothing up the sleeve.

There are actually numerous ways for LV to target a platform, the compiler is the most common, another is a bytecode/VM method used for small targets such as the NXT, and the third is a translator that does produce C or VHDL to more quickly be able to use vendor specific tools. So while this is a way LV to target VxWorks, it is not the method being used.

As for icons replacing text, I don't think that is the right comparison to make. In fact text is just a sequence of graphics. Textual and mathematical language is just as abstract, if not more so, than a drawing.

The issue is the expressiveness of the programming language. Would you rather write down a paragraph about the sunset or snap a photo? Is a map better than directions? Is a picture of food better than a recipe? It all depends on what you are trying to do. IMO, the best environment would let you pick based on the task. Did I mention that LV has had a formula box since 1.0?

And now ... back to SkyNet.

Greg McKaskle

Chris Hibner 31-03-2010 07:51

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by gvarndell (Post 946047)
For the record, this didn't start out as a Labview discussion and I didn't lead it here -- nor did I want to.
There was first a claim that iconic programming was replacing text based programming.
I claimed that, on the contrary, text based programming is the foundation upon which iconic programming is built.
Icons (nodes if you prefer) graphically represent machine code.
AFAIK, other than compiling and/or assembling text files, we have no spiffier way of producing the machine code.

I never said text based languages would disappear. I said that they would fall away from being the norm, just like assembly isn't the norm today. When I started working in the embedded controls area, everything was done in assembly. Right after I started the company decided to do the first product done in C. You wouldn't believe how many, "oh, that'll never work" statements were going around the office.

Text to graphical coding is no different than the last evolution from assembly to C. Just like many graphical "languages" start out by auto-coding C, most C compilers start out by "auto-coding" the C to assembly. That doesn't mean that C isn't a higher level language than assembly, nor does it mean everyone has to know assembly to use C. Assembly is just the relic and the automation handles the details.

There also isn't necessarily a chicken-and-egg scenario. The original C compiler was most likely written in assembly or another high level language (like, say, FORTRAN). Current C compilers are written using the previous C compiler. In other words, you may need a different language to write the initial compiler, but as soon as you write that first compiler, you may be able to do away with it from that point on.

With all of that being said, text based programming is currently more efficient for coding than graphical languages in certain areas (as I said in the original post). For that reason, I don't see text based programming dying any time soon. What I do see is it will become less and less prevalent and it will only be used when there isn't a much better choice (much like when people use assembly today).

gvarndell 31-03-2010 08:18

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by Greg McKaskle (Post 946168)
so as not to interrupt the design of SkyNet.

OK, I think we've beat the text vs icons issue far enough into the ground -- at least for this go-round :o

It is a distracting tangent to the thread.

I think all us software types are pleased that the kids (at least I hope it's the kids) are exploring the possibilities of software, so let's let them get back to it.

Alan Anderson 31-03-2010 08:36

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by Chris Hibner (Post 946169)
The original C compiler was most likely written in assembly or another high level language (like, say, FORTRAN).

The first C compiler was written in B.

gblake 31-03-2010 08:37

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by davidthefat (Post 945246)
Next Year, no matter the game, I challenge you to make your robot fully autonomous. ... Just post your opinions and I will add to the list if you want to take the challenge.

Teams That Are Willing To Take The Challenge:

*Team 589 (Just Me As Of Now)
*Team 33
*Team 2503
*Team 1086

I haven't read this entire thread; but if the folks who have signed up for the original poster's challenge (and any who haven't yet) would like to get a little practice in before attempting this challenge with a real robot - I can make it possible for you to control one or all of the 5th Gear simulated robots purely through software - I did this myself for our Overdrive simulation, and it is definitely a learning experience that would be good prep for attempting to the same with a real bot - Do I have any takers?

Blake

Main 5th Gear Thread: Link to 5G Thread

tsa256 31-03-2010 11:39

Re: Programmers: I Have A Challenge For You
 
This appears to be a very challenging yet intriguing problem. From personal coding experience on my team it seams that creating a 100% autonomous robot would be very plausible. In past years, I've been able to implement code to completely automate driver twos job. Although one difficulty of this is if a sensor breaks or something fails driver two will never trust the code again.

As for a entirely autonomous robot, I agree it's possible but the logic behind it would be massive. I have no doubt it can be done; As the head programmer on my team I find myself automating everything I can with sensors. The two main limits keeping me from pursuing a robot with more autonomy or 100% autonomous robot is time, and resources.

I have no doubt other people have hit similar bottlenecks. As for me, I'm planning on structuring a very modular library of labview code to speed up this process and allow for easy implementation regardless of next years game

efoote868 31-03-2010 12:35

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by tsa256 (Post 946267)
I have no doubt it can be done; As the head programmer on my team I find myself automating everything I can with sensors. The two main limits keeping me from pursuing a robot with more autonomy or 100% autonomous robot is time, and resources.

In six weeks, with a budget of $5,000 of things that can go into the robot, using a normal skill set (high school programmers), it won't be done.



I used DARPA as an example early on in this thread - teams of professionals and graduate level students with near unlimited bankroll behind them, completing a task that is arguably easier/more straight forward.
It took them two years to complete the challenge.



Take this years game as an example, broken into its most simplistic macro steps.
(offense)
1. Find a ball
2. Drive to the ball
3. Kick or push the ball into the goal

That's very straight forward, until you toss in the fact that there are 5 other robots on the field. If you spent time completing all three steps in code and then testing, I say that's time wasted that could have been spent perfecting your autonomous mode, or spent making your robot the easiest machine to control on the field.



I don't want to sound like a nag or a nay-sayer, and I don't want to keep you from learning or failure. I'm trying to offer my words of wisdom having spent 4 years as a student in FIRST and a year as a mentor in FIRST.

There's a reason all cars don't drive themselves, this AI stuff isn't as easy as you think it may be.

gblake 31-03-2010 12:53

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by efoote868 (Post 946284)
In six weeks, with a budget of $5,000 of things that can go into the robot, using a normal skill set (high school programmers), it won't be done.



I used DARPA as an example early on in this thread - teams of professionals and graduate level students with near unlimited bankroll behind them, completing a task that is arguably easier/more straight forward.
It took them two years to complete the challenge.



Take this years game as an example, broken into its most simplistic macro steps.
(offense)
1. Find a ball
2. Drive to the ball
3. Kick or push the ball into the goal

That's very straight forward, until you toss in the fact that there are 5 other robots on the field. If you spent time completing all three steps in code and then testing, I say that's time wasted that could have been spent perfecting your autonomous mode, or spent making your robot the easiest machine to control on the field.



I don't want to sound like a nag or a nay-sayer, and I don't want to keep you from learning or failure. I'm trying to offer my words of wisdom having spent 4 years as a student in FIRST and a year as a mentor in FIRST.

There's a reason all cars don't drive themselves, this AI stuff isn't as easy as you think it may be.

You tempt me to prove you wrong - but I'll leave that to some group of enterprising students.

If you remember that we are building role models, leaders and careers; and that we are using robots and tournaments to do that; then I think teams and students can be outstanding successes in the time and money available to them.

Blake

virtuald 31-03-2010 13:01

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by Greg McKaskle (Post 946168)
Textual representation of machine code is usually called assembly code. The actual machine code is in fact a sequence of bytes, but not human readable in the slightest.

Actually, there are some people who can read it. Very very very very few. But I know at least one. Its pretty ridiculous.

Boydean 31-03-2010 13:17

Re: Programmers: I Have A Challenge For You
 
I would be down with this. I know if I brought it up during a meeting it would be cut down pretty fast, but that doesn't stop me from working on it outside the competition to learn.

I see a lot of time spent in the parking lot with bot the next couple of months.

Tom Bottiglieri 31-03-2010 13:45

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by efoote868 (Post 946284)
I used DARPA as an example early on in this thread - teams of professionals and graduate level students with near unlimited bankroll behind them, completing a task that is arguably easier/more straight forward.
It took them two years to complete the challenge.

If you really think the DGC/DUC task is easier than FRC, I think you may be mistaken. Before I moved to California, I worked at MIT with the DGC team on their continuing autonomous land vehicle research. Unknown terrain, traffic laws, REAL safety, and IC engines are all a bit more complicated than our dinky electric drive bases and arms.

But I think anyone trying this can take some experiences away from the DGC. First of all, the teams who had the best software also had the best hardware. If your machine is not mechanically reliable or controllable, you aren't going anywhere fast. One of the biggest lessons I've learned in my years as a software guy in FIRST is that the best software fix is usually a mechanical fix.

As far as the software goes, you really need to start thinking about how to set up your machine as a series of interconnected systems. There are basically three components to an autonomous robot control system: Perception, Planning, and Control. Perception is the data you take in from the world around you (vision, distance, GPS, and their associated post-processing). Planning is the part that understands how to interpret the world around it and make educated decisions on what to do. Control is the part that actually makes the robot do what it wants to do.

If you are familiar with the Model/View/Controller design pattern, you can loosely parallel Perception to the Model, Planning to the Controller, and Control to the View. (Where the model is what you have, the controller is what you want, and the view is what you get.)

gvarndell 31-03-2010 13:48

Re: Programmers: I Have A Challenge For You
 
Quote:

machine code is in fact a sequence of bytes, but not human readable in the slightest.
Quote:

Actually, there are some people who can read it. Very very very very few. But I know at least one. Its pretty ridiculous.
It depends on the machine (as well as the people).
Nearly 30 years ago, I didn't need a disassembler to read 6502 opcodes -- 8-bit machine with small instruction set.
Today, 20 years after last touching a 68K machine, I still remember the opcode for the NOP instruction.
Nowadays, even RISC machines have sufficiently complex opcode and operand encoding that I don't even try -- don't need to and there's no glory or money in it if I could.

mwtidd 31-03-2010 14:06

Re: Programmers: I Have A Challenge For You
 
Collaborative Development...?

Seeing as many of the tasks are the same from robot to robot, (ie drive to target) I am wondering what people would think about working on the problem in a collaborative manner. Also if you were to work on a collaborative autonomous engine, what language would you want to use.

(any language is the right language, I'm not trying to open another debate about languages)

Doug Leppard 31-03-2010 15:06

Re: Programmers: I Have A Challenge For You
 
In the latest Wired Magazine (April 2010, page 42) it addressed this issue. Article was called "Advantage: Cyborgs". It asked the question which is smarter humans or machines? As an example machines have been beating humans in chess for years. But if you combine humans with machines as a team they beat both the human alone and the machine alone because the team uses the strength of each.

Really if a FRC machine is done well it is a cyborg of the drivers and machine, each playing the part they do best. I have always pushed for putting as much as intelligence in the machine to help the drivers.

So you drivers and teams out there on the fields are really cyborgs killing off your opponents.

davidthefat 31-03-2010 16:11

Re: Programmers: I Have A Challenge For You
 
You know what, people that bring up DARPA and stuff, you got to think, their goal is totally different than ours, they want to build a machine that is pretty fail proof in the unexpected. We are trying to do it in a known environment with known factors, 2 different ball parks.


edit: I am very offended by the thoughts of some people "highschool programmers" well honestly, that may be tru to a certain extent, but think of the potential of someone that got this far without any help... I learned from books and trying things out myself, I only went to a programming class this year to get my career prep credit but then I learned of robotics through this class... Honestly how many 12 year olds do you see that know C++?

Tanner 31-03-2010 17:17

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by gblake (Post 946188)
I haven't read this entire thread; but if the folks who have signed up for the original poster's challenge (and any who haven't yet) would like to get a little practice in before attempting this challenge with a real robot - I can make it possible for you to control one or all of the 5th Gear simulated robots purely through software - I did this myself for our Overdrive simulation, and it is definitely a learning experience that would be good prep for attempting to the same with a real bot - Do I have any takers?

I think that'd be pretty neat. Plus then you could experiment with a few different designs. Sure, its a bit of a exact environment, but you get to play with a robot any of the time.

-Tanner

tsa256 31-03-2010 18:29

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by Boydean (Post 946301)
I would be down with this. I know if I brought it up during a meeting it would be cut down pretty fast, but that doesn't stop me from working on it outside the competition to learn.

I see a lot of time spent in the parking lot with bot the next couple of months.

I like how you think, I'm in the exact same situation, if I brought it up I'd be looked at like I was insane, and I agree it's a challenge, but I'm willing to go for it. Unfortunately I'm the only one on who thinks it's worth a shot. I mean even if it's not perfect the experience would be full of learning opportunities.

One programmer from 1124 is taking on the challenge.

davidthefat 31-03-2010 18:31

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by tsa256 (Post 946456)
I like how you think, I'm in the exact same situation, if I brought it up I'd be looked at like I was insane, and I agree it's a challenge, but I'm willing to go for it. Unfortunately I'm the only one on who thinks it's worth a shot. I mean even if it's not perfect the experience would be full of learning opportunities.

One programmer from 1124 is taking on the challenge.

Yea you just work on it and if you want to test it just say its experimental code, no one will care unless it goes crazy and runs everyone over

Rion Atkinson 31-03-2010 19:17

Re: Programmers: I Have A Challenge For You
 
Okay, so here goes another post for this thread.

I keep seeing people say "I've been in FIRST four year and am now a mentor. I think you are over ambitious high-schoolers. This can't be done. MIT students can't do it. Not in six weeks anyway." Where are your heads? I mean seriously. Think! :mad: You call yourself mentors... Aren't you supposed to inspire? Would those people be and MIT if they weren't ambitious? Would we be here in FIRST if we didn't think that high-schoolers could build robots? I can't say this is true. But I have a feeling that when FIRST was started people like yourself said "That's stupid, high-schoolers can't build robots." And now look! We have teams like 148, 114, 254, 33, and 1114(The list goes on.) who are amazing! I sit back in awe practically drooling at when I see their robot! If I knew that they also had a fully autonomous robot, I would be floored! So please, use your brains and think people. Do we encourage these ambitious students, or do we tell them it can't be done? (Which we all know will just make them want to do it all the more. ;) )

Plus, it's the off-season! I'm going to be starting up my own team, keeping up with school, mastering designing with sheet metal, along with fine-tuning my CAD skills. I see no reason why we shouldn't encourage these students to try their best to do what MIT students take two years to do. I hope they succeed! :D Do I expect them to get a almost perfect code by the beginning of next season? YES! Do I expect them to have a fully autonomous robot for next season bot? No, but I would love to see it! :D

I would personally offer any help that is needed, but I am not a programmer. I'll be over here cheering you on though.

Go for it guys, have fun, learn, fail, stand up, do it all over again, and then when there seems to be no hope. You will succeed.

-Rion

P.S. - FIRST isn't DARPA.

Feel free to give me some bad rep for this post, I don't care.

davidthefat 31-03-2010 19:33

Re: Programmers: I Have A Challenge For You
 
So just got the book http://www.amazon.com/Introduction-A.../dp/026219502X

Now read some of it, there are so many wheel configurations you can do and I think I want to attempt 2 and 4 legged bots later...

Will post a chart later

davidthefat 31-03-2010 19:42

Re: Programmers: I Have A Challenge For You
 

theprgramerdude 31-03-2010 20:28

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by lineskier (Post 946323)
Collaborative Development...?

Seeing as many of the tasks are the same from robot to robot, (ie drive to target) I am wondering what people would think about working on the problem in a collaborative manner. Also if you were to work on a collaborative autonomous engine, what language would you want to use.

(any language is the right language, I'm not trying to open another debate about languages)

This is what I was thinking. We could try to get a giant, inter-team project going, with each team responsible for certain sections of code, which gets tossed back and forth via e-mail, etc.

Should we start a sign-up list for those that want to do this over our 8-month break? I'm definitely psyched for this.

Edit: Plus, the rules would allow us to use this code next year (with modifications for the THAT game) as long as we keep releasing it to the public.

Radical Pi 31-03-2010 20:51

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by theprgramerdude (Post 946524)
This is what I was thinking. We could try to get a giant, inter-team project going, with each team responsible for certain sections of code, which gets tossed back and forth via e-mail, etc.

This sounds like a project for...google wave (finally a real use for that site). I have 25 invites laying around if anyone wants to try setting up for that

davidthefat 31-03-2010 21:04

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by theprgramerdude (Post 946524)
This is what I was thinking. We could try to get a giant, inter-team project going, with each team responsible for certain sections of code, which gets tossed back and forth via e-mail, etc.

Should we start a sign-up list for those that want to do this over our 8-month break? I'm definitely psyched for this.

Edit: Plus, the rules would allow us to use this code next year (with modifications for the THAT game) as long as we keep releasing it to the public.

If that were to work, people will have to pick one common language and people will have to code so well and comment very well too, I think its way too hectic to do it online, but if its in person, Im down..

ideasrule 31-03-2010 21:08

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by theprgramerdude (Post 946524)
This is what I was thinking. We could try to get a giant, inter-team project going, with each team responsible for certain sections of code, which gets tossed back and forth via e-mail, etc.

Should we start a sign-up list for those that want to do this over our 8-month break? I'm definitely psyched for this.

Edit: Plus, the rules would allow us to use this code next year (with modifications for the THAT game) as long as we keep releasing it to the public.

I'm definitely interested in this collaborative project. A completely autonomous robot certainly can't perform better than a human driver, but the code that'll be developed will almost certainly be useful for the autonomous period.

davidthefat 31-03-2010 21:11

Re: Programmers: I Have A Challenge For You
 
Another question for y'all: Which way do you make the omni bot "front" the diagonal wheel or the front face?
This way?



or that tilted so the flat side is the front?

Chris is me 31-03-2010 21:12

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by Formerly Famous (Post 946474)
Okay, so here goes another post for this thread.

I keep seeing people say "I've been in FIRST four year and am now a mentor. I think you are over ambitious high-schoolers. This can't be done. MIT students can't do it. Not in six weeks anyway." Where are your heads? I mean seriously. Think! :mad: You call yourself mentors...

There's a difference between ambition and foolhardily charging at a ridiculous idea because you're overconfident in yourself and think anything is possible. I don't think it would be really inspiring to tell my team "Yeah, we can build Super Complex Bot XYZ in a week! Faster than 1114 or 148 ever could! All we gotta do is try and believe!". I guess I'm supposed to inspire students by giving them ridiculous goals and padding their egos.

davidthefat 31-03-2010 21:15

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by Chris is me (Post 946550)
There's a difference between ambition and foolhardily charging at a ridiculous idea because you're overconfident in yourself and think anything is possible. I don't think it would be really inspiring to tell my team "Yeah, we can build Super Complex Bot XYZ in a week! Faster than 1114 or 148 ever could! All we gotta do is try and believe!". I guess I'm supposed to inspire students by giving them ridiculous goals and padding their egos.

Read my sigs... Did Thomas Edison give up after not getting the light bulb after a couple tries?


edit: Im not quitting until I get it... That means even after college I don't get an autonomous robot, I will just join a company that has a same goal as me

ideasrule 31-03-2010 21:16

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by Chris is me (Post 946550)
There's a difference between ambition and foolhardily charging at a ridiculous idea because you're overconfident in yourself and think anything is possible. I don't think it would be really inspiring to tell my team "Yeah, we can build Super Complex Bot XYZ in a week! Faster than 1114 or 148 ever could! All we gotta do is try and believe!". I guess I'm supposed to inspire students by giving them ridiculous goals and padding their egos.

"Super Complex Bot XYZ" is the understatement of the year. Designing an intelligent autonomous is as hard as, if not harder than, building a nuclear fusion reactor with less than $100 000.

EDIT: I mean one that actually generates electricity instead of consuming it.

davidthefat 31-03-2010 21:18

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by ideasrule (Post 946557)
"Super Complex Bot XYZ" is the understatement of the year. Designing an intelligent autonomous is as hard as, if not harder than, building a nuclear fusion reactor with less than $100 000.

EDIT: I mean one that actually generates electricity instead of consuming it.

In before FIRST competition gets blown up by a faulty nuclear reactor some kid made...::ouch::

EthanMiller 31-03-2010 21:19

Re: Programmers: I Have A Challenge For You
 
Why not Subversion, CVS, or the like? Google Code, Sourceforge, and the like can be used for free. WindRiver and Netbeans I know have the ability to do SV and CVS, I don't know about LabView.

Also: Who's bot would it run on? It would be a little hard to develop for a robot that you've never seen. Just my opinion, of course, having never developed for an application like that. Also would make testing a small bit harder.

davidthefat 31-03-2010 21:22

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by EthanMiller (Post 946560)
Why not Subversion, CVS, or the like? Google Code, Sourceforge, and the like can be used for free. WindRiver and Netbeans I know have the ability to do SV and CVS, I don't know about LabView.

:rolleyes: Now I wouldn't want every robot in the next competition to be fully autonomous too... Whats the point of being Fully autonomous then?

efoote868 31-03-2010 21:35

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by Tom Bottiglieri (Post 946314)
If you really think the DGC/DUC task is easier than FRC, I think you may be mistaken. Before I moved to California, I worked at MIT with the DGC team on their continuing autonomous land vehicle research. Unknown terrain, traffic laws, REAL safety, and IC engines are all a bit more complicated than our dinky electric drive bases and arms.

I was referring to the 2004-2005 Grand Challenge. I believe that getting a vehicle autonomously from point A to point B, with no limits on money spent, people involved, and a year to prepare is an easier challenge, and is more straight forward than programming a robot to compete autonomously in an FRC game with up to $5000 worth of materials and sensors, in six weeks.
But that's my opinion.



Quote:

Originally Posted by Formerly Famous (Post 946474)
I keep seeing people say "I've been in FIRST four year and am now a mentor. I think you are over ambitious high-schoolers. This can't be done. MIT students can't do it. Not in six weeks anyway." Where are your heads? I mean seriously. Think! :mad: You call yourself mentors... Aren't you supposed to inspire?

Re-read that post, and you'll see that I said "It won't be done".
I would absolutely love it if all of you proved me wrong.


I'm also suggesting that you guys should set more realistic goals given the time, money, manpower, not to mention computing capabilities of the cRio.
A more worthy goal than a fully automated match would be:
1. A fully functioning and planned autonomous
2. A very easy to control robot
3. A mesh of automated functions and a simple user interface.
4. Get more sponsorship for your team, so that it may survive longer.
5. Start another team.

gblake 31-03-2010 21:38

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by EthanMiller (Post 946560)
... Also: Who's bot would it run on? It would be a little hard to develop for a robot that you've never seen. Just my opinion, of course, having never developed for an application like that. Also would make testing a small bit harder.

Once again - If you pick the 5th Gear simulator, or a non-FIRST game that offers a similar opportunity to write code to control a simulated machine (Alex mentions a tank game) - Then everyone is using the same "machine", your testing is quick and easy anywhere on the planet, and you get multi-machine interactions.

Using some sort of simulator/game would be a wise first step to take on this ambitious undertaking.

How do you eat an elephant? One bite at a time.

Blake

Chris Hibner 31-03-2010 21:41

Re: Programmers: I Have A Challenge For You
 
Here's the thing:

Is anyone really going to be able to accomplish this for next year. Probably not (but it depends on the game). However, a lot of people might get very close, and they're going to learn an insane amount during the process. If you want to try it, give it a go. The best thing is that you'll learn a lot of shortcomings of a lot of sensing technologies, you'll learn how to translate human thought process into logic steps, and you'll come away with a boat-load of knowledge about real world control systems and the typical issues you have to deal with. Try it and have fun!

Rion Atkinson 31-03-2010 21:46

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by efoote868 (Post 946568)

Re-read that post, and you'll see that I said "It won't be done".
I would absolutely love it if all of you proved me wrong.


I'm also suggesting that you guys should set more realistic goals given the time, money, manpower, not to mention computing capabilities of the cRio.
A more worthy goal than a fully automated match would be:
1. A fully functioning and planned autonomous
2. A very easy to control robot
3. A mesh of automated functions and a simple user interface.
4. Get more sponsorship for your team, so that it may survive longer.
5. Start another team.

Think of it like FLL. Those matches are completely autonomous. Are they not? They use nothing but sensors? No, I'm not saying that they should tackle this all at once. I'm just saying that by learning this one thing at a time, it could very well greatly benefit them in the future. :D If they learn about sensors, they could apply it to the robot next year, allowing the robot to be that much easier to control. Come on, chassis people build chassis in the off-season. What do programming guys do? They program.

Now yes, i would suggest that you first program a two minutes autonomous that just involves a empty field with the game pieces. Ones you have that down. I would then add in the chance of other robots. Just a thought.

efoote868 31-03-2010 22:10

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by davidthefat (Post 946549)
Another question for y'all: Which way do you make the omni bot "front" the diagonal wheel or the front face?
This way?



or that tilted so the flat side is the front?

I'd tell you that robot has no front, and you should program it as such.

theprgramerdude 31-03-2010 22:26

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by EthanMiller (Post 946560)
Why not Subversion, CVS, or the like? Google Code, Sourceforge, and the like can be used for free. WindRiver and Netbeans I know have the ability to do SV and CVS, I don't know about LabView.

Also: Who's bot would it run on? It would be a little hard to develop for a robot that you've never seen. Just my opinion, of course, having never developed for an application like that. Also would make testing a small bit harder.

IMO, I was thinking if this was a group project, we'd just agree on a set design before starting. Everyone already has a fully (I hope) functioning robot, the only difference would be the exact specs (wheels, drivetrain, minor issues that modular code would easily adapt too).

davidthefat 31-03-2010 23:02

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by theprgramerdude (Post 946589)
IMO, I was thinking if this was a group project, we'd just agree on a set design before starting. Everyone already has a fully (I hope) functioning robot, the only difference would be the exact specs (wheels, drivetrain, minor issues that modular code would easily adapt too).

Thats why you have multiple programmers on your team... :rolleyes: I can't say I can trust them with any code I write...

Radical Pi 31-03-2010 23:03

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by efoote868 (Post 946585)
I'd tell you that robot has no front, and you should program it as such.

I'd tell you that front is whichever way the camera is pointing.

davidthefat 31-03-2010 23:04

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by Radical Pi (Post 946608)
I'd tell you that front is whichever way the camera is pointing.

I was referring to when you go forward on teh joystick, which side goes forward.

efoote868 31-03-2010 23:15

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by davidthefat (Post 946609)
I was referring to when you go forward on teh joystick, which side goes forward.

Me too.

davidthefat 31-03-2010 23:17

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by efoote868 (Post 946614)
Me too.

So you are saying it goes forward relative to the driver's POV? Oh I see...

davidthefat 01-04-2010 00:25

Re: Programmers: I Have A Challenge For You
 
Ah $@#$@#$@#$@#... Robotics is too addicting, I have halted my game that I have to turn in the end of the year for my AP Comp Sci class... Better not slack off on that

Alex.Norton 01-04-2010 00:55

Re: Programmers: I Have A Challenge For You
 
The biggest problem that I can see here (assuming all of the sensor, code, etc...) works perfectly is the development of an Artificial Intelligence. How does the machine decide when it is prudent to go for a game piece, heck how do you choose to go left/right at any given moment.

The AIs that I have worked with in the past used hundreds of runs to get good predictive and training data. How do you get your machine this type of data against a good opponent? Getting a machine that can run around an empty field is one problem. Getting a machine that can play against even another AI is extremely difficult. As an example I'm currently working on a biomimetic vision system that will runs of data sets well in excess of 10,000 images and despite this it can still only tell the difference between a zebra and a car 80% of the time.

The next major hurdle that I can on the horizon is processing power. From this discussion it would seems that most people want to bet on the camera for most of their more complex sensing needs. Doing this will involve object recognition (ball, other bots) integrated with position control to accurately place the robot on the field. Doing real time image processing (I haven't seen the NI libraries for this so I don't know what functions they do have) that must process and recognize objects takes a amazing amount of processing power. Power that I'm sure the cRio doesn't have, especially considering how much I've heard about the camera slowing the robot down too much.

If somebody has a proposal for how to solve the processing problem I would be happy to work on a project like this. Sadly I don't have access to a robot so I would need to work more from the strategy end. If somebody feels like organizing this PM me.

mwtidd 01-04-2010 02:10

Re: Programmers: I Have A Challenge For You
 
Collaborative Development.

To everyone looking to work with me on the ADK, i have created a FirstForge project (Bobotics ADK)

The framework is very basic, but very extendable.

In there there is the ADK,
and then a sample Robot (Bob) which is built utilizing the ADK library.

My hope is that it is simple enough to pick up quickly, the goals of the project are two fold: Bring autonomous to every team, and successfully implement a basic fully autonomous proof of concept.

http://firstforge.wpi.edu/sf/projects/bobotics


*oh and its written in Java as I feel it is the easiest to learn.

gvarndell 01-04-2010 07:42

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by Alex.Norton (Post 946649)
If somebody has a proposal for how to solve the processing problem ...

Stack the deck and reduce the horsepower required.

For example, for tracking other robots, require that every participating robot computes, and broadcasts, 5 or 10 times per second, its location on the field and its acceleration vector.
This could be a tiny little network packet tagged with robot ID.

Is this less sexy to contemplate than full realtime vision on each robot?
Sure it is.
Is it almost infinitely more doable than full realtime vision on each robot?
Duh.

Constraining the problem domain is the only way this is going to fly.
Even so, the enormity of this undertaking only seems apparent to some.
Perhaps that's a good thing...

alexhenning 01-04-2010 12:09

Re: Programmers: I Have A Challenge For You
 
I tried one in 09, but unfortunately I the robot wasn't ready until ship day and it had too many quirks (mostly relating to the camera). We ended up never using it. I'll try again next year if I have enough time with the robot. To help with this it would be nice if FIRST revealed the scores on the board + time left, so that your strategy could change when you were winning and losing.

theprgramerdude 01-04-2010 12:14

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by Alex.Norton (Post 946649)
The biggest problem that I can see here (assuming all of the sensor, code, etc...) works perfectly is the development of an Artificial Intelligence. How does the machine decide when it is prudent to go for a game piece, heck how do you choose to go left/right at any given moment.

The AIs that I have worked with in the past used hundreds of runs to get good predictive and training data. How do you get your machine this type of data against a good opponent? Getting a machine that can run around an empty field is one problem. Getting a machine that can play against even another AI is extremely difficult. As an example I'm currently working on a biomimetic vision system that will runs of data sets well in excess of 10,000 images and despite this it can still only tell the difference between a zebra and a car 80% of the time.

The next major hurdle that I can on the horizon is processing power. From this discussion it would seems that most people want to bet on the camera for most of their more complex sensing needs. Doing this will involve object recognition (ball, other bots) integrated with position control to accurately place the robot on the field. Doing real time image processing (I haven't seen the NI libraries for this so I don't know what functions they do have) that must process and recognize objects takes a amazing amount of processing power. Power that I'm sure the cRio doesn't have, especially considering how much I've heard about the camera slowing the robot down too much.

If somebody has a proposal for how to solve the processing problem I would be happy to work on a project like this. Sadly I don't have access to a robot so I would need to work more from the strategy end. If somebody feels like organizing this PM me.

In terms of processing power, I was already thinking about how to overcome the (ironic) limits of the Crio. Back in '07, a team was planning on attacing a full computer to their robot to do calculations. I was thinking like-wise for this project.

My current idea is as follows. It would involve a DC-DC converter connected to the PD board, which could then plug straight into the ATX connector on a motherboard. Example:http://www.mini-box.com/M4-ATX?sc=8&category=981
A proccesor would then handle several inputs from various sensors that the Crio can't handle. A CUDA-based GPGPU would be able to handle most calculations from the cameras such as pattern recognition and positioning.

What do you think?

Back to the 10,000 Lakes Regional as my team needs the current Auton code done.

Edit: and IMHO, I believe Java would be a horrible language to create a fully autonomous robot, as it's slowness and inefficiences would handicap even the best system. It's why I chose to use C++ this year again.

45Auto 01-04-2010 14:52

Re: Programmers: I Have A Challenge For You
 
As long as your definition of a "fully autonoumous" robot consists of something on the order of simply finding a game piece and kicking it in the direction of a goal you at least have a chance to be succesful. Many of this year's and previous year's robots already do that in autonomous, no big deal to run it for an additional 2 minutes.

However, don't expect your robot to do very well in competition. A game designed for competely autonoumous robots like FIRST TECH CHALLENGE or FIRST LEGO LEAGUE is much simpler than the games FIRST designs for their top level of competition.

Remember that you are part of an alliance. Your inability to co-operate with your teammates to maximize each robot's potential would be the equivelent of a football player running whatever play he feels like without co-operating with the rest of the team. Don't expect it to work very well.

Using this year's game for an example, how do you in intend to determine whether your robot should be going after a ball or blocking an opposing robot? How do you decide when to come over the bump into the front zone and assist in scoring? How do you decide when to come over the bump into the front zone and block the opposing alliance's blocker bot so your striker can score? How do you know if your alliance partner has moved to the middle and you need to move to the far zone to clear balls from it? If you do decide to block an opposing robot, how do you know it's not dead and you're wasting your time on it? How do you know that your alliance's striker bot is broken down and you need to move forward and score? How do you know both your alliance mates are on their back and you need to flip one back upright to have a chance to get past their blocker bot and score (this happened to us in the semi-finals, we won the game 2-1: http://www.thebluealliance.net/tbatv...2010la_sf2m2)?

These are just some of the decisions I've made as field coach on our team this year. They're all pretty straight forward and simple, but impossible to make without an overview of the game situation. I'd be interested to hear how you intend to implement any kind of awareness of the tactical situation into your robot. You can pre-program a game plan into it, but without an overall awareness of the game, you'll discover the truth of an old saying that's proven itself through the years: "No plan survives contact with the enemy".

I think it's great to inspire people to work towards fully autonomous robots, just don't lose sight of reality. Many of your teammates will probably want to do at least reasonably well at their competions. In the real world, your robot will be a liability to it's alliance.

ideasrule 01-04-2010 16:28

Re: Programmers: I Have A Challenge For You
 
I vote for C++ too. Not only is Java slow, the WPILibJ has no libraries for file access or for more than basic vision processing. Java also doesn't allow low-level access to memory.

efoote868 01-04-2010 17:05

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by ideasrule (Post 946823)
I vote for C++ too. Not only is Java slow, the WPILibJ has no libraries for file access or for more than basic vision processing. Java also doesn't allow low-level access to memory.

You know that embedded Java programming is little more than accessing low level, native functions through a JNI?
Also, the fact that it doesn't allow low-level access to memory is a feature in most cases, making it harder to screw up.

More important than picking a language is figuring out the algorithms themselves, which may be as simple as "drive here, do action x, turn"... etc, with the smaller pieces left to teams to implement.
But then again, you don't know what the game will be, so its incredibly difficult to make meaningful decisions on strategies.

Best of luck anyhow. I feel like I've been a negative nancy for too long with this, I'll only post in this thread from now on if I can offer help :]

Alan Anderson 01-04-2010 17:21

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by theprgramerdude (Post 946524)
Should we start a sign-up list for those that want to do this over our 8-month break?

What break are you referring to?

mwtidd 01-04-2010 17:41

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by Alan Anderson (Post 946839)
What break are you referring to?

Earlier in the thread there was discussion about working on the project in collaboration rather than individually.

Right now I am starting up a Java team to build an ADK(autonomous dev. kit).

It would be nice if the C++ team could get a lead too, this way we could combine our efforts to provide an ADK in both c++ and java.

The java project is on first forge : http://firstforge.wpi.edu/sf/projects/bobotics

ideasrule 01-04-2010 18:03

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by efoote868 (Post 946832)
You know that embedded Java programming is little more than accessing low level, native functions through a JNI?

Yes, I found that out after spending enormous amounts of time trying to use the native vision libraries with Java. The result was definitely not pretty (the vision code was many times longer than it would have been with C++), and got even uglier when I had to create my own C file to read from a cRIO file.

A program written in C can easily be run on a cRIO imaged for Java, but as far as I know a Java program cannot be run on a cRIO imaged for C.

davidthefat 01-04-2010 19:37

Re: Programmers: I Have A Challenge For You
 
Well I delivered this message in the team meeting today, went pretty well, but I think Im the only one still that wants full sutonomous

davidthefat 01-04-2010 19:58

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by theprgramerdude (Post 946746)
In terms of processing power, I was already thinking about how to overcome the (ironic) limits of the Crio. Back in '07, a team was planning on attacing a full computer to their robot to do calculations. I was thinking like-wise for this project.

My current idea is as follows. It would involve a DC-DC converter connected to the PD board, which could then plug straight into the ATX connector on a motherboard. Example:http://www.mini-box.com/M4-ATX?sc=8&category=981
A proccesor would then handle several inputs from various sensors that the Crio can't handle. A CUDA-based GPGPU would be able to handle most calculations from the cameras such as pattern recognition and positioning.

What do you think?

Back to the 10,000 Lakes Regional as my team needs the current Auton code done.

Edit: and IMHO, I believe Java would be a horrible language to create a fully autonomous robot, as it's slowness and inefficiences would handicap even the best system. It's why I chose to use C++ this year again.

What I was thinking, a microprocessor takes care of the individual stuff, like multi threading, but with robots hardware

Greg McKaskle 01-04-2010 22:12

Re: Programmers: I Have A Challenge For You
 
The underlying vision for Java, C++, and LV are all thin wrappers calling into the same binary. While the languages have different capabilities and different runtime features, as long as you are using NI-IMAQ via the WPI libraries, the vision performance isn't due to a language choice.

Greg McKaskle

Dancin103 01-04-2010 22:13

Re: Programmers: I Have A Challenge For You
 
I must say, if I ever saw this I would be amazed. It would be awesome. BTW this is my 340th post. Go GRR. :)

theprgramerdude 01-04-2010 22:49

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by Alan Anderson (Post 946839)
What break are you referring to?

An FRC-members schedule:
January-February: Nonstop work on robot
March-April: Competitions and Nationals
May-December: Intermittent workload until next season. <-8 month break

davidthefat 02-04-2010 00:07

Re: Programmers: I Have A Challenge For You
 
Is there any rules on limiting the number of extra microprocessors the robot may have? Was thinking of uing like 2 or 3 extra microcontrollers to help the cRio

The Lucas 02-04-2010 00:29

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by davidthefat (Post 947015)
Is there any rules on limiting the number of extra microprocessors the robot may have? Was thinking of uing like 2 or 3 extra microcontrollers to help the cRio

Many rules limiting how they are used. Particularly <R03> regarding custom circuits and all cost accounting rules. Also additional non KOP motors rules and power sources rules if you are thinking of using a laptop. Of course if you want to see how deep the rabbit-hole goes

gvarndell 02-04-2010 07:22

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by theprgramerdude (Post 946746)
My current idea is as follows. It would involve a DC-DC converter connected to the PD board, which could then plug straight into the ATX connector on a motherboard. Example:http://www.mini-box.com/M4-ATX?sc=8&category=981
A proccesor would then handle several inputs from various sensors that the Crio can't handle. A CUDA-based GPGPU would be able to handle most calculations from the cameras such as pattern recognition and positioning.

What do you think?

As my 5 year old son often says -- and then what?

Figuring out how to power a PC motherboard on a robot gets you nothing but added weight and battery drain.
You're gonna have to take this idea to a higher plane if you want anyone to get excited about it.

My point is not to squelch your obvious enthusiasm, but engineers generally don't design solutions and then look for a problem that it solves.

Pretend that you've just read a product announcement:

Late summer 2010, BeastlyRoboVision Inc. will be offering a self-contained robot vision module. The module will cost around $900.00. It will be capable of tracking up to 16 (relatively large) objects out to a distance of 100 feet, with a 360 degree field of view. The module interfaces to any robot control system via 10 Gbit wired network interface, providing a low latency, high bandwidth, TCP/IP connection. FIRST has already approved this module for use in the 2011 FRC robots and NI has promised a 10 Gbit ethernet module for the cRio to be available by late summer.

Now, some of you set out to design and build that vision module, and some of you set out to design a robot that can make good use of it.

gblake 02-04-2010 08:24

Re: Programmers: I Have A Challenge For You
 
Quote:

As long as your definition of a "fully autonomous" robot consists of something on the order of simply finding a game piece and kicking it in the direction of a goal you at least have a chance to be successful. Many of this year's and previous year's robots already do that in autonomous, no big deal to run it for an additional 2 minutes.
How about if they define success as Inspiring and Recognizing Science and Technology excellence? I'm going to bet many folks will want to line up behind that goal!

Quote:

However, don't expect your robot to do very well in competition. A game designed for completely autonomous robots like FIRST TECH CHALLENGE or FIRST LEGO LEAGUE is much simpler than the games FIRST designs for their top level of competition.
How about if they use this as a tool in competing to earn FIRST's top level of competition's top award? - The Chairman's award.

Quote:

Remember that you are part of an alliance. Your inability to co-operate with your teammates to maximize each robot's potential would be the equivalent of a football player running whatever play he feels like without co-operating with the rest of the team. Don't expect it to work very well.
I think many FIRST FRC teams invest their time and resources across many fronts, and thast building a "best" robot is only one of them. Almost certainly this reduces their robots' abilities to play the game well (but generally makes them better FIRST teams). Are you saying that investing in any goal that distracts significantly from building and improving the robot should be discouraged?

Quote:

Using this year's game for an example, how do you in intend to determine whether your robot should be going after a ball or blocking an opposing robot? How do you decide when to come over the bump into the front zone and assist in scoring? How do you decide when to come over the bump into the front zone and block the opposing alliance's blocker bot so your striker can score? How do you know if your alliance partner has moved to the middle and you need to move to the far zone to clear balls from it? If you do decide to block an opposing robot, how do you know it's not dead and you're wasting your time on it? How do you know that your alliance's striker bot is broken down and you need to move forward and score? How do you know both your alliance mates are on their back and you need to flip one back upright to have a chance to get past their blocker bot and score (this happened to us in the semi-finals, we won the game 2-1: http://www.thebluealliance.net/tbatv...2010la_sf2m2)?
A fully autonomous robot-system can have an interface between itself and the rest of the game participants. For example a human sensor in the driver's station can listen to instructions given by allies and can transfer them to the cRIO part of the system. To keep the project's intent intact these instructions should probably be distilled into a relatively small set of pre-defined messages.

Quote:

These are just some of the decisions I've made as field coach on our team this year. They're all pretty straight forward and simple, but impossible to make without an overview of the game situation. I'd be interested to hear how you intend to implement any kind of awareness of the tactical situation into your robot. You can pre-program a game plan into it, but without an overall awareness of the game, you'll discover the truth of an old saying that's proved itself through the years: "No plan survives contact with the enemy".
See previous paragraph, and notice that the folks haven't decided to try to create a fully autonomous alliance (yet). They are discussing creating a fully autonomous robot.

Quote:

I think it's great to inspire people to work towards fully autonomous robots, just don't lose sight of reality. Many of your teammates will probably want to do at least reasonably well at their competions. In the real world, your robot will be a liability to it's alliance.
Perhaps. Or perhaps it will be a huge asset to the program, and all teams in it, because it becomes tangible evidence that FIRST is highly successful; and the resulting robot(s) consequently become an excellent inspirational tool.

Blake
PS: I haven't forgotten that this would/will be a very hard job. Nor have I changed my mind about spending more than one season helping a dedicated group of students eat this elephant one bite a time.

tsa256 02-04-2010 10:03

Re: Programmers: I Have A Challenge For You
 
I agree, the processing is a very debilitating bottleneck. We've debated some solutions such as other processors and ran into the same problems discussed above. I think the way to combat would be to find the best combination of processing and plausibility of it actually working. As stated above you could strap a computer on the robot but not only does a CUDA processor pull massive power, upwards of 400 watts if I remember correctly; and as for getting useful information out of the mother bored would be a challenge. Also probability of a mother bored not cracking is slim to none. Although I'm unfamiliar with this new camera module I think that may be the way to do it. I'm planning on researching it in depth as soon as I can.

And as discussed above, the amount of field combinations is practically infinite. Maybe the way to go at this problem would be to be to use the AI to execute a small task within the game. Just like the ability to activate camera tracking in teleop this year, I agree we should aim for the best possible AI, but as stated that's a massive task. As a software developer and with experience from working with my drive team I believe this would be a valuable asset. It would take a lot of processing off the cRIO, and allow the coach to process the entire field, then rely to the drivers to press a button to execute the proper function.

Alan Anderson 02-04-2010 10:05

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by theprgramerdude (Post 946962)
An FRC-members schedule:
January-February: Nonstop work on robot
March-April: Competitions and Nationals
May-December: Intermittent workload until next season. <-8 month break

You don't go to offseason competitions or hold training sessions?

45Auto 02-04-2010 10:39

Re: Programmers: I Have A Challenge For You
 
Quote:

How about if they define success as Inspiring and Recognizing Science and Technology excellence? I'm going to bet many folks will want to line up behind that goal!
Sounds good to me! I thought that was the definition of FIRST anyway, no matter what degree of technical challenge a team attempted.

Quote:

How about if they use this as a tool in competing to earn FIRST's top level of competition's top award? - The Chairman's award.
Nothing wrong with that. It'll definitely teach them science, engineering, and technology skills!

Quote:

I think many FIRST FRC teams invest their time and resources across many fronts, and thast building a "best" robot is only one of them. Almost certainly this reduces their robots' abilities to play the game well (but generally makes them better FIRST teams). Are you saying that investing in any goal that distracts significantly from building and improving the robot should be discouraged?
Don't think I said that. You wouldn't consider full-autonomous as part of building and improving the robot? I would.

Quote:

A fully autonomous robot-system can have an interface between itself and the rest of the game participants. For example a human sensor in the driver's station can listen to instructions given by allies and can transfer them to the cRIO part of the system. To keep the project's intent intact these instructions should probably be distilled into a relatively small set of pre-defined messages.
It appears that we have a big disconnect on what "fully-autonomous" means. My definition is more in line with the online dictionaries and Wikipedia:

A fully autonomous robot has the ability to

- Gain information about the environment.
- Work for an extended period without human intervention.
- Move either all or part of itself throughout its operating environment without human assistance.
- Avoid situations that are harmful to people, property, or itself unless those are part of its design specifications.

Not sure what your "human sensors" are (voice recognition or real people pressing buttons in the loop?) but in either case, it's still human intervention.

Quote:

See previous paragraph, and notice that the folks haven't decided to try to create a fully autonomous alliance (yet). They are discussing creating a fully autonomous robot.
Which is exactly what I was pointing out. Their fully autonomous robot won't have any interaction with their team mates. Maybe that's the new definition of "co-opertition"! No problem if that's what they want, just think about all the ramifications.

Quote:

Or perhaps it will be a huge asset to the program, and all teams in it, because it becomes tangible evidence that FIRST is highly successful; and the resulting robot(s) consequently become an excellent inspirational tool.
Does "highly succesful" mean "uses the highest technology"? I always considered "highly succesful" to mean inspiring young people to be science and technology leaders, by engaging them in exciting mentor-based programs that build science, engineering and technology skills, that inspire innovation, and that foster well-rounded life capabilities including self-confidence, communication, and leadership.

It is a fact of life that not all kids are interested in the programming side of FIRST. Nothing wrong with that, and nothing wrong with the programmers doing everything they can. Some kids are more interested in the mechanical aspects, some are more interested in the robotic competition aspects. Doesn't FRC still stand for FIRST ROBOTICS COMPETITION ? Nothing wrong with a team sacrificing their competitiveness to demonstrate their programming skills, just make sure that's what the team wants. My personal viewpoint is that sacrificing everything else about FIRST to emphasive a team's programming skills may not be in the best interests of FIRST or the rest of the team.

gvarndell 02-04-2010 13:16

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by 45Auto (Post 947096)
A fully autonomous robot has the ability to

- Gain information about the environment.
- Work for an extended period without human intervention.
- Move either all or part of itself throughout its operating environment without human assistance.
- Avoid situations that are harmful to people, property, or itself unless those are part of its design specifications.

When the operating environment is sufficiently constrained, and the time period is limited to 2 minutes, and the actions a robot can initiate are adequately limited, this is a much less daunting problem.
It's still big, no doubt.
But please consider that, for some of these kids, the typical team's 'make the robot so I can drive it' programming is about as challenging as putting Legos together or 'paint by numbers'.
Personally, I only hope this initiative isn't a flash in the pan.

ideasrule 02-04-2010 14:42

Re: Programmers: I Have A Challenge For You
 
For people who are interested in this, take a look at the autonomous programs on Spirit, Opportunity, and MSL. They have 20, 20, and 200 MHz processors respectively, running vxWorks, the same operating system that's on the cRIO. They also operate in a much simpler environment than FRC. These robots give a good idea of what vision processing is capable of.

davidthefat 02-04-2010 16:28

Re: Programmers: I Have A Challenge For You
 
Wish me luck, Im gonna order the ATmega640 and get all the parts from radio shack and put it all together during spring break... Hope I don't fry anything

Rion Atkinson 02-04-2010 17:47

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by ideasrule (Post 947141)
For people who are interested in this, take a look at the autonomous programs on Spirit, Opportunity, and MSL. They have 20, 20, and 200 MHz processors respectively, running vxWorks, the same operating system that's on the cRIO. They also operate in a much simpler environment than FRC. These robots give a good idea of what vision processing is capable of.

Those would me the MARS Rovers, no? I think Dave could shed some light on that subject. ;)

Radical Pi 02-04-2010 19:46

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by 45Auto (Post 947096)
It appears that we have a big disconnect on what "fully-autonomous" means. My definition is more in line with the online dictionaries and Wikipedia:

A fully autonomous robot has the ability to

- Gain information about the environment.
- Work for an extended period without human intervention.
- Move either all or part of itself throughout its operating environment without human assistance.
- Avoid situations that are harmful to people, property, or itself unless those are part of its design specifications.

Not sure what your "human sensors" are (voice recognition or real people pressing buttons in the loop?) but in either case, it's still human intervention

Probably not the idea of the other people wanting to participate in this, but I don't think a "full autonomous" robot is a good target. A "Human-assisted autonomous" (like hybrid mode?) is a more reasonable target for competition use IMO. In my limited memory of the mars rovers, I remember that even they weren't "fully autonomous". To compensate for the immense lag in transmissions between earth and mars, the human operators on earth would send out high-level commands, and then the rover implements the commands autonomously, doing things such as avoiding rocks in it's path while moving. That's exactly what would be useful in one of these competitions.

Imagine walking to the field with a control board that is one switch: score or block. These tasks are all autonomous, it's just the human operators tell the bot whether to kick that ball or to pin that bot. I'd still call this an excellent project if that was where it went

theprgramerdude 02-04-2010 20:43

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by tsa256 (Post 947086)
I agree, the processing is a very debilitating bottleneck. We've debated some solutions such as other processors and ran into the same problems discussed above. I think the way to combat would be to find the best combination of processing and plausibility of it actually working. As stated above you could strap a computer on the robot but not only does a CUDA processor pull massive power, upwards of 400 watts if I remember correctly; and as for getting useful information out of the mother bored would be a challenge. Also probability of a mother bored not cracking is slim to none. Although I'm unfamiliar with this new camera module I think that may be the way to do it. I'm planning on researching it in depth as soon as I can.

I was aware of the power draw. I'm not saying we should strap on a few 295GTX's in SLI and go from there, but use a smaller processor which draws 100-150 watts max. A low-power dual-core CPU would simply handle off-loading tasks to the GPU and handling I/O to the memory banks and Crio. My old-model 8800 GTS would easily handle the job, and it tops out at ~120 watts.

I guess we'd also need a way to keep a powersupply which can survive even in extreme low voltage situations and keep the current going to the system. As you could witness by watching the DS during a match this year, simply taxing 2 CIM's to stall drops the voltage to 8ish volts from a full battery, more if you have other systems or a damaged battery (as I witnessed when we got down to 5, then witnessed some fluid around it after the match. It was retired).

gblake 02-04-2010 21:32

Re: Programmers: I Have A Challenge For You
 
Folks - About adding more computing power to an FRC Robot - The last time I looked into them, I thought the Gumstix line offered some attractive options - Blake
http://www.gumstix.com/
http://en.wikipedia.org/wiki/Gumstix

davidthefat 02-04-2010 21:41

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by gblake (Post 947279)
Folks - About adding more computing power to an FRC Robot - The last time I looked into them, I thought the Gumstix line offered some attractive options - Blake
http://www.gumstix.com/
http://en.wikipedia.org/wiki/Gumstix

Currently attempting to make a board with a PIC controller, mentors gonna help me decide on what though

davidthefat 03-04-2010 02:02

Re: Programmers: I Have A Challenge For You
 
Oh $@#$@#$@#$@#, costing me about $100 out of my mom's pocket for all this stuff... $@#$@#$@#$@# it can get expensive real fast

Greg McKaskle 03-04-2010 09:16

Re: Programmers: I Have A Challenge For You
 
Cost is one of the reasons why mentors have been encouraging you to consider simulation or emulation. SW development doesn't have to wait for HW completion, and in the real world it typically doesn't.

Greg McKaskle

demosthenes2k8 03-04-2010 12:16

Re: Programmers: I Have A Challenge For You
 
Although I haven't read the full thread, I would like to say that I think it's feasable, and would love to attempt this over the summer.
We had a concept like this early on, but it was scrapped due to hardware problems-half the sensors it needed didn't get mounted. It definitely wasn't as complete a concept as this, but it should possible with Chopshop's current system. We still have the code saved in svn and hg, so we can get it back. The hardest part would probably be using the camera to see what's going on...

AustinSchuh 03-04-2010 17:36

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by gblake (Post 947279)
Folks - About adding more computing power to an FRC Robot - The last time I looked into them, I thought the Gumstix line offered some attractive options - Blake

The BeagleBoard is another comparable board that costs about $149. It's a lot cheaper than a Gumstix, though it isn't as small. And it uses the same CPU.

BeagleBoard

The BeagleBoard and the Gumstix are running an OMAP3 chip, which as an ARM Cortex-A8 core in it. They are clocked between 500 Mhz and 600 Mhz CPUs with Cortex-A9's are coming out shortly, and look to be very high performers. They are clocked at about 1 Ghz, and have two cores. I'm personally waiting until I can get my hands on an Cortex-A9 before I invest in any hardware for a similar project.

For those of you interested in learning how to do some AI, I recommend looking over the CS188 lecture slides from Berkeley. http://inst.eecs.berkeley.edu/~cs188...uncements.html I took the class a semester ago, and learned a lot.

Radical Pi 03-04-2010 18:01

Re: Programmers: I Have A Challenge For You
 
The BeagleBoard could be a good option. Load a small distro of linux on it, and then communicate over RS-232. Personally I couldn't do it since my mentor would kill me for breaking the CAN-bus :P (do RS-232 multiplexers exist, and more importantly, would they be FRC-legal?

EDIT: Actually, a board with an ethernet port would probably be easier to use. If we put a switch on eth2, we could plug the camera and extra board in and have the alternate board read directly from the camera and do the processing there. It would save a lot of overhead for many teams and bypass any rules issues, since ethernet switches are perfectly legal (2CAN)

The Lucas 03-04-2010 18:37

Re: Programmers: I Have A Challenge For You
 
You can also use SPI, I2C, and CAN for communication, provided you follow the rules.

Kevin Watson 04-04-2010 00:43

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by ideasrule (Post 947141)
For people who are interested in this, take a look at the autonomous programs on Spirit, Opportunity, and MSL. They have 20, 20, and 200 MHz processors respectively, running vxWorks, the same operating system that's on the cRIO. They also operate in a much simpler environment than FRC. These robots give a good idea of what vision processing is capable of.

Anyone care to guess how far Spirit or Opportunity can drive fully autonomously during the few minutes a match lasts?

-Kevin

Boydean 04-04-2010 01:01

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by Kevin Watson (Post 947669)
Anyone care to guess how far Spirit or Opportunity can drive fully autonomously during the few minutes a match lasts?

-Kevin

I would say about 20ish feet. Given the overall mechanical speed and the environment its in. Plus it needs to be REALLY sure its not going to get hurt wherever its heading. Then again, I would imagine they don't want it going to far with asking for another command because of safety issues.

Chris is me 04-04-2010 01:11

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by Boydean (Post 947674)
I would say about 20ish feet. Given the overall mechanical speed and the environment its in. Plus it needs to be REALLY sure its not going to get hurt wherever its heading. Then again, I would imagine they don't want it going to far with asking for another command because of safety issues.

The limiting factor probably isn't mechanical speed...

Burmeister #279 04-04-2010 01:17

Re: Programmers: I Have A Challenge For You
 
I actually laughed out load at the first post :D I would love to do it, but our head mentor has zero faith in the programming for who knows what reason. I was told that once she decided the robot was performing fine i wasn't allowed to touch it again until after competition. God himself couldn't convince her to allow the programmers to fully automate our robotn:mad:

Kevin Watson 04-04-2010 01:33

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by Boydean (Post 947674)
I would say about 20ish feet.

Without any vision-based autonomy running, the rovers might be able to move about nine feet. With vision-based hazard avoidance and path planning turned-on, each rover would be hard pressed to move 20 cm, or about 8 inches, in that same amount of time. This is a very, very tough problem to solve without some very serious hardware and software. It might be more rewarding to solve smaller problems before tackling something like this. One example might be a vision-based ball detector that could properly align the 'bot before kicking.

-Kevin

Boydean 04-04-2010 02:00

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by Kevin Watson (Post 947683)
...With vision-based hazard avoidance and path planning turned-on, each rover would be hard pressed to move 20 cm, or about 8 inches, in that same amount of time...

-Kevin

You just blew my mind. :eek:

ideasrule 04-04-2010 03:10

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by Kevin Watson (Post 947683)
Without any vision-based autonomy running, the rovers might be able to move about nine feet. With vision-based hazard avoidance and path planning turned-on, each rover would be hard pressed to move 20 cm, or about 8 inches, in that same amount of time.

The MERs have a top speed (mechanically limited) of 5 cm/s, but they stop for 10 seconds every 20 seconds for the vision processing to complete. Average speed is 1 cm/s. That's 120 cm in 2 minutes, which is really bad, but more than 20 cm. This is one of the strongest reasons for human space exploration: a four-year-old child on Mars' surface could accomplish far more science and moving around in ten minutes than the rovers could in a day.

Quote:

This is a very, very tough problem to solve without some very serious hardware and software. It might be more rewarding to solve smaller problems before tackling something like this. One example might be a vision-based ball detector that could properly align the 'bot before kicking.

-Kevin
Note that the hardware on board the MERs are extremely limited compared to computers on Earth, even by 2004 standards, because MER hardware must be radiation-hardened. Processor speed is 20 MHz, which is 20 times slower than the cRIO.

gvarndell 04-04-2010 11:27

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by Kevin Watson (Post 947683)
Without any vision-based autonomy running, the rovers might be able to move about nine feet. With vision-based hazard avoidance and path planning turned-on, each rover would be hard pressed to move 20 cm, or about 8 inches, in that same amount of time. This is a very, very tough problem to solve without some very serious hardware and software. It might be more rewarding to solve smaller problems before tackling something like this. One example might be a vision-based ball detector that could properly align the 'bot before kicking.

-Kevin

This is the essence of what I've been trying to get across in several previous posts to this thread -- the point just seems to land with a thud.

If you had realtime vision that could identify and track numerous objects out to 100 feet and down to roughly 1 cubic foot in size, and the information about those objects was streaming into your robot control system via a simple socket connection, *** what would you do with the data??? ***.

You can fairly easily synthesize a virtual playing field, populate it with virtual allies, opponents, fixed obstacles, and game pieces.
You can animate this virtual world and provide well defined information about what's going on in it to your autonomy functions.
You can then start *really* exploring the difficulties of implementing autonomous behavior in software.

Or, you can pipe-dream about strapping more computers onto your robot in hopes of solving.... what?

davidthefat 04-04-2010 11:47

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by Kevin Watson (Post 947683)
Without any vision-based autonomy running, the rovers might be able to move about nine feet. With vision-based hazard avoidance and path planning turned-on, each rover would be hard pressed to move 20 cm, or about 8 inches, in that same amount of time. This is a very, very tough problem to solve without some very serious hardware and software. It might be more rewarding to solve smaller problems before tackling something like this. One example might be a vision-based ball detector that could properly align the 'bot before kicking.

-Kevin

:ahh: Its La Canada... Well, I think CV will be able to pull it off before you guys (no hate) BTW Good Job on this year's football team, you guys actually rocked, was a close game.

BTW The way I am thinking of doing it is obviously smaller functions all ran in succession;
like:
Code:

/*
*This is BS code, just made out of my butt
*I am aiming to make the main cpp file to have minimum code
*All the code would be in the individual functions to allow reusage
*That means you can use it in teleop mode too Like what you said
*/
while(isAuto)
{
CheckEnvirn();
if(CheckObject() == true)
{
GetObject();
DoSomething();
}
else
{
Move();
}
}



All times are GMT -5. The time now is 14:58.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi