![]() |
Re: Programmers: I Have A Challenge For You
*sigh*
What I meant is it is always a good idea to know how the device you are programming works. I don't have a college-level education in this stuff, I only know what I can reverse-engineer. I think that the best way to learn how these robotics platforms work is to try things, read manuals, and mess up. Failure is the best teacher. I am currently teaching a couple freshmen how to hack at stuff. I had them start with a ps/2 mouse and an arduino, and they turned it into encoders for our robot. "I don't believe in shortcuts! I believe in the almighty GPL!" |
Re: Programmers: I Have A Challenge For You
Quote:
It's essential for the programmers to understand the underlying technology if you expect them to recover from failures. How can they fix a problem if they can't isolate or identify it? Autonomous is certainly not how you start programming a robot. Start with learning how the system works. What is PWM? Why is it used as a data signal? How (and why) is it used to control the speed of the motor? What is the "braking" action of a brushed DC motor? Why can't the motor run at infinitely slow speeds? What are encoders and potentiometers? How does the health of the battery affect the performance of the motor? What is an FPGA? Why is it used instead of a processor? I think the WPI library is fairly low-level, though if you wanted, you could periodically generate digital pulses with digital outputs. Having a standalone PWM-generator is also useful. We put a speaker on ours when we made it, so you can actually hear the square wave change as you adjust the duty cycle. Anyways, understanding how the components of the system work is necessary to understand how the system can fail. |
Re: Programmers: I Have A Challenge For You
I think the priority should be the Robotic perception rather than locomotion. You can have the biggest and the strongest and fastest athlete, but if he is blind, he can be beat by a regular joe with 20/20 vision in a game of football or something.
|
Re: Programmers: I Have A Challenge For You
I think that one of the biggest stumbling block for development of autonomous code is time. Programmers are usually the last folks to get their hands on the robot. While we can code things up, we must wait for the robot build process to get to a sufficiently stable point that we can grab the robot to run tests.
If the autonomous code is just a hand crafted set of instructions, then it must be tested, and refined many times to get it working properly. If the autonomous code is more of a state machine with transitions triggered by sensors, then this to must be laboriously tested. If it's an even more elaborate learning system, then the testing is even more intensive. Bottom line is that there typically just isn't the time to do the needed testing. So some times just code up something simple, others never get around to putting anything into autonomous mode. As far as the original idea of a fully autonomous robot, while I applaud the ambition, I suspect that it will be unrealistic for most, if not all, teams to be able to do that, given the empirical evidence of autonomous performance to date for most teams. |
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Quote:
There are two ways the TechnoKats have successfully dealt with this problem. One is to build into the schedule a set of "programming only" sessions. We did this a couple of years ago, with the programming group having absolute priority on the robot a couple of evenings a week starting in Week 3 of the build. The mechanical and electrical groups were denied permission to work on the robot during those times (though they were encouraged to be present in case something broke). This worked out great because we built a practice 'bot at the same time, so "the robot" was actually able to be used by two groups simultaneously. The other way is to finish the robot well in advance of ship date so that the programmers have plenty of time with it. This also has benefits for the drivers, giving them plenty of practice time. And probably the best thing about being done early is that there's plenty of time to break the robot. :) |
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Quote:
I agree usually the robot hardware is not ready in time to do 15 seconds of a game much less 2 minutes. |
Re: Programmers: I Have A Challenge For You
Maybe this has been already suggested I haven't read all the posts.
How about having a post championships competition, like IRI where the robots are totally autonomous. Maybe have it at IRI as one of the vents. This way there is more time to work on the robot post season. |
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
I am bumping this one up cause I honestly did not want to start another thread and as the kickoff gets closer, I thought people should see this.
I found a solution to the image processing problem. http://microcontrollershop.com/produ...ucts_id=352 9 No battery: Legal 4 USB ports = Good Runs Linux (The Arm 9 Linux uses 32 mb of ram, and this has 32 mb ram... So IDK...) I realized I can not use the PS3 or a PC due to lack of voltage generated form the batteries... Don't they need a minimum of 110v? and the battery is 12 v. It says it supports up to 4 webcams, but I do not know how well it can perform while processing images. I can either just process the data and send the raw data obtained from the camera to the cRio and process the logic there or process the logic on the board. Thats a minor detail that can be experimented with. |
Re: Programmers: I Have A Challenge For You
Quote:
Have you written any successful programming logic since your last post? |
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Quote:
--Me |
Re: Programmers: I Have A Challenge For You
Agreed with the above. I backed off of it, and instead have been studying the bigger picture of how to build a decent robot, as well as some of the sensors available for input. There's no reason to try all autonomous anyways if your robot just flat-out sucks.
|
Re: Programmers: I Have A Challenge For You
Well I plan to get a hold of that GadgetPC sometime soon and start working on the cameras and stuff. I really wanted to try parallel processing with multiple cores, but I guess I can hold off for a while.
|
Re: Programmers: I Have A Challenge For You
Quote:
Code:
is it a wall?Motion would be controlled by another part of the system that uses all of this information gathered by the three "lobes" and maps out the best route to take. ----------------------------------------------------------------------------------- **note** this isn't exactly how the human brain works, I'm just simplifying it to fit the application better and to avoid confusion of some people, myself included. ___________________________________________ I'm sorry if this is hard to follow or makes no sense, I had a hard time wording it, or even figuring out what I was trying to say, maybe I should take a break and come back to it later |
Re: Programmers: I Have A Challenge For You
Quote:
I been looking at the Machine Learning lectures by Andrew Ng @Stanford, I think that will give me a better insight on this. I totally understand what you are saying, my mind thinks the same. What I was hoping I could do was use the PS3, but that does not seem likely. There are 8 SPEs, only 7 are available, but thats fine. I was thinking each SPE was to be responsible for one part. All the SPEs can access the images without writing to it, so no problem there since all the SPEs would be only reading. Like 1 SPE can do the color detection, another do the distances of the objects, another do object recognition, and ect. They all relay that info to the PPE which will then compile the info and then do the logic. Then the PS3, through the ethernet, sends the instructions to the cRio. Now that seems like a stretch, but honestly I like to aim high. I am 1/4 through the MIT PS3 lectures, I have learned so much just from that LOL. If the PS3 is legal and the DC to AC inverters are legal, I can go ahead with this. Only problem, its my only PS3, do I want to potentially risk it getting crushed or something? I have 2 options too, run linux or go the homebrew way? I got a 60GB Japanese launch PS3, I still run linux on it, I have not updated it. The linux libraries for the PS3 are well documented and very thorough (IBM wrote them), but I would assume the homebrew route would have incomplete and shady libraries since its in its infancy. The down side of the linux on PS3 is the boot time, takes at least 45 seconds to boot up. The game OS only takes 2 seconds. |
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Quote:
(or, a partial implementation seeing as the field doesn't change from one match to the next (hopefully), and a full map could be made once) Quote:
And if this was constantly updated with current sensor information, it could try to find a route around other robots too. Quote:
This video shows an IRobot Create with a Kinect camera performing SLAM: http://www.youtube.com/watch?v=dRPEns8MS2o |
Re: Programmers: I Have A Challenge For You
For what it's worth, you may want to check out CMU's intro to robotics course
http://www.cs.cmu.edu/afs/cs.cmu.edu...1/www/current/ Especially check out Lab3 which has the some useful dead reckoning code (Yes, we are using their code in our robots). |
Re: Programmers: I Have A Challenge For You
Quote:
People will disagree with my mentality especially engineers, but I feel that is what I need as a student and as a person. My counselor told me that no one will just wait for me to help me, I have to actively seek help if I need it. I always think that if you reinvent the wheel, chances of you doing it better is greater than just reusing it. If you just reuse it, you will never be able to improve it. Also if I fail, I learn, which in my book is success. "I have not failed. I've just found 10,000 ways that won't work." -Thomas Edison |
Re: Programmers: I Have A Challenge For You
Quote:
Your goal of biting off 100 times more than you can chew is probably going to slow your learning process overall, there is nothing wrong with learning things in smaller steps. Your ambition is good, your plan isn't so much. |
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Clarification:
45 seconds is about the total time it takes from the time when power is applied until the time which the complete control system is ready to be enabled, assuming the Classmate is already running. So, not the boot time of the cRio itself, but the entire robot-end control system. |
Re: Programmers: I Have A Challenge For You
Quote:
Trust me, you really don't want to set yourself up for a mindset of already having put in your effort and wishing to relax early. Ignoring resources now will only make you work harder to get to the same place others will be, and you will still have to "push" once you get there if you don't want to find yourself falling behind. Quote:
Quote:
I'm not belittling your goals. It's your plan for achieving them that I think needs some tweaking. |
Re: Programmers: I Have A Challenge For You
Quote:
I'm a big fan of the "Stand on the Shoulders of Giants (tm)" I like to use other peoples ideas/products/code/etc. to get started. Once I have things in place that work I can start refining / optimizing small parts to make them better. I know that I can dig iron and coal out of a hill, but it does not mean that I want to make my own steel gears from scratch. So from a few posts up. I would use the CMU camera and it's code. Once I understood how it worked, I would start changing sections out to make it better and better. While there are other platforms you can use, any of them are better than starting with: Code:
main(){ |
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Quote:
I find it fascinating that people here are jumping to conclusions without checking out the facts (or links in this case). CMU does NOT just make the CMUCam !!! In any event, the course itself is useful to take a look at for the ideas and the math behind a lot of the robotics. Why do you want to go ahead an reinvent the math when you can just look at the math and find out if you want to use it, or better still, find something better!? |
Re: Programmers: I Have A Challenge For You
Quote:
As an Engineer, I can definitely state that in the Real World, you have to build on what other people have done. I don't see anything wrong with doing that in school or robotics competitions. This reminds me of one of the Science Exhibits I once saw titled: Baking an Apple Pie from Scratch. Step 1: Create the Universe Step 2: Create Life on Earth Step 3: Create Apple Trees Step 4: ... The point is, you have to start somewhere. Don't be too arrogant as to think that just because you didn't invent it, it is not useful. |
Re: Programmers: I Have A Challenge For You
What you could try doing is incorporating Kinect into your Robot as it has depth and color perception built in and that could help in a game that may be like Overdrive...just a thought
|
Re: Programmers: I Have A Challenge For You
Quote:
I am not going the kinect route like I mentioned before. |
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Quote:
I'd like to find out if two Kinect sensors pointed at the same object would interfere with each other. Does anyone here know if someone has tried it? |
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Quote:
Note the video is actually a 3d recreation, notice how at the end he is able to move around the space. http://www.youtube.com/watch?v=5-w7UXCAUJE also here's a video of mit's kinectbot does 3d mapping and gesture recognition. http://www.youtube.com/watch?v=dRPEns8MS2o |
Re: Programmers: I Have A Challenge For You
link to a 5th Gear "AI" FYI update in a related thread
http://www.chiefdelphi.com/forums/sh...5&postcount=21 |
Re: Programmers: I Have A Challenge For You
Has anyone tried yet to simply use the Crio as an I/O device, and use it to send all images/Sensor data to a super-extra-beefy laptop with a modern GPU that can handle all the thinking for it? I'd imagine using something like a few cameras and then trying to perform a SLAM on the inbound stream would easily exceed what the Motorolla is capable of doing, but easily within the reaches of a CUDA-powered laptop.
|
Re: Programmers: I Have A Challenge For You
Gravedig Post:
With the introduction of the Kinect this year, that may be a better system, as one could program it to recognize game objects and robots. At least I think so. I was thinking about trying this, but my summer project is getting a crab drive to work |
Re: Programmers: I Have A Challenge For You
Our turret was fairly autonomous this year.
Camera would target goal, find distance and angle from target. Center to Target. Figure out what speed to use on the wheels from calibration points. and we would fire. Everything else was Operator control: driving, ball collection, hitting the fire button, Bridge mounter. But man that Turret was a blast to code. I can't guarantee that we will make fully autonomous robot, but we already try to make the Robot take care of itself as best we can. |
Re: Programmers: I Have A Challenge For You
Could we, as an awesome robotics community, create a github for this? Each team could push and pull his or her ideas....creating a truly Graciously professional union between our teams.
|
Re: Programmers: I Have A Challenge For You
Wait, one question:
How in the world are you going to know where other robots are? You could do vision tracking (sound painful, but possible) or use the laser rangefinder that google used (easier to program, harder to build). Anyway, in my senior year, I would like to do camera tracking for everything, and make it completely autonomous. I hope the game that year is good... PS: To gixxy: why is Programmer.program() static? are you the only one? |
Re: Programmers: I Have A Challenge For You
Wow. That sounds both amazing and painful. It's an interesting concept, that's for sure. The main programmer on our team might be up to the challenge (only problem is that he is a senior right now and will only mentor next year). This could be something for our programming team to work on over the summer though.
It would certainly make for an interesting match if all the robots were autonomous, but what would the drivers do? I'm not sure if a fully autonomous robot could pull off a last-second balance or miracle shot like this year. And if a robot this year were autonomous, how would it know when to balance or how to react to defending robots? How would you program it to know the difference between an alliance partner and an opponent? The human element in matches is important. If an alliance partner needed help (say their robot was tipped over) the fully autonomous robot probably wouldn't help right the other robot. And then there's always some faulty sensor or something. I'm not saying this is a bad idea, I'm saying this would be hard to pull off and still win matches. Still, I would be absolutely awed if there was a robot next year that had full autonomous and could still win matches. |
Re: Programmers: I Have A Challenge For You
I've been pushing for this the entire season.. However our team has no electrical, so I had to take over that part.. Also we don't have the funds to go all out on sensors.. and our mechanical team do not have time to mount an advance sensor system..
It's not entirely impossible. It just takes 1 really good programmer (SLAM, planning, control), a really good machinist (sensor turrents etc.), and a really good electrical guy (sensors, control systems etc.) to work on exclusively the autonomous mode while everyone else works on everything else about the robot and a lot of money to do it.. 6 weeks should be enough. Though it will be pretty difficult to accomplish in the scale of FIRST, as the robots are big and the field are not always the most friendly in terms of localization. The worst part is probably tracking other robots.. Not impossible, but pretty hard as everyone has different dimensions (though bumpers are the same.. hmm) Me and our main builder (who is probably one of the best machinist I've ever encountered), and an outside friend who's excellent at electrical are starting to do a smaller robot that could do SLAM and auto navigation. We're making the entire robot open source once completed. The current design is approximately 18in x 11in big. |
Re: Programmers: I Have A Challenge For You
Team 2185 - The RoboRams
Are up for that challenge :yikes: |
| 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