Inqster - The Next ...
 
Notifications
Clear all

Inqster - The Next Generation

125 Posts
7 Users
44 Likes
4,872 Views
Inq
 Inq
(@inq)
Member
Joined: 2 years ago
Posts: 1900
Topic starter  

I think it's about time to start a fresh robot project.  As seen in the previous, incremental robot series - Inqling(Sr and Jr) they added progressively more features and capabilities.  The list has been growing for this next series of robots and the tipping factor has been @thrandell and @robotbuilder's discussion about a Neural Network Driven Robot.

Here are the features that Inqster will address.  Note - This is just a fun, learning-experience project.  I don't know if I can get any or all this to work or even work together and it will likely be a long term project as the outdoor projects keep calling to me also.  It'll likely accelerate this winter.

Porting InqPortal to the ESP32-S3

Inqling Jr worked fine on an ESP8266.  It could handle the hardware timer driving the two stepper wheels while monitoring the I2C gyro and accelerometer sensor while hosting the webserver allowing Remote Control coming from Phones/Tablets/PC's while delivering millisecond telemetry from robot to the GUI on the browsers.  It couldn't, however, handle the extra workload of the 8x8 cell Time of Flight, distance sensor.  Hopefully, the ESP32-S3 will be more capable of handling the load of this as well as the other sensors listed below.

Indoor / Outdoor

Inqling Jr was on the small side and really only able to run on hard, indoor surfaces.  It has some pretty high theoretical top speeds, but really couldn't get enough acceleration space to realize these.  I also want to play around with GPS navigation and GeoFencing.  As such, for outdoor use, Inqster will be getting a lot larger and more powerful to be able to handle traveling over grass, dirt and gravel roads.  The final constraint on size is my 3D printer being able to print 200mm tires.  This doubles the size as compared to Inqling Jr.  Making it larger also gives the opportunity to make the sensor packaging more modular to swap out for different experiments.

Sensors

  • The afore mentioned GPS unit for Navigation, GeoFencing, and possibly Altitude comparisons with the Altimeter
  • BMP280 - Pressure - Altimeter.
  • MPU-6050 - Accelerometer, Gyroscope for Inertial navigation studies, and possibly feed back to check acceleration as compared to those calculated by change in stepper motor speeds, thus detecting wheel slip.
  • ToF - Various, Experiment to see how useful these are outdoors.  I already have these in my parts inventory.
    • VL53L0X - Single ray, Range 2m
    • VL53L5CX - 8x8 resolution with 45° FOV, Range 4m
    • Arducam - 240x180 resolution with 50° FOV, Range 4m
    • Lidar - Range 12m
  • Web Cam, Raspberry Pi or ESP32-CAM based

Stepper Motor Drive

Inqling Jr got by with two 18.4 oz-in Nema-17 stepper motors using A4988 drivers pumping out about 0.6A from 14.8 volts.  This will be considerably upgraded in Inqster using two 84 oz-in Nema-17 stepper motors using TMC2209 drivers capable of 2.0A RMS from 22.2 volts.  I'll be experimenting with these high-tech stepper drivers allowing near silent operation, high output along with the ability to sense the changing load requirements.  IOW, it'll be able to save power while cruising or idling, yet still be able to call up full current for rapid acceleration and high-speed runs. 😎 

Exploring Material Usage

Will be using various 3D printer materials based on desired requirements.  

  • TPU - Kind of a rubbery plastic used for tires.  Still a lot slicker than rubber, so I'm not sure how this will play out.  For outside it shouldn't be a problem as I'll design tires with serious tread for traction.
  • ABS - For most structure.
  • Polycarbonate / Carbon Fiber - For high load areas.  They're claiming near aluminum properties, but we'll have to stress test to verify for that! 😉 
  • If needed for very high strength or stiffness, I'll use continuous fiber-glass and/or carbon fiber filament.

Artificial Neural Network

