Blog #1 - my initial application and other background design thoughts
This is my idea for giving extra 'intelligence' to a robot. I want to make a robot that works as a builder's mate, bringing a specific weight of material from a large heap of building material and placing it in another location for loading into a cement mixer. This would be sand or mixed ballast/gravel. The robot would use the TE load cell to know how much material is loaded, navigate in some method (to be determined) and offload that material. The TE load cell is capable of a 25lb load (approx. 11Kg) so it would be likely that the R2B4 droid would have to go back and forth a few times to transfer the actual amount for a mixer load. However this will carry on whilst the builder is using the current mortar mix and will signal to them when that load has been transferred.
Often mixing is undertaken by volume rather than weight as the moisture content of the sand effects the weight enormously. Getting a robot to measure the volume would negate the use of the load cell and also prove difficult as the moist sand would not evenly distribute into any measuring container and would also likely clump to some extent. Adding a moisture sensor to my design would seem important so that the required weight can be calculated. I’ve seen moisture meter modules and circuits to make a bespoke one, so this should be quite easy to implement (famous last words there ! ). Calibration could be empirical and the user could adjust as required – perhaps a teach mode might be useful where the user has already calculated the correct volume and then passes it to the R2B4 to weigh.
Initially I looked through the materials provided for this challenge, determining the specifications of each part and identifying what was mandatory to use. Whilst the STM board was overloaded with functionality I found it difficult to think of an idea that utilised at least one of the TE connectivity accessories, they seemed to be a random mix of sensors and already had some functionality replicated in the sensor tile. Initially the load cell seemed like the most difficult sensor to incorporate into a project; a weight limit of 25 pounds is approx. 11Kg which is a reasonable amount of weight in the real world. I asked myself what someone might want weighed automatically by some form of robot? I then had the idea that a builder mixing up mortar has to go to the sand pile and often approximates the amounts of sand and cement. This could form the basis of a great autonomous robot - one that can measure the required amounts of damp sand and bring it over to the mixing area - perhaps dumping it onto a secondary conveyor belt (for automatic lifting into the mixing drum) or depositing it on a mixing spot. The robot would be able to go back and forth until the required weight is gathered and then alert the builder that they are ready to mix. The builder would know that the correct amount was in the neat pile in front of them.
2. My Skills and Project Scope
This is an ambitious project for me with many areas to be addressed, perhaps some will be sticking points and prevent the project succeeding, but I am sure I will learn a lot along the way. I will be blogging my progress and so would be happy just being able to share that progress with the E14 community. I have recently roadtested a STM32 based board and honestly struggled with the compiler toolchain and IDE so I am cautious about the STM32 board that is used for this challenge. However I did make a lot of progress and am hopeful that having a real-world requirement will help drive my progress forward. I have also never built a robot/battery vehicle chassis so even that part will be an obstacle to overcome let alone the navigation and load/offload mechanisms.
The bot will need some main components including a chassis, axle bearings and the material load/offload mechanisms. I plan to build these from plywood/epoxy resin and aluminium or steel sheet - although I have salvaged an old stainless steel cooking pot that may get beaten into a new shape.
4. Traction System
The current plan is to either use a pair of 12v DC motors for traction or to use NEMA stepper motors: the stepper motors I already have but I could perhaps source the 12v motors from old cordless drills (local recycling depot, Ebay or carboot sale). The gearing would need to be appropriate to both the wheel size and desired speed of travel. The chosen motor system would be driving some simple wheels rather than tracks as I think this would be far easier to manufacture at home. The downside will be that the wheels will provide less traction on the loose material and may slip. There is a high possibility of R2B4 getting stuck in a sand pile as it collapses or failing to get traction when loaded down. This situations would need detecting and rectifying. This would be a design feature to implement towards the end of the project if time allows. The R2B4 could include light sensors to select which way to move should it get partially buried. Drive motor movement without traction could be detected by the current to the motor. A remedy here may be to dump the current load and re-attempt to load a new one.
5. Power Supply
Power source will be a sealed lead acid (SLA) battery, mainly because they are cheap and readily available. A SLA would also be safer in the wet conditions that this bot will likely encounter. Battery life is critical; there is little point starting to move a load that requires several sub-loads only to stop midway. It would add confusion and waste time that could be better spent with an earlier start to charging the battery.
An autonomous battery charging/coupling would be ideal although it would be a project in itself for me. After each full load cycle (or after a predefined number of them) the R2B4 could signal to the user asking if they wish it to continue. The user may know that they have enough mortar mixed or that perhaps they are going for a break and could therefore allow R2B4 to take a quick battery recharge ‘break’.
Currently I'm unsure how I'm going to get R2B4 to navigate around the building site but this is critical to the BOTs success. The R2B4 would need to know where the pile of sand was and where it needs to be dropped off. These distances are likely to be only 5-10m maximum so a GPS navigation system would not be accurate enough. These may not be in a direct line so waypoint(s) would make the system more usable. A really clever AI system could use a camera to determine and identify the sand pile and the mixer but could easily go wrong.
A simpler method of navigation may be to have some form of waypoint markers that the R2B4 can 'look' for and move towards. The chosen method is yet to be decided but could include one of the following:
- A camera and QR type board – simple to identify, when reaches a certain size R2B4 has arrived
- An active IR beacon – downside would be battery life
- A passive IR beacon or ‘catseye’ system
- Go full out and use a camera and FPGA to detect an image/board
- Use OpenCV and a Raspberry Pi to actually see ?
7. Material Loading
The most awkward part will be getting R2B4 to pickup sand from the existing pile. I am thinking along the lines of a scoop as seen in the cult film Soylent Green. Another possibility might be a coarse Archimedes screw mechanism although it could easily fail if moving ballast as the various sizes of particles will soon find a way if slipping into any mechanism and jamming it. This part of the design will need prototyping and testing out. Maybe the jamming could be detected as the motor current increases and the load motor reversed briefly to clear any jam.
8. Material Offload
This aspect may be simpler than the load mechanism. The top physical surface of the R2B4 would be similar to a dumper truck, with the ability to raise one side in order to tip the load. The process might be slow and requires height to be able to successfully offload onto an existing pile (which would need a complex mechanism). What will probably happen is that offload is near to the previous offloads.
9. Setup and Control
Ideally I would like to be able to setup the R2B4 from an Android app. However having never written a proper Android app plus having all the other aspects of R2B4 to complete I think this will be too ambitious. Therefore setup may initially be via a COM port serial interface to prove concept and to work on the app towards the end. There are some simple IoT boards (like GraspIO) that have been tested out on E14 recently and I'm considering whether I should purchase one of those to speed this part of development up.
10. Difficulties and Final Thoughts
The R2B4 will be operating in a harsh environment. This will often include components of:
- Caustic cement powder
- Stray cement hardening on surfaces
- Physical impact
- Operating in temperatures from almost zero degrees centigrade to +35
- To have warning lights and audio to prevent it being a trip hazard
- To have an easily accessible ‘manual stop’ switch on top
- To stop should the navigation system fail or move outside of a working parameter
- Bluetooth connection to Android app
- I have never made a remote vehicle or similar – what I make might struggle to move any load about should I get the gear ratios or motor powers incorrect.
- Battery life – may be greatly underestimated but for a prototype should not be an issue.
- I have only some very basic Android app development.
- My equipment to manufacture parts for the robot are limited (such as frames and wheels) and will depend on what I can find available in hardware shops.
- Scaled up to transport consumer goods between waypoints
I hope you enjoy following my progress blogs over the next few months.