Instructabot Obstacle Avoidance Robot
by Kevr102 in Circuits > Arduino
107 Views, 3 Favorites, 0 Comments
Instructabot Obstacle Avoidance Robot








I'm pleased to Introduce to you Instructabot, a playful/waving/marching obstacle avoiding robot.
I've wanted to make an Obstacle Avoiding Robot for some time now, there are many concepts out there to include 4 wheel and 3 wheel chassis's but that's all they are, chassis's with a plethora of cables, with this bot all the cables will be within the body, making the Robot more aesthetically pleasing to look at as well as been functional.
I also wanted to make the Robot quirky and a bot which would make me and others smile, a playful bot.
My idea was to make something which in my mind more resembles what a robot should look like.
The Instructables Robot logo for me resembles a Robot, albeit a sketch from someones mind initially, but how good would it be to bring the sketch to life so to speak, so this is what I will base my design on, I'm never going to replicate the infamous Instructables Robot sketch in 3D form but I can include some of the characteristics for sure.
All the components will be designed with Fusion 360 then 3D Printed and the electronics and code will be Arduino based.
This quirky looking bot as the title says is an Obstacle Avoidance Bot, but I wanted to give the bot character so I have added servo driven arms complete with little fingers as in the logo sketch.
This is how the Bot will function.
On power up, all servos centralize, then the right arm will raise resembling a wave for 2 seconds, the arm will return to 90 degrees, and then after a short delay the bot will begin his exploring, as he is exploring he is marching, I thought this would add a little characteristic, on meeting an obstacle, the bot stops, the arms stop and the head will rotate right and left to look for an exit, when an exit is found, the bot carries on, if he gets stuck in a corner he will have a couple of attempts at escape then do a 180 degree turn to carry on exploring.
Supplies





3D Printer
Fusion 360 design software.
2 x TT DC Motors.
Arduino Uno.
Adafruit Motor shield V1 (In this case)
HC-SR04 Sensor.
3 x SG90 Servos.
DuPont cables.
9v Battery.
Battery connector.
CA Glue
Hot glue and Glue Gun
Component Design





I have a suplus of sg90 servos and sensors so in this build I will sacrifice them and secure most components with either hot glue or CA Glue, The Arduino uno will be secured with double sided Tape
I started off the design with the base of the main body of the robot, this has to incorporate not only the 2 TT Motors but also the Arduino Uno and Shield, and a 9v Battery I don't want the robot to be too big either which is another factor, I will add screen shots of the design process bodies as most people are familiar with Fusion 360 sketching and extruding.
I found a step file for an Arduino Uno and uploaded this into the design to use as a template.
The base sketch was created with a center rectangle, the edges were filleted and off set 2 mm to create the edge or lip to extrude, dimensions were taken from the TT motors and holes cut out to suit, fillets were added as well, the motors will be a push fit into each recess and hot glue used to secure.
Some nodules were placed along the front edge to resemble the black dots on the Logo sketch.
The body shape was created by extruding upwards from the base, the base inner was projected, initially I didn't extrude enough and there wasn't enough clearance between the Arduino Uno and arm servo's, to achieve the curved shape of the body I used the front of the body as the plane and created an 3 Point Arc this was closed off and then extruded through the body, fillets were created to round off the the body, then I used the shell tool to create the inner void of the body, this was 2mm which should give enough strength to the body.
Dimensions were taken from standard sg90 servos to create cut-outs in the body for 3 x servos, one for each arm and 1 for the head, only the top part of the servos will protrude through the body.
Characteristics were added from the Instructabot logo to include the 3 circles on the front of the body and the wavy lines beneath, a center circle was created, extruded to 1.5mm and the filleted for ease of printing, these lines will be sketched and the pipe tool used to thicken, fillets added and these will be embellished with a black sharpie pen at the final stages.
We can sketch the Head of the Robot next, this has to be big enough to house the HC-sr04 Sensor, this component will also be the eyes of the Robot, the idea is that the robot will move in a forward direction and when an obstacle appears, the head will revolve right to left to look for a clear exit.
The head started from a center rectangle and an off-set created to extrude, the shape was created and an arc created to one side and extruded cut to mimic the Instructabot head, fillets were created at this time, and then the shell tool was used to create the internal void. dimensions were taken from the sensor to create the holes for the 2 protruding parts of the sensor, which in time will be the eyes of the bot.
A dome was created to each side of the head these are just 2 center circles extruded to 2mm and then filleted to create the dome, a center circle was created on the top face of each dome and extruded centre circle cut through the dome to accommodate the black 1.75 pla filament I will use as the antenna's.
The base for the head will also have provision for the neck/head servo.
A sketch is created using the base of the head, I projected the base and then used the projection to create the inner and base.
A center hole was created so it can be screwed to the servo on one the bottom face a further and recessed hole to accommodate the servo screw on the opposite side an addition hole was created to the rear of the base as an outlet for the Sensor Cables, The head is just a push fit onto the base but can be secured with glue if necessary.
The arms are up next, I just needed to design something similar to the logo, these look small compared to the body I will stick to the same as it looks quite quirky and added some little funky little fingers.
To create the arms I used the front facing center origin and sketched out something which resembled the logo, this was extruded symmetrically and fillets added, I created a fixing point center circle so that the arm can be pushed onto the servo and the screw which came with the servo used to secure.
I created a 10mm center circle in the base of the arm and extruded cut to 2mm I then extruded the cut to 5mm created a new body and added the fingers, creating one and sketched an arc then using the pattern on path to add the rest of the fingers.
Components were now made from all the bodies and named.
3D Printing
The body and head components needed support, I used the paint support tool to create tree supports within the body and head body components, within the slicer you can create separate print operations for each component on the build plate, adding supports where necessary.
I wanted to use the printers AMS to create the different colors of the head body, yellow red and black, but this one component would have taken 9 hours, I opted for felt tip pen and Paint in the end.
Print files attached should anyone want to have a go at building it.
Downloads
Assembling the Bot