I've been studying various papers on this and tried out several programs and am looking forward to playing around with this.  From my current understanding of it, I'll have the engine on the robot to handle incoming data from the various sensors, along with some experimental goal and have it drive the robot.  After a given period of time, the robot will gather data and send it wirelessly to a base station of some sort - Phone, Tablet, or Laptop depending on performance needed.  The base station will do the forward and backward calculations and potentially update the model on the robot and have it proceed.  In the first iteration, I hope to duplicate the work in:  

Automatic Creation of an Autonomous Agent: Genetic Evolution of a Neural-Network Driven Robot (1994), Floreano, D., Mondada, F.

It should be an enjoyable project! 😊 

3 lines of code = InqPortal = Complete IoT, App, Web Server w/ GUI Admin Client, WiFi Manager, Drag & Drop File Manager, OTA, Performance Metrics, Web Socket Comms, Easy App API, All running on ESP8266...
Even usable on ESP-01S - Quickest Start Guide


   
DaveE, byron, Will and 2 people reacted
Quote
Ron
 Ron
(@zander)
Father of a miniature Wookie
Joined: 3 years ago
Posts: 6972
 

@Inq Just a brief FYI, I am looking at the Arducam MEGA because it will work with any board that has SPI interface. The ESP32CAM is old and limited due to pins and horsepower. They had to remove the facial recognition code at one point as the board could not handle it.

Screenshot 2023 07 26 at 15.37.31

First computer 1959. Retired from my own computer company 2004.
Hardware - Expert in 1401, and 360, fairly knowledge in PC plus numerous MPU's and MCU's
Major Languages - Machine language, 360 Macro Assembler, Intel Assembler, PL/I and PL1, Pascal, Basic, C plus numerous job control and scripting languages.
Sure you can learn to be a programmer, it will take the same amount of time for me to learn to be a Doctor.


   
ReplyQuote
Inq
 Inq
(@inq)
Member
Joined: 2 years ago
Posts: 1900
Topic starter  

Posted by: @zander

@Inq Just a brief FYI, I am looking at the Arducam MEGA because it will work with any board that has SPI interface. The ESP32CAM is old and limited due to pins and horsepower. They had to remove the facial recognition code at one point as the board could not handle it.

This is just a shopping list of things I want to play with and I only really added it at the end of the sensor region versus its own section.  I don't plan to do any real vision stuff with it.  It is merely for a video feed so I can sit on the front porch with a drink in hand and see what it's up to while it trudges around on an acre or two of property... hopefully by itself eventually.

 

3 lines of code = InqPortal = Complete IoT, App, Web Server w/ GUI Admin Client, WiFi Manager, Drag & Drop File Manager, OTA, Performance Metrics, Web Socket Comms, Easy App API, All running on ESP8266...
Even usable on ESP-01S - Quickest Start Guide


   
ReplyQuote
Will
 Will
(@will)
Member
Joined: 3 years ago
Posts: 2531
 

Posted by: @inq

The final constraint on size is my 3D printer being able to print 200mm tires.

That doesn't have to be a constraint, Design your wheels as an even number of identical segments, say 8 parts all  covering 45 degrees each.

Lay them out from corner to the opposite corner. For the 1st 15 degrees make it half thickness, full thickness for the next 15 degrees and half thickness for the last 15 degrees. Add bolt holes in the two half thickness areas.

When you've printed all 8, flip the alternate segments and bolt them together to get a wheel closer to 400mm from your printer.

It sounds like an interesting project (by interesting, I mean the kind of project that never gets finished because of 'feature drift' 🙂 )

You may be able to regain some ESP32 capacity on your droid if you added a third wheel (like R2D2) for stability while running over grass, gravel, rough ground, small farm animals and the occasional Boy Scout.

 

Anything seems possible when you don't know what you're talking about.


   
Inst-Tech reacted
ReplyQuote
Ron
 Ron
(@zander)
Father of a miniature Wookie
Joined: 3 years ago
Posts: 6972
 

