Competition Robotics  Building to Win ( Part 1 )

Ive run Robotics India since a few years now, I can say about 80 % visitors are looking to take part in a competition. But most people end up building the same old robots making the same mistakes year after year and I am not really seeing any improvements in robots which participate in this competitions. So I thought to start a series on how to build better robots for most of these competitions with some tips to help you win. Proposed specifications are of target robot which should be able to enter competitions like maze solving, line follower, soccer etc.

Much less than 20x20cm in length and breadth ( 20x20 is the size I found maximum in some competitions ).

As light as possible, Means faster acceleration, stopping and turning. Good traction wheels.

Very fast . Should be capable of doing more than 100 cm / sec .

Accurate turning should be able to move in straight lines and turn to required angles easily.

Expandable for different challenges by easy changing of parts. Be modular.

So starting lets cover some basic things before we build some cool robots, here are some points which I think you must keep in mind if you are building to win

Planning : Everything about your robot needs to be planned, before you start building have specifications ready. This will greatly help you select components and result in much higher performance robots than simply putting one together by buying popular components

Plan the build as early as possible you should be finished weeks ahead of the competition.

Money : High Performance comes at a price, Look around and you will see all high performance things cost more than their regular counterparts. Same goes for robotics high performance parts cost a lot. Anyhow here are some tips 

Make sure the components you need are to requirements

When designing around specs you do not really need overkill , stick to whats required

A team money pool will ease financial burden

Look for sponsorship from college / company if possible

Try looking around for best deal, many shops sell same stuff at different prices.

Software :To me this is the stuff which will make you win. After good hardware you need proper software to make use of it, else its all just junk. Just some tips 

Pick the simplest language and use libraries/frameworks, dont waste time reinventing the wheel. Avoid assembly, 99.99 % of you will never really need to code in it.

Use Algorithms like PID, Kalman etc to improve performance.

Design a flow chart of code before you start coding.

Have Requirement Specification at start and avoid Features creeping in.

Backup code regularly, sometimes things crash ( maybe use dropbox ).

BIST  Built in Self Test is also a good idea as it will instantly tell you if anything is wrong.

Idea is basically write good code. Follow coding convection and comment a lot.

Hardware : Simply said high quality hardware required for building performance bots is not easily available easily in India. Almost all quality stuff has to be imported. But things are changing slowly and I hope so anyway. A decent robot can be divided into modules which could be built separately and combined to make a great bot.

Motors and wheels : Though I have started to see high quality motors in India. It is best to import as you get a huge choice and to the specs you need. Some points when making decisions about motors -

Again buy motors to required specs, not because they seem good enough.

Go for full metal gear motors, avoid plastic ones at all costs. Simple test is that higher quality motors less noise.

Look at a speed and torque combination that you require. As most competitions time is the winning factor.

Put decoupling caps to contain motor noise

Buy wheels to spec and avoid all plastic ones as they do not have traction

Try to go for setup which have encoders

Motor H-Bridge : It is a key component of your bot. Some tips when selecting a H-Bridge

Make sure its rated more than the stall torque of your motors.

Proper heat sink is a must if required.

Try to use MOSFET Drivers if possible.

Best to stick with chip based H-Bridge unless current requirements are very high.

Batteries : This is what powers your robot. For most competitions the round time lasts usually 3  5 minutes . So you dont really need those heavy high amp batteries. Read into Lipo conventions and you will see a 500 mah Lipo can drive 2 A robot for 13 - 15 minutes based on it C rating, But difference b/w the weight is huge. Batteries are the heaviest component of a robot so choose wisely.

Use what is required Per round or two.

Lighter batteries mean Lighter bot.

Use LiPo batteries and a LiPo specific charger.

Carry 3  4 packs to a competition, so you can switch after rounds.

Power Supply : This is where your robot gets its power from , there is so much to a power supply design but we will keep things simple and relevant -

Bulk capacitors  Always use them, they can provide instant high current and help avoid battery sag. And some say they help increase battery life.

Decoupling capacitors  Every chip on your board needs one no two ways about it.

Short circuit protection Current (PPTC , fuse) should be put in, Voltage ( Zener) based protection can also be put. Both when working together work great.

If Voltage drop between batteries and controller is high then try using buck converter than dissipating the energy off as heat.

Chassis : This is what carries everything something like a skeleton for your robot. Some tips when building or buying one.

As light as possible. Carbon fiber is the best. But Aluminum and Plastic would also do.

Keep it round , It means easier and more accurate turning. Depends on the application too, but round robots with differential have easier dead reckoning than ones with skid and steer.

Try to use screws to put things together, it means easy modification and repair anytime.

If you can do custom design FR-4 PCBs make a great platform, but round ones might cost extra due to cutting required.

Sensors : This is how your robot sees the world. Some points to keep in mind while interfacing sensors 

Read the datasheets, Read yourself what the sensors is and is not capable of. Sometimes you will find great new information in them. Afterall they are written by experts.

Always decouple sensors

3.3v and 5 V sensor mixing needs proper conversion

Make them modular so that they can be interfaced and debugged easily

Test , test and test them again .

Controller : The heart of your robot choose wisely so that basic effort is minimized, here are some tips.

Choose based on the I/O ports needed and approximate Flash/RAM requirements.

64 kb Flash is good enough for most basic competition problems.

You can pick ARM7,AVR, PIC , 8051 all come in different variants which can suit your needs. MMU based microcontrollers like ARM9 / ARM11 can come in for advanced features.

Communication : Half the time Robot will need to communicate maybe to another bot, your setup or maybe needs simple control instructions from you.

Wireless is the way to go , Dangling wires connected to batteries are just too unreliable and simply slow you down.

Preferable look for RF Transceivers so that instructions can be sent and status, voltage, current readings received.

Preferable use a 2.4 Ghz transceiver link.

PCBs and Wiring : Wires and PCB traces finally connect each and every component on your robot and can easily become a bottleneck or a source of problems if not paid attention to. Here is some things to avoid

Use proper trace width / wire AWG for connecting components. No use having a 8 A motor and a 3 A wire/trace connecting it.

Avoid All purpose PCBs if possible, Making a homemade PCB is easy for one off attempt. Also with PCB makers all around getting a custom PCB made is not that expensive either. Follow PCB design rules.

Cleanliness is next to godliness, try not making a mess of wires. Use ties and FRC cables to isolate modules and keep things clean in general.

Heat tube shrinking can also hide a lot of free wires and also be used to make wire connections more rigid.

Debugging and Simulation : Most people do not make any attempts to put in debugging into their robots. Its is a mistake which can cost you dearly. Have some leds , buzzer and maybe a serial connected to a RF link and maybe a processing based frontend on your laptop. It will help improve robot performance fast and help you debug it too. Simulate your robot algorithms in the huge number of simulators available out there.

Competition Day : Some things to keep in mind on the D-Day.

Reach Early and see the competition area sometime things are not what you expect

If you reach early you can modify to meet also test if things are all go at and if not have time to debug them.

Pack your robot well , foam is easily available and can help avoid mishaps. Use think cardboard boxes.

This article I just wrote is a open ended article, it just promotes good practices. I would love to hear suggestions on improving performance and will add them into the article. In the next part I will try to build a small robot based on some of the specifications mentioned here.