I was running short of time as due to go on holiday, so this part was a bit hit and miss, plus when the components were all printed I wasn't convinced that the electronics and cables would fit in, despite having an arduino uno step file to use as a guide when designing.
I initially installed the DC Motors into the base, these were lined up by eye to the lip of the base, then secured with hot glue, the TT Motors are yellow and resemble the legs on the logo, black felt tip lines were added.
The 3 servos were then secured, initially with CA Glue to set in place, then hot glue, at this point the servos were all centralized with a servo tester.
The arms were secured to the servos with the little screw that comes with the servo, the design was such that the hole on the arm inner was just offset slightly to the servo spline, so a snug push fit, then secured with the screw, there is no stress on the arm servos so this will work fine.
The head base was installed the same as the arm servos but I used one of the horn screws, these are bigger, and would secure the base and head better.
The sensor was cabled up, then set in place with hot glue, the head, I made an error with the cable outlet on both the head body and base, so I cut a small section in the head body away with cutters at the back, this was filled with a round file and worked very well.
At this point I installed the Arduino Uno and Adafruit motor shield, it was indeed going to be a tight fit but I didn't want the bot to be too big and take ages to print.
The Uno was secured with double sided tape, just loosely initially until all cables were installed and then after installing a battery connector/battery and on/off switch, I could see if the base and body actually fit together, I got lucky I think, with all the cables and battery fitted, I arranged the cables so they were pushed up into the body and it just fitted together, Phew!! it was a tight fit, but at the very least I knew at this point that if fitted together.
I designed some push fit little wheels to fit to the TT Motors, I have a box of assorted "O" Rings and one size fitted the 2 wheels perfectly, there wasn't a lot of clearance to the top of the wheel, but I didn't want the big wheels which are normally used with TT Motors.
I purchased a small castor for the rear of the bot, I took the dimensions from the castor and made a 9mm spacer with threads to take 3mm allen screws or similar but the holes didn't line up, so with very little time to design again I opted for using some servo horn screws to secure, I used a hand drill and small drill bit to create some pilot holes, this worked very well, I then secured the finished component to the base with CA Glue.
With everything assembled and wired up it was time to write some code.
I mentioned on the opening introduction that the Arduino sketch should centralize all servos to 90 Degrees on start up, then the bot should wave with his right arm before setting off on his object avoiding expeditions, the bot will march as he is exploring, then on confronting an object, the arms stop and go back to 90 Degrees, then the head will rotate both right and Left looking for an exit, should he get stuck in a corner he will have a couple of attempts at exiting if this fails it will turn 180 degrees to freedom! after a couple of sketches we had a sketch which compiled so time to upload.
On uploading the sketch, everything worked which was good, but putting the bot on the floor, it went around in a circle, so the motors needed calibration, after a couple of adjustments we had a working bot.
As for electrical inputs, the sketch has all the pin outs, when using a motor shield its fairly easy to wire up albeit there are only 2 sets of servo pins Servo 1 and Servo 2, I opted for using Pin A2 for the right arm servo as Pins A0 and A1 allotted for the sensor, The head servo Pin 10 and left arm Pin 9 which are Servo 1 & 2 on the shield, the motors are in dedicated connectors, there are 4no motor ports on the shield, I only needed 2 Motor 1 and 2 were my connections, swap wires in the connector if the motors turn in the wrong direction.
Pins A0 to A5 on the shield have adjacent 5v and a ground which is great and makes things easy.
That's it, the Bot is finished!
Downloads
Final Thoughts
It's always very enjoyable when a project is made from a notion or idea, and it comes to fruition.
From a logo to a working obstacle Avoidance Robot with a few quirks which makes me smile.
Using Fusion 360 and Arduino we created a Bot with character.
Apart for the arduino components and motors all other components have been designed from scratch and 3D Printed to a fully functioning Robot.
Thanks for Looking.