@will @Inq I thought he was building a bi-pedal robot no wheels.

First computer 1959. Retired from my own computer company 2004.
Hardware - Expert in 1401, and 360, fairly knowledge in PC plus numerous MPU's and MCU's
Major Languages - Machine language, 360 Macro Assembler, Intel Assembler, PL/I and PL1, Pascal, Basic, C plus numerous job control and scripting languages.
Sure you can learn to be a programmer, it will take the same amount of time for me to learn to be a Doctor.


   
ReplyQuote
Inq
 Inq
(@inq)
Member
Joined: 2 years ago
Posts: 1900
Topic starter  

Some CAD Work

I've completed a first cut of the tires and wheels.  The first tire came off the printer this morning and the first wheel will come off soon.  Here, the Inqster wheels are shown in relation to the entire Inqling Jr bot.

I live in the mountains.  The field I'll let Inqster play around in about an acre.  The portion of the field that is closest to level has a grade of about 12'/100'.  To get back up to the house though, Inqster will have to traverse a section that is 40'/100'.  This explains the tires... Need some grip!

Wheels

 

 

3 lines of code = InqPortal = Complete IoT, App, Web Server w/ GUI Admin Client, WiFi Manager, Drag & Drop File Manager, OTA, Performance Metrics, Web Socket Comms, Easy App API, All running on ESP8266...
Even usable on ESP-01S - Quickest Start Guide


   
DaveE reacted
ReplyQuote
Will
 Will
(@will)
Member
Joined: 3 years ago
Posts: 2531
 

Posted by: @inq

The portion of the field that is closest to level has a grade of about 12'/100'.  To get back up to the house though, Inqster will have to traverse a section that is 40'/100'.  This explains the tires... Need some grip!

Maybe you should add an ERS (energy recovery system) to your list of goals 🙂

 

Anything seems possible when you don't know what you're talking about.


   
ReplyQuote
Inq
 Inq
(@inq)
Member
Joined: 2 years ago
Posts: 1900
Topic starter  

Posted by: @will

Posted by: @inq

The final constraint on size is my 3D printer being able to print 200mm tires.

That doesn't have to be a constraint, Design your wheels as an even number of identical segments, say 8 parts all  covering 45 degrees each.

Lay them out from corner to the opposite corner. For the 1st 15 degrees make it half thickness, full thickness for the next 15 degrees and half thickness for the last 15 degrees. Add bolt holes in the two half thickness areas.

When you've printed all 8, flip the alternate segments and bolt them together to get a wheel closer to 400mm from your printer.

It sounds like an interesting project (by interesting, I mean the kind of project that never gets finished because of 'feature drift' 🙂 )

I should have elaborated.  🤣 I was thinking that all I really wanted was enough to have ground clearance going through the grass.  Then bigger-is-better got the best of me and went for max on the printer.  Piecing it up is fine when using PLA or even better with ABS since I can fuse it.  I make RC airplanes, with 50"+ wingspans.  Unfortunately the tires are made of TPU and I've not found a good way to glue them together.  Nothing seems to stick!

Posted by: @will

You may be able to regain some ESP32 capacity on your droid if you added a third wheel (like R2D2) for stability while running over grass, gravel, rough ground, small farm animals and the occasional Boy Scout.

I also should have given more details on that front also.  I've backed-up on the concept of self-balancing.  I'm thinking its hard enough on a smooth floor.  Not quite sure I want to tackle that on gravel.  The main goal is really getting the ANN working with various goals and sensors.  I plan on making a castoring third wheel, but it's still steer by wheel differential... aka... like the Zero Turn mower.

Wife has goats... Yeah!  I can see some tormenting in Inqster's future. 🙄 😜 

VBR,

Inq

 

3 lines of code = InqPortal = Complete IoT, App, Web Server w/ GUI Admin Client, WiFi Manager, Drag & Drop File Manager, OTA, Performance Metrics, Web Socket Comms, Easy App API, All running on ESP8266...
Even usable on ESP-01S - Quickest Start Guide


   
ReplyQuote
Inq
 Inq
