Questions and Answers
If you have questions about our robots, you can always ask using our contact form. Sometimes people ask very good questions we think might also be interesting for other teams. If they agree, we publish them below.
John: kicker, drive train, CPU, programming
Dear team C-PALB! I am also a robocup junior competitor, me and my team will also be attending Robocup2011, It's great that you have so much informatoin about your robots on your website, but I don't seem to find information about your latest robots. I would like to ask you a couple of questions about them, I would very-much appreciate it if you could answer them: What Kind of Step up or DC-DC converter circuit did you use for your robots kicker? -Or what other electronics did you use for it - What kind of Motors,gearboxes,encoders did you use for your robots,-i am assuming that they are Maxonmotors, but what model exactly? - And what kind of processor did you use in your robot, and what kind did you use for image processing? And finally what kind of programming language did you program the robot in? and is the image processing hard to do? Any other advise you can give is highly appreciated Regards John Alex Keszler
Hi John, the section about our newest robot generation is still missing because we plan to tidy up all material we have and release it around robocup 2011. I uploaded our poster we made for the German Open 2011 at http://c-palb.de/cms/palb_vii.html , this should answer many of your questions. Quick answers: - The kicker board uses a circuit built around the LT3751 capacitor charger controller (see http://www.linear.com/product/LT3751) - The motors are Maxon RE-max29 and are slightly oversized ;-) We didn't use a finished gearbox but decided to make our own 75:11 gears directly connected to the wheels (you can see them on the poster). This was quite hard to get right, and I wouldn't recommend it to you. It is smaller than the maxon gearboxes, which allowed us to fit the large motors in. - The main processor is a small board from gumstix, see the poster. - Vision processing is done entirely in configurable hardware (Xilinx Spartan-3E fpga). This was really complex to do, but it is really handy because the main processor gets the vision information directly without having to do anything. If you are new to computer vision I would recommend the CMUCam3 to you. We used it in our very successful PALB V robots, which won the world champion title in two leagues. Our old source code is available on our homepage, but it's not very tidy ;-) - The robot is programmed in Verilog (the vision + motor control parts) and C++ (for high-level decision making). C/C++ is really the only way to go for robot control. Other tips: - Don't set your goals to high. We planned to create new robots in two years but needed three. Our robots weren't able to do anything last year, so we lost in the qualification competition in Magdeburg. Most of the time it's better to have good strategy + programming than raw strength. This year we were able to compete against very strong teams by dribbling around them. - If you don't have experience using microcontrollers, start with a pre-made board, e.g. from qfix. - If you can, look for a university team in your area. We have Team Nimbro here from University Bonn and they were very helpful with answers or their mechanical equipment. - Don't hesitate to ask sponsors for their money and technology ;-) If you have more questions, don't hesitate to ask at team@c-palb.de, or especially for software and electronics at Max@x-quadraht.de. Is it okay if I publish your question + my mail on our homepage? This might be interesting for other teams ;-) Best regards, Max
John: CNC, kicker, soldering
Hi ! Thanks for your fast answer! Most other team I wrote to didn't even answer. :P It's great to learn so much about your robots, and yes, feel free to publish my question on your website. I would have a few more question, what kind of CNC machine did you use to cut out the parts? And regarding the kicker circuit, what kind(what value) capacitor did you charge, and does this circuit consume a-lot of current? Also how did you solder the smaller package components, like the FPGA? We also have a university near us(they are planning to make a small size league team) But since they don't have a team yet, they can't really help us. Thanks Again Regards John Alex Keszler
Hi John, > I would have a few more question, what kind of CNC machine did you use to > cut out the parts? It's a small CNC machine from http://www.cnc-micro.de/ our school bought for us and other competitions. We got to use the CNC machine of the university for more complex jobs, like drilling holes in the gears. > And regarding the kicker circuit, what kind(what value) capacitor did you > charge, and does this circuit consume a-lot of current? It's a 450µF capacitor, so it can store quite a bit of energy ;-) If you plan to design something like this, take safety into account! Our circuit has a passive safety discharger. It works even if there if the robot power is switched off and discharges the capacitor in ca. 3 seconds through a 4kOhm resistor. Additionally it's very important to choose a high-side switch (IGBT or whatever you use to switch the kicker on) placed between the kicker and the high voltage line. This ensures that high voltage is only present outside your kicker circuit during the kick. We have seen teams which have high voltage lines permanently energized and out in the open, and if you ask them, they just laugh it off. If you get the whole energy of the capacitor discharged into your body, you are most certainly dead, so safety is no laughing matter and has to be the first priority. Schematic of the safety circuit: http://c-palb.de/~max/safety.png Take care to choose a good enough discharge resistor, we used one rated for 50W. > Also how did you solder the smaller package components, like the FPGA? We used a breakout board from sparkfun for it: http://www.sparkfun.com/products/8595 But there were quite a few components with smaller pin sizes than the FPGA. We used a normal soldering iron, a steady hand and SMD soldering flux. If your school has one, a stereo microscope (2x-4x) is very handy to look at the mess you have done ;-) Max
John: CNC, ball sensors, dribbler
Hi ! >It's a small CNC machine from http://www.cnc-micro.de/ our school bought for >us and other competitions. We got to use the CNC machine of the university for >more complex jobs, like drilling holes in the gears. How much does it cost roughly? I don't see a price quote on the webpage.... >If you plan to design something like this, take safety into account! Were going to use a similar step-up circuit, but were only going to step it up to 50V But were going to keep safety in-mind :D I would have one more questoin, what type of ball sensor/ phototransistor did you use? And also, just out of curiosity, why did you build a Lego dribbler? Thanks Regards John Alex Keszler
Hi John, > How much does it cost roughly? > I don't see a price quote on the webpage.... I'd have to ask in school during next week. > Were going to use a similar step-up circuit, but were only going to step it > up to 50V To get enough energy for a kick at 50V you would need a fairly big capacitor. The stored energy grows quadratic with the voltage, but only linear with capacity. This means using a capacitor is efficient at voltages above ~200V. I'd experiment with kicking at your battery voltage instead. There are solenoids designed for 3V, if you give them 12V instead, the kick is pretty okay. There are many teams who have a very strong kick without using high voltage circuitry. > I would have one more questoin, what type of ball sensor/ phototransistor > did you use? We use TSOP1738 digital sensors for the ball detection from far away, since they can see across the whole field. For the near approach we have self-built analog sensors: We use simple analog diodes (SFH 203 FA I think) as sensors. Since they are diodes, the signal needs to be amplified by an transimpedance amplifier circuit. We then feed the signal into a high-speed ADC (ADS7959) and detect the pulsed 1.2kHz signal digitally inside the FPGA. This is pretty nice because it gives us very precise signal level information (=> distance to the ball). But the robot catches the ball very nicely even if using only the TSOP sensors, so they are sufficient. > And also, just out of curiosity, why did you build a Lego dribbler? The only Lego parts are the wheels and the gears. There is a very powerful non-Lego DC-Motor inside. We used the wheels because we knew they worked from previous prototypes. And that's what Lego is good for, building many prototypes in short time. Dribbler design was always one of the hardest parts for us, so we were happy when it worked well and left it that way ;-) Best regards, Max
Ivan: ball sensors (TSOP)
Hi, I'm from brazil, and i was wondering if you could clarify something for me. My team and I are crazy about Infrared sensors, because our robot is going to have 16 around him, 10 will be for closer distance, simple analog infrared sensor, and other 6 will be for long distances. However, we have tried the long distance sensors but we hadn't a good result with a simple 38khz infrared sensor. The ball was only detected at first time. For example: The signal get's to the receiver, and the arduino sense it, but then, the receiver stops sensing the signal, and to sense egain you have to switch off and on. The problem is because the ball send a 1.2khz signal, and it's not the same as the receiver. My question is, what sensor and what schematic I need detect the ball with a 38khz receiver. I saw that you have made something very similar... Thanks! I'm waiting your answer... Ivan
Hi Ivan,
we had the same problems with digital 38kHz sensors. We think it's caused by
the slight mismatch of frequency (the ball is supposed to send out 40kHz).
After a time the sensor "latches up" and doesn't see the ball anymore.
We found two ways to rectify that:
1) Switch the ball off and on or hide it for a short time (which is not very
practical)
2) Reset the TSOP sensor. We do this by holding the VCC line low for about
half a second. It's only done if the sensor doesn't see the ball, so the
0.5s delay is not as bad as it sounds. The time needed to reset the sensor
seems to vary a little from model to model.
The TSOP draws very little power, so you can connect a simple µC output to
VCC.
It's not clear why they chose to design the ball to emit a 40kHz signal, while
only 38kHz sensors are readily available, but that's what we've got to work
with.
Don't spend too much time perfecting the sensors, most of the time the
behaviour of our robots was much better than our sensors let on...
Do you mind if I publish your question in the Q&A section on our homepage?
Regards,
Max
Ivan: ball sensors (TSOP)
Hi Max, I had that same idea, to turn off and on and then ressample the sensor, i think it will work fine, because we only use this sensor to aproch the ball, when is far away from the robot, and it doesen't need to mesure it every milisecond, so i think 400ms for the 38khz sensors will work. For the other 10 sensors, i will try to amplify the signal, and see if i can get a signal precise and with a gain... I will buy some 40khz sensors to try, and see if it can get a good signal from the ball, if it work i will let you know. Yes, you can publish my question, i think it will help others... Regards, Ivan
Hi Ivan, > For the other 10 sensors, i will try to amplify the signal, and see if i > can get a signal precise and with a gain... We have 8 analog sensors which I explained in a mail (http://c-palb.de/cms/q_a.html). Basically the 1.2kHz filtering is done digitally, which allows us to detect the amplitude of the signal without further analog circuitry. If you want to do that you'll have to use photodiodes, because most phototransistors aren't fast enough to catch the 1.2kHz frequency. Additionally you need a fast ADC with a sample rate of at least 2.4kHz... Of course, a simple direct reading from a phototransistor might be enough for you. We used that technique on our past robots, and defined a single threshold for "ball near" vs. "ball far away", which worked pretty well. You'd need to recalibrate that threshold for different lighting conditions though. The amplitude varies quite a bit when the ball rotates on the spot, so it's not directly usable to calculate a distance to the ball. But you can derive a maximum and minimum distance from it. > I will buy some 40khz sensors to try, and see if it can get a good signal > from the ball, if it work i will let you know. That would be nice. > Yes, you can publish my question, i think it will help others... Thanks! Best regards, Max
Ivan: ball sensors (analog) and kicker
Hi Max, I found a very nice way to read sensors... As we use 16 sensors, 6 will be digital 38khz. What we were going to do, was to multiplex 8 analog port of the Arduino nano, to 16 sensor, with 2 transistors to select each group of 8. But, as the 38khz sensor occurs error after 965ms of constant reading, without a "break". We are going to, turn on the group of 8, and off the other group of 8, and each turn will take 200ms. With my osciloscope, i saw that 200ms is a perfect timing for reading data from the sensor, and, it's not a long time... This way, we are reseting the sensors, while we are reading others, and vice versa. We just have to add to the schematic the wiring to the VSS of the 38khz sensor. This will only be used for digital sensor, analog will stay on always, we just have to forget VSS pin... Regards, Ivan
Hi egain, I want to share with you, our algorithm to detect the ball with the analog sensor... Each sensor has a "Faith" variable, with determines how much is the sensor telling the truth. The "faith" is incremented, every time that the derivate of the sensor is bigger than a filter. The "faith" is decremented every 'X' time. This way, if a sensor detect's light, in a minimum time, the faith will encrease just a little, and will die very fast. But, If the sensor is reading a bigger variance, that is constant, the faith will encrease untill the maximum faith value, and will stay there, until the sensor doesen't sees the ball, and the faith goes to 0 with time. I tested it, and worked perfecly. And the best: it's reinforced with time, because de "filter" can be also the avarege of the sensors that are variating less in time. The best of this, is that you don't have to deal with constants and calibration. Hope it helps. I have one question, about the kicker. We need to buy 2 solenoids, to kick the ball, but we don't know were to buy. Some sites sells at 3.75U$, and others for 20U$. We don't know if it will be enough to kick the ball or not, can you help me with that? I saw that your team made a very complex and nice circuit to kick the ball, and made it with safety... We are going to use Lipo battery, with 11.1v. Do you think that we are going to make a circuit to charge and discharge the capacitor, or the battery can do it only with some transistors or relays? Regards, Ivan
Hi Ivan, your ball filter sounds like a very nice design, especially the bit dealing with ambient light differences. > We need to buy 2 solenoids, to kick the ball, but we don't know were to > buy. Some sites sells at 3.75U$, and others for 20U$. > We don't know if it will be enough to kick the ball or not, can you help me > with that? We use a solenoid from intertec components rated for 6V. Here is a link to a distributor: http://www.conrad.biz/ce/de/product/503289/ Maybe that can help you decide. > I saw that your team made a very complex and nice circuit to kick the ball, > and made it with safety... > We are going to use Lipo battery, with 11.1v. > Do you think that we are going to make a circuit to charge and discharge > the capacitor, or the battery can do it only with some transistors or > relays? If you choose the voltage rating of the solenoid low enough (maybe 3V for your battery voltage) and your battery can supply the a high current, you can get a very good kick at battery voltage. I would try that first, as it is much easier and not as dangerous as a high voltage circuit. Our last robot generation kicked with ca. 24V (our battery voltage) and was very successful. Another option is to make the solenoid yourself. We experimented with copper wire wound around a plastic tube and got pretty good results, but you have to experiment quite a bit to get it right. Take care not to short your LiPo battery! If you decide to design a high voltage circuit, please take a look at my earlier mails to John (http://c-palb.de/cms/q_a.html) for a description of the safety discharge circuit. Mail us if you have further questions. Best regards, Max
Felix: omniwheels (translated from German to English)
Hello Team C-PALB, I´m Felix from Robocup Junior team "brainfuck" [2vs2 Version B - 6th position at the German Open 2011]. I have got a question concerning your omniwheels. We are developing our own wheels at the moment and I would like to know how your small subwheels are assembled and what kind of material you have used for it. Yours sincerely Felix
Hi Felix, As a help to my following answer I uploaded a picture of our disassembled omniwheels. The small subwheels are all lined up on a wire ring. This ring fits into the channel near the outer edge of the main plate. Now one subwheel is positioned in one clearance. Then the cover plate of the wheel is attached and secured with counter sunk screws. Our wheels need 31 subwheels each. The gear wheel at the assembeld wheel is also fixed by screws. We use aluminium for the plates and the subwheels and the material used for the gear is steel. This is necessary because otherwise the sprockets of the gear would be damaged if a more flexible material is used. The subwheels have a channel on the outer edge so the rubber rings are fitting into it. By using the rubber our robots accelerate much better and we spare the soccer field. However we do not recommend to use such small rubber rings because at the German Open we made the experience that after a while the rings cracked. In addition to that we have come to the conclusion that we used to many subwheels. It is a lot of work and it costs valuable time changing and fixing the rubber rings and subwheels. So our recommendation is to use less subwheels and more durable rubber rings. Are we allowed to publish your questions so it could help other teams? I hope that all your questions have been answered by this e-mail. If you have more questions please contact us again. Hope to see you in Istanbul. Lukas
Robert: subwheels (translated from German to English)
Hey guys, I have a couple of questions about your subwheels if you don't mind. Did you use ordinary o-rings or are the custom made or something completely different? Another team from our school tried it with o-rings and it worked pretty well, but nowadays they are very expensive. I think for huge amounts you can easily pay more than 100€. [...] Furthermore, I belive that thicker O-rings are better than smaller ones. What do you think? [...] Best regards, Robert, Dream Team
Hello Robert, we used ordinary o-rings for our subwheels... sorry, nothing fancy! But there is a good side to it, if you know where to buy them, they are not too expensive. But there are a couple of things which are really important to know. It is much better to use thicker o-rings. There are two problems with thin ones: Firstly, the rubber gets heated up while driving. Furthermore, there is abrasion and the rings break. Secondly, if the ring is not sitting deep enough in the notch, it will jump out and sit next to your subweel. This happened to us about one hundred times. My advice: - o-ring has to be at least 2-3 mm thick and should be about 5 mm high (5x3) --> we had 4x1,5 for the o-rings and our rim was 9 mm. You see that there is a big difference. This difference is very important because the rubber has to sit very tight. - don't use too many subwheels. About 15-20 should be more than enough. - buy your o-rings either here: http://www.arcus-shop.de/html/de/produkte/ --> this is a German shop. You can just write a mail to arcus@dichtelemente.de and tell them what you need. They will make you an offer. 500 o-rings cost about 35€ + 5€ shipping. or here: www.sistemcontasizdirmazlik.com or E-Mail to: sistem_kece@hotmail.com --> they are Turkish and even cheaper, but you will have to find somebody to translate for you because they only speak Turkish I hope I was able to help. Greetings Alexander