DINO the DINOBOT - SOFTWARE - PROGRAMMING
ANTICS - ARDUINO - ARMOUR - ARTWORK - BIOLOGY - BLACK BOX - COMPUTERS - ELECTRONICS - ENERGY - FRAME - FORMICARIUM - HEAD - JAWS - JIMMY WATSON - KITS - LEGS - MECHANICS - MOTORS - MOVIE - PHOTOGRAPHY - RASPBERRY Pi - R/C DRONE - SENTRY - SOFTWARE - SOUND PROOFING - SPEED - SUSPENSION - TAIL - WEAPONS - WARGAMING
NOW LOOK, HEAR, FEEL - Yes, eyes and ears will make a giant machine like Dino the DinoBot more user friendly to humans. Touch sensors are also useful as limiters. We may even give this ant the power of speech.
There is no point building a giant robot like Dino the DinoBot if it won't do anything interesting. Walking is the first thing to sort, so that the machine does not bump into anything. Object recognition is probably asking too much at this stage, but many micro computers can handle such information, such as the Raspberry Pi.
With dedication it is possible to learn to code in around 12 weeks. Learning the principles of software craftsmanship is easier if you have a goal in mind. The experience is sure to help you get your first well paid job.
In the not too distant future, jobs will be scarce as robots take over the routines that provide us with sustainable food supplies, transport and accommodation. Those who design and service the machines will be the ones who earn the most, or rather, those who will enjoy doing something worthwhile.
PROGRAMMING - WHAT LANGUAGE SHOULD I CHOOSE?
Programming is usually the final step involved in building a robot. The answer to what language should I choose is really dependent on the things you want your DinoBot to do, and that dictates what hardware you will need. By hardware, we mean the computer system (motherboard, processor, memory and peripherals) that you need to operate the robot.
We would suggest using the smallest and cheapest system that will allow you to do what you want your DinoBot to do. So, make a wish list of features and work from there. You will probably find that an Arduino or Raspberry pi will do the job with the appropriate shields or other interfaces. These computers work well together.
You need to know a bit about the computing hardware and programming them, to enable you to decide what you might need or want as part of your shopping list. Alternatively, forget computers and just drive the robot as a drone, using radio control. No, you need a bit of both.
There are many programming languages which can be used to program micro-controllers, the most common of which are:
Assembly; its just one step away from machine code and as such it is very tedious to use. Assembly should only be used when you need absolute instruction-level control of your code.
Basic; one of the first widely used programming languages, it is still used by some micro-controllers (Basic Micro, BasicX, Parallax) for educational robots.
C/C++; one of the most popular languages, C provides high-level functionality while keeping a good low-level control.
Java; it is more modern than C and provides lots of safety features to the detriment of low-level control. Some manufacturers like Parallax make micro-controllers specifically for use with Java.
.NET/C#; Microsoft’s proprietary language used to develop applications in Visual Studio. Examples include Netduino, FEZ Rhino and others).
Processing; (Arduino); a variant of C++ that includes some simplifications in order to make the programming for easier.
Python, one of the most popular scripting languages. It is very simple to learn and can be used to put programs together very fast and efficiently.
should chose a micro-controller based on the features you need (number of I/O, user community, special features, etc). Often, a microcontroller is intended to be programmed in a specific language. For example:
* Arduino micro-controllers use Arduino software and are re-programmed in Processing.
If you have chosen a hobbyist microcontroller from a popular manufacturer, there is likely a large book available from your local electronics store, so you can learn to program in their chosen programming language. If you instead chose a microcontroller from a lesser known manufacturer (e.g. since it had many features which you thought would be useful for your project), it’s important to see what language the controller is intended to be programmed in (C in many cases) and what development tools are there available (usually from the chip manufacturer).
Don't get too ambitious. Choose your computer system so that it is affordable and well supported in the programming community.
LINUX IS OPEN SOURCE
With the wealth of developer boards now available at reasonable prices, this super size robot gives you a chance to let your imagination go wild. What would you have the world's largest robot ant do? What would you like us to make it possible to do?
There are hundreds of existing open source projects that can either be incorporated or adapted for the giant ant robot. We will be sharing ideas as they occur to us, or as any independent roboteer tells us about their idea.
MEET TERRY - If you live in Sussex and not too far from Eastbourne, why not help us to make this project more interesting and get some practical experience under your belt while you are at it. Anyone interested in robotics or entomology is most welcome, from university students to retirees. Terry will be playing the part of John Storm in a pilot film that could be shot in 2016 if crowd funding is successful. So, also get in touch if you are interested in film making or acting and might be able to help out on that front.
Jameson Hunter will be working with a London group for much of the script work and crowd funding, but would be pleased to work with local acting groups, or actors who might live close to Eastbourne.
PROGRAMMING - WHAT IS AN ALGORITHM ?
In mathematics and computer science, an algorithm is a self-contained step-by-step set of operations to be performed. Algorithms exist that perform calculation, data processing, and automated reasoning.
EXAMPLES - LEFT - Flow chart of an algorithm (Euclid's algorithm) for calculating the greatest common divisor (g.c.d.) of two numbers a and b in locations named A and B. The algorithm proceeds by successive subtractions in two loops: IF the test B ≥ A yields "yes" (or true) (more accurately the number b in location B is greater than or equal to the number a in location A) THEN, the algorithm specifies B ← B − A (meaning the number b − a replaces the old b). Similarly, IF A > B, THEN A ← A − B. The process terminates when (the contents of) B is 0, yielding the g.c.d. in A. (Algorithm derived from Scott 2009:13; symbols and drawing style from Tausworthe 1977). RIGHT - "Inelegant" is a translation of Knuth's version of the algorithm with a subtraction-based remainder-loop replacing his use of division (or a "modulus" instruction). Derived from Knuth 1973:2–4. Depending on the two numbers "Inelegant" may compute the g.c.d. in fewer steps than "Elegant".
"...prose used to define the way the Turing machine uses its head and the way that it stores data on its tape. At this level we do not give details of states or transition function."
Most detailed, "lowest level", gives the Turing machine's "state table".
There are hundreds of toy robots that have some kind of collision avoidance, usually involving infra red sensors or sonic pulses. These days even robot vacuum cleaners use miniature lidar to build a picture of their environment.
INFRA RED & LASER DETECTION & RANGING
IR sensors can be used to detect animals, including humans but the hobby robot offerings provide limited range; sonic sensors are even worse. The Laser sight above has a range of 40 metres - that's more like it.
Making this robot the fastest legged all terrain vehicle is possible. It will involve some nifty software to make the ant aware of the surfaces it is running on - and potentially make the necessary adjustments in real time to be able to cope. A model helicopter gyroscope could provide reference.
Having detected people nearby, what might you program the ant to say to them?
This is useful in robotics for many reasons. You will always know where the robot is - and the robot will also know where it is.
COMMUNICATION - Computers need to talk to one another and to the machinery they are controlling.
If the robot is to be remotely controlled by an operator, having cameras stream back live pictures will make driving the robot a whole lot easier. Any vision system might incorporate laser sighting to be able to gauge the distance from objects and people.
Researchers at The University of Western Australia have discovered how ants see in colour, a breakthrough that one day could help scientists
creating autonomous robots.
The robot might record what it is seeing during a mission - for example, as part of a training exercise, when feedback and point scoring might be needed.
We are looking at the possibility of incorporating a sting of sorts. Nothing too onerous. A paintball gun might suffice and is great fun for wargaming.
AUTONOMY - SENTRY
This will require a program that controls just about all the other functions, plus a mission. What that mission might be is up to you. It might be sentry duty when energy endurance might be an issue.
If working in pairs or as a team with other gamesters, positional and other data sharing might help your team vanquish the opposition.
TELL TERRY WHAT YOU'D LIKE TO SEE
We are looking for robot engineers and/or students to help us make our Christmas project come to life. If you might be interested in giving the team a hand, please get in touch right away. Ask for Terry: 07484727027 or email: firstname.lastname@example.org
THE FULL MONTY - Useless to most robotics engineers and rather overkill anyway, these full size performance motherboards are far too big for most robots to carry, let alone supply the energy they need to run them.
Pi A+ - Dimensions: 2.1-inch x 2.2-inch x 0.4-inches (6.5cm x 5.6cm x 1.2cm) at its thickest point.
Memory: 256MB RAM. Expansion: MicroSD slot, USB port, 40 pins. Weight: 8 ounces (23g).
Price: £15.50 (UK) and $20 (US). Comparison with old Model A: Model A+ is 20 per cent cheaper, 24 per cent shorter and 42 per cent thinner.
‘It is cheap and flexible. It can be used as a desktop PC or for a robot. It is a bit like digital Lego.’
USEFUL PROGRAMMING TIPS
1. Create manageable chunks of functional code: By creating segments of code specific to each product, you gradually build up a library. Develop a file system on your computer to easily look up the necessary code.
2. Document everything within the code using comments: Documenting everything is necessary in almost all jobs, especially robotics. As you become more and more advanced, you may add comments to general sections of code, though as you start, you should add a comment to (almost) every line.
3. Save different versions of the code – do not always overwrite the same file: if you find one day that your 200+ lines of code do not compile, you won’t be stuck going through it line by line; instead you can revert to a previously saved (and functional) version and add / modify it as needed. Code does not take up much space o a hard drive, so you should not feel pressured to only save a few copies.
4. Raise the robot off the table or floor when debugging (so its wheels/legs/tracks don’t accidentally launch it off the edge), and have the power switch close by in case the robot tries to destroy itself. An example of this is if you try to send a servo motor to a 400us signal when it only accepts a 500 (corresponding to 0 degrees) to 2500us (corresponding to 180 degrees) signal. The servo would try to move to a location which it cannot physically go to (-9 degrees) and ultimately burn out.
5. If code does something that does not seem to be working correctly after a few seconds, turn off the power – it’s highly unlikely the problem will “fix itself” and in the meantime, you may be destroying part of the mechanics.
6. Subroutines may be a bit difficult to understand at first, but they greatly simplify your code. If a segment of code is repeated many times within the code, it is a good candidate to be replaced with a subroutine.
AUTOMATION - Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. Arduino can sense the environment by receiving input from a variety of sensors and can affect its surroundings by controlling lights, motors, and other actuators. Arduino projects can be stand-alone or they can communicate with software running on a computer (e.g. Flash, Processing, MaxMSP). Arduino uses a microcontroller; Raspberry Pi uses an applications processor.
There are some things a Raspberry Pi is better for (you can hook a Raspi up to a TV, for example), and loads of things an Arduino is more suited to. The Pi is a fine little computer board, though not nearly as good as the Arduino when it comes to I/O capabilities. The Raspberry Pi has only 8 GPIO’s, so it would be really useful to have additional Inputs and outputs by combining the Raspberry Pi and Arduino.
The beautifully-engineered Gertboard is a plug-in add-on that neatly overcomes this deficiency
by giving the Pi access to an ATMega328, but it's a very complex and expensive solution. An alternative would be to interface an Arduino
GERTBOARD - The GertDuino is a Raspberry-Pi add-on which offers the same functionality as an Arduino-Uno but with some extra features; connects to Raspberry Pi, and has dual Atmel MCU capability onboard. GertDuino offers onboard Atmega 328 shield hosting which will execute Atmega 328 code written and compiled on the Raspberry Pi. The onboard Atmega 48 provides RTC, IrDA front-end, and additional computational capability. It begs the question: Why didn't Arduino and Raspberry sort this out from the beginning?
FULL AUTONOMY - 3D Robotics have developed the APM Universal Autopilot to provide fully autonomous control to a multitude of vehicles. The APM is a full UAV (Unmanned Autonomous Vehicle) autopilot, supporting piloted and un-piloted operation of vehicles, including hundreds of GPS waypoints, camera control and auto launch and docking.
BEAGLE - Other micro computer systems that may also be suitable for robotic gaming are the: Beagleboard, Mbed, Picaxe and Raspbery pi. It won't be long before such systems are integrated, much like the Tom Tom revolutionized travel planning, and available off the shelf. You might like to use the processor from an old mobile phone, when most of the features you'll need for a great robot, are already built in.
PROGRAMMABLE - Making a robot react to the environment means using sensors that can detect light, sound and heat. Touch (pressure) would also be good with an animatronic such as this.
LINKS & REFERENCE
LEFT - Movie idea, lurking beneath the Antarctic ice is a discovery that scientists will die for. This story is now the subject of a low budget trailer to be produced mostly in the UK. The promoters are looking for backers. The UK will contribute 20% toward production costs. Roughly 60% of a low budget film may be pre-sold as distribution rights, leaving 20% finance to source. The deal is that investors recover 120% on their project stake within 12 months of shooting, with an income stream thereafter from networks and merchandising. Producers and directors please take note that there is a significant audience for well made movies of this genre. Look at what happened when they remade Godzilla. RIGHT - 2015 movie from the Marvel graphic novels.
ANTICS - ARDUINO - ARMOUR - ARTWORK - BIOLOGY - BLACK BOX - COMPUTERS - ELECTRONICS - ENERGY - FRAME - HEAD - JAWS - JIMMY WATSON - KITS - LEGS - MECHANICS - MOTORS - MOVIE - PHOTOGRAPHY - RASPBERRY Pi - R/C DRONE - SENTRY - SOFTWARE - SOUND PROOFING - SPEED - SUSPENSION - TAIL - WEAPONS - WARGAMING
This website is Copyright © 2017 Bluebird Marine Systems Limited. The names Bluebird™, Bluefish™, Miss Ocean™, SeaNet™, SeaVax™ are trademarks. All other trademarks are hereby acknowledged. The design of the Robot Ant on this page is design copyright © December 15 2015, all rights reserved - Jameson Hunter Ltd.