(@inq)
Member
Joined: 2 years ago
Posts: 1900
Topic starter  

Posted by: @zander

@will @Inq I thought he was building a bi-pedal robot no wheels.

I think I itemized the 10 year plan for you privately.  bi-pedal is WAY down the road!  😆 

 

3 lines of code = InqPortal = Complete IoT, App, Web Server w/ GUI Admin Client, WiFi Manager, Drag & Drop File Manager, OTA, Performance Metrics, Web Socket Comms, Easy App API, All running on ESP8266...
Even usable on ESP-01S - Quickest Start Guide


   
ReplyQuote
Inq
 Inq
(@inq)
Member
Joined: 2 years ago
Posts: 1900
Topic starter  

Posted by: @will

Posted by: @inq

The portion of the field that is closest to level has a grade of about 12'/100'.  To get back up to the house though, Inqster will have to traverse a section that is 40'/100'.  This explains the tires... Need some grip!

Maybe you should add an ERS (energy recovery system) to your list of goals 🙂

 

Interesting you mention that.  I'm going to make it symmetrical top/bottom.  That way if it takes a tumble, I'll be good to go... sunny-side-up or over-easy.

 

3 lines of code = InqPortal = Complete IoT, App, Web Server w/ GUI Admin Client, WiFi Manager, Drag & Drop File Manager, OTA, Performance Metrics, Web Socket Comms, Easy App API, All running on ESP8266...
Even usable on ESP-01S - Quickest Start Guide


   
ReplyQuote
Inq
 Inq
(@inq)
Member
Joined: 2 years ago
Posts: 1900
Topic starter  

First wheel assembled.  Also, here are the STL files for those brave (or crazy) enough!  🤣 

First Wheel

EDIT:  Designed for tire using TPU and wheel using ABS.  Tire is placed between the wheel halves and then fused with Acetone/ABS mixture about the consistency of whole milk.  The tire is not fastened/glued/fused.  It is simply trapped.  The wheel and tire both have keyways so it won't slip circumferentially.  Learned from Inqling.  The blue insert is a standard collet that is screwed to the stepper motor shaft first, then the white wheel is placed over it and screwed to it.  This O.D. for the collet is 14mm.  

I don't have much experience with PLA, but it does have different shrink rates and thus won't fit snug on the collet.  Also, the design is meant to be flexible.  ABS can take significant deformation and bounce back.  It has been my experience that PLA is less tolerant to impacts and flexing.

3 lines of code = InqPortal = Complete IoT, App, Web Server w/ GUI Admin Client, WiFi Manager, Drag & Drop File Manager, OTA, Performance Metrics, Web Socket Comms, Easy App API, All running on ESP8266...
Even usable on ESP-01S - Quickest Start Guide


   
ReplyQuote
byron
(@byron)
No Title
Joined: 5 years ago
Posts: 1122
 

@inq

Very interesting project 👍.  

When I read your initial spec I though maybe you should think of basing the bot on one of those model off road rock crawler remote controlled cars that can climb up veritable mountains (of course replacing the remote control with your own control logic) as I thought it would take much time just to design the bot chassis and wheels yet alone all the control wiring and code writing.  But then I see in subsequent posts you have already got wheels and tyres hot off the printer.  Blimey that was quick, you certainly don't hang about.

Looking forward to reading the posts on the adventures of the inqling MightyBot 


   
Inst-Tech and Inq reacted
ReplyQuote
Inq
 Inq
(@inq)
Member
Joined: 2 years ago
Posts: 1900
Topic starter  

Posted by: @byron

I thought it would take much time just to design the bot chassis and wheels yet alone all the control wiring and code writing.  But then I see in subsequent posts you have already got wheels and tyres hot off the printer.  Blimey that was quick, you certainly don't hang about.

Things will go in fits and spurts on Inqster! 😉

The tire and wheel are something I can cobble together in the CAD program in an hour of my time... then I can let the printer take over... one tire 14 hours, wheel about 3.  It makes me look like I've accomplished more than I really have... like I have some assistant I can boss around. 😊 

By being so much larger, all the components will be rather easy to place.  Where I toiled for hours getting the tightest assemblage in Inqling Jr, I may even mount a breadboard to the chassis as I fiddle around.  The basic hardware design of MPU/stepper-driver/steppers is already established.  I'll just use that from Inqling Jr.  I wrote my own accel-stepper library in Inqling Jr and that will be re-used.  I'm not quite sure what pit-falls I'll run into trying to port InqPortal to the ESP32.  That will take a while.  Also exploring and exploiting all the new features of the TMC2209 stepper motor driver versus the rather simplistic A4988 will have a learning curve. 

IOW, I'll hop from CAD designing/printing to component layout to sub-component experiments, to software library coding to integration as I get bored with one aspect or the other.  Ooh, that looks greener over there!  😯 

I'll get Inqster to the same Remote Control stage of Inqling Jr before even starting to layer in the ANN software. 

I've about got the front suspension design worked out.  It's still too-heavy, so I think I'll make another design pass at it.  I'll be trying out the Carbon Fiber/Polycarbonate plastic on it so it'll supposedly take the weight and abuse.  It's a shame I can't get decent material properties for the stuff, or I could just calculate exactly what size the leaf-springs need to be.  Maybe, I'll take a WAG at those.  Or once I print one, I can back-calculate the stuff's stiffness properties.

Suspension

After that, I'm still fretting over how to design the third wheel.  It has to be big enough to handle the same type of terrain as the mains, but has to be light to be able to castor quickly.  One of the main tires weighs 66 grams, and the wheel another 49 grams.  Actually, it should be about the same diameter as the mains since the above stated desire to work sunny-side-up or over-easy.  Solving problems like this is the fun part!

3 lines of code = InqPortal = Complete IoT, App, Web Server w/ GUI Admin Client, WiFi Manager, Drag & Drop File Manager, OTA, Performance Metrics, Web Socket Comms, Easy App API, All running on ESP8266...
Even usable on ESP-01S - Quickest Start Guide


   
Lee G, Inst-Tech and DaveE reacted
ReplyQuote
robotBuilder
(@robotbuilder)
Member
Joined: 5 years ago
Posts: 2042
 

@inq wrote

The base station will do the forward and backward calculations and potentially update the model on the robot and have it proceed. In the first iteration, I hope to duplicate the work in:

Automatic Creation of an Autonomous Agent: Genetic Evolution of a Neural-Network Driven Robot (1994), Floreano, D., Mondada, F.

 

I assume the programs you have tried out involve using libraries to create a network.

You mention backward calculations but as I understand it genetic algorithms are an alternative to back propagation methods.

My understanding of training a large neural network with back propagation is that they require thousands of iterations and high speed computations which would take a very long time on a home computer.

It will be interesting to see if @thrandell has any success with a trainable neural network as a robot brain.


   
Inq reacted
ReplyQuote
Ron
 Ron
(@zander)
Father of a miniature Wookie
Joined: 3 years ago
Posts: 6972
 

@robotbuilder Can you provide more details, in an era of 4 Ghz processors, even if I allow for 4 thousand iterations, that still gives 1 million cycles which I doubt equates to 'a very long time on a home computer'.

First computer 1959. Retired from my own computer company 2004.
Hardware - Expert in 1401, and 360, fairly knowledge in PC plus numerous MPU's and MCU's
Major Languages - Machine language, 360 Macro Assembler, Intel Assembler, PL/I and PL1, Pascal, Basic, C plus numerous job control and scripting languages.
Sure you can learn to be a programmer, it will take the same amount of time for me to learn to be a Doctor.


   
ReplyQuote
Page 1 / 9