Inqling Junior - Ro...
 
Notifications
Clear all

Inqling Junior - Robot Mapping, Vision, Autonomy

240 Posts
10 Users
87 Likes
8,183 Views
robotBuilder
(@robotbuilder)
Noble Member
Joined: 3 years ago
Posts: 1554
 

@inq 

Please understand, for me, this is about the journey of building the robot, not the end-product of the robot.

Now much the same for me.  Just something I enjoy thinking about.  It was the reason I first joined the forum to follow Bill's build of a "real" robot. I would still like to build a robot that can map and use the map to navigate the house just for the fun of it and proof I can do it.  I am more interested in AI algorithms than working out how to use the latest exotic sensor.  The biological world has managed without the ToF light sensors although it does have ToF sound sensors which enable bats and dolphins to see the world in amazing detail. 

(Yes, the beer fetcher is not a serious goal - the day I can't get up and get my own, I'll put a fridge next to the chair 😊 )

The reason I wouldn't buy a robot lawn mower is because pushing a mower around is good exercise and a change from the long morning walks designed to keep me going.

When you first mentioned SLAM, my initial thought was it was just another monolithic software suite (like ROS).

Yes it is just about how to get a robot to use its sensors to make and use a map of its environment.

I want to start from first principles and work-up from there. That is why I'll never even download ROS. It is just of no interest for me. I want to fully understand that ToF sensor so I can say with certainty what I can get out of it.

Fair enough. I did try a few times to understand ROS without success but I guess you need to put in more than a couple of hours reading. Have you only one ToF sensor? I reckon three would be useful. One on the front and one each side for things like following a wall.

 

This post was modified 2 months ago 4 times by robotBuilder

   
ReplyQuote
Inq
 Inq
(@inq)
Noble Member
Joined: 8 months ago
Posts: 959
Topic starter  

@robotbuilder - OMG!  Did you already know about this?  I can't believe that MIT just gives their classes out like this.  I hate thinking what would have happened had I had access to this when I was growing up.

Check this link out:  https://ocw.mit.edu/search/?q=machine%20vision

3 lines of code = InqPortal = Complete IoT, App, Web Server w/ GUI Admin Client, Access Point 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
robotBuilder
(@robotbuilder)
Noble Member
Joined: 3 years ago
Posts: 1554
 

@inq 

But I'm certain that there is a way (TBD) to use statistics to convert thousands or millions of 3D points into a single mathematical panel. I have not really started thinking about the actual nuts and bolts, but I believe something like an STL file (bunch of triangles) representing the building could be achieved. At which point even a low-power consumer, lower-end RaspPi (say a Zero-W) could work through a way to determine its location by what it sees around itself when turned-on and then calculate a travel plan to the commanded retrieval point... the fridge 😉 .

I see there is software to convert point cloud data into easy-to-use segmented 3D mesh models if that is what you mean?

 


   
ReplyQuote
robotBuilder
(@robotbuilder)
Noble Member
Joined: 3 years ago
Posts: 1554
 
Posted by: @inq

@robotbuilder - OMG!  Did you already know about this?  I can't believe that MIT just gives their classes out like this.  I hate thinking what would have happened had I had access to this when I was growing up.

Check this link out:  https://ocw.mit.edu/search/?q=machine%20vision

Way above my head. Fully heavy duty academic stuff with lots of math!!

This is more the level I work at.

https://www.roborealm.com/

 


   
ReplyQuote
Inq
 Inq
(@inq)
Noble Member
Joined: 8 months ago
Posts: 959
Topic starter  
Posted by: @robotbuilder

https://www.roborealm.com/ <

  1. The $25... It's still usable after year (of updates) expires? 
  2. Only Windows PC?

Looks impressive.

3 lines of code = InqPortal = Complete IoT, App, Web Server w/ GUI Admin Client, Access Point 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
robotBuilder
(@robotbuilder)
Noble Member
Joined: 3 years ago
Posts: 1554
 

@inq 

It was to show the level of visual processing I work at.  I played with RoboRealm when it first came out and was free and intended to write my own version but there was no interest by others in the project. Thus I don't actually use the product rather I started from first principles and worked my way up from there. I used escapi.dll to capture the images and have also used OpenCV to capture images because it can also be used on a Linux machine but I write the processing code myself.

https://sol.gfxile.net/escapi/index.html

Watching a dry academic math riddled lecture leaves me cold.  I learn by doing, one step at a time.

 

 

This post was modified 2 months ago by robotBuilder

   
ReplyQuote
robotBuilder
(@robotbuilder)
Noble Member
Joined: 3 years ago
Posts: 1554
 

@inq 

I see the link I gave for escapi will disappear and this is the new link.

http://solhsa.com/escapi/index.html

 


   
ReplyQuote
robotBuilder
(@robotbuilder)
Noble Member
Joined: 3 years ago
Posts: 1554
 

@inq 

Just thinking about it more if you ever wanted to do any vision I would use OpenCV to capture images although you can learn some of the basic stuff with still images.  Easier to share code using OpenCV and it will most likely continue to have ongoing support.  Then there are the RPi cameras which I haven't tried yet although I purchased one two years ago so I am not sure how to use it with my own programs.  I will check out the latest stuff available in the electronics shop this Friday as I will be visiting the city.

 

 

 


   
ReplyQuote
Inq
 Inq
(@inq)
Noble Member
Joined: 8 months ago
Posts: 959
Topic starter  

UPDATE

I got in some 3D printer hardware, flanges and such and I was not happy with the play still on the shaft.  Yes, it has set screws, but there is too much room for me screwing it off center and it being worse than what I had.

So I did a complete re-design of the wheel.  I had some other less serious problems with the last one, so I took it as an opportunity to improve the whole thing.  Introducing the @Davee wheel.  I've high-teched it as much as I can without machine tools.

DaveeWheel

(A) Tire - Material:  3D Printed TPU Plus

  1. The old tire has a lip to trap the wheel, but I made it too shallow, so sometimes it could slip a little transversely.  It never came off the rim even with the wild driving shenanigans, but I can't rule-out that as a contributing factor to the tolerance problems.  Deepened the lip to 1mm.
  2. The old tire to wheel interface around the circumference was completely circular.  Unfortunately, there could be some slippage under hard acceleration. I can't rule-out that as a contributing factor to the tolerance problems.  I could glue it, but the idea was that the tires could be replaced if they wore out.  I've added pultruded blocks between the wheel and tire to keep that from happening.
  3. The old tire had a tread pattern like a strait cut gear.  There was a decided rest point either on the block or spread between two blocks.  Taking off the brakes, it would go to one of the set points.  I've added a V-groove tread pattern reminiscent of Formula-1 rain tires.  There should be no preference to fractional rest angles now.  Besides it'll shed water and keep from hydroplaning.  🤣 
  4. I've increased the side-wall height to give it a little more shock absorbing when hitting bumps.

(B) Wheel - Material:  3D Printed ABS

  1. Made the wheel-tire interface changes to mate with the tire changes 1 and 2 above.
  2. While I was at it, I played around with the design from 5 spoke to 24 thin spokes.  I also made them spiral out from the central hub to the rim... the theory being, they will act in cantilever fashion as a spring if it were to hit something or crossing  rough transitions.  
  3. I thought about making them canted (fan blade style) to blow air over the stepper motors, but that was beginning to feel like gilding the lily. 😆 

(C) Stepper Shaft to Wheel Interface - Material:  3D Printed Carbon Fiber / Polycarbonate

  1. I believe the old one with the ABS interface was softening enough due to the heat of the stepper being conducted out the shaft into the plastic.  Although ABS has a pretty high heat transition point > 100C, it does creep and with a set screw pressing firmly against shaft, some creep was evident.  Polycarbonate has a higher transition point and the carbon fiber will distribute that heat faster.
  2. The old design was a two-part wheel split at the centerline of the spokes so they could be made round in cross-section.  Getting exact alignment was not assured and I could see some slight wobble in the wheels.  I can't rule-out that as a contributing factor to the tolerance problems.  Now the central adapter is one piece along the shaft.
  3. Polycarbonate, especially with the carbon fiber contribution has a far higher stiffness than ABS... thus eliminated creep and having less deformation under set-screw pressure.

(D) Set Screw - Material:  Stainless Steel

  1. Nothing really new here.  Image shows the trapped nut location within the Polycarbonate
  2. The angled path of the set screw "digs in" the edge of the screw into the Stepper Motor shaft to give a more positive lock down at lower set-screw torque.  The angled path also allows the screw to be tightened from the back face and accessed from under the Inqling Jr and thus doesn't show for cosmetic reasons.  

VBR,

Inq

P.S. - Had to replace the typical brass 3D printer nozzle with a hardened steel version for printing the Carbon Fiber/Polycarbonate.  I was also having trouble with the flexible TPU material spitting out the side of the printer because of a gonged up PTFE tube, so I've order a few parts and doing a general service of the printer.  Parts are claimed to be here tomorrow.  Holding my breath! 🙄 

3 lines of code = InqPortal = Complete IoT, App, Web Server w/ GUI Admin Client, Access Point 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
Ron
 Ron
(@zander)
Famed Member
Joined: 2 years ago
Posts: 3403
 

@inq Impressive work, but as an F1 fan I feel compelled to nit-pik. Only the intermediate wets have the pattern you describe, full wets are very different. Green is intermediate, Blue is full wet.

Screen Shot 2022 09 23 at 13.20.23

 

"Don't tell people how to do things. Tell them what to do and let them surprise you with their results.” - G.S. Patton, Gen. USA
"Never wrestle with a pig....the pig loves it and you end up covered in mud..." anon


   
Inq reacted
ReplyQuote
Inq
 Inq
(@inq)
Noble Member
Joined: 8 months ago
Posts: 959
Topic starter  
Posted by: @zander

@inq Impressive work, but as an F1 fan I feel compelled to nit-pik. Only the intermediate wets have the pattern you describe, full wets are very different. Green is intermediate, Blue is full wet.

Screen Shot 2022 09 23 at 13.20.23

 

I used to keep up with F1.  Interesting that they've almost entirely gone away from the older theory. 

3 lines of code = InqPortal = Complete IoT, App, Web Server w/ GUI Admin Client, Access Point 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)
Noble Member
Joined: 8 months ago
Posts: 959
Topic starter  

Baby Got New Shoes

Nothing but the classics black/white Wingtips.

NewShoes

Don't know if they're any better, but between the Carbon Fiber / Polycarbonate core and better tire mounting system, I've got my fingers crossed.  

VBR,

Inq

P.S. Heading out of town for a long weekend, so it'll be next week before any test results.

3 lines of code = InqPortal = Complete IoT, App, Web Server w/ GUI Admin Client, Access Point 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


   
Will and DaveE reacted
ReplyQuote
Will
 Will
(@will)
Noble Member
Joined: 1 year ago
Posts: 2112
 

@inq 

Looks very classy. I know you're interested in vanishingly small errors, have you calculated the effective radius reduction and expansion expected from starting and stopping rotation of the wheels ? Bumps may also cause some bouncing, but that will cause both expansion and collapse and will come close to balancing out if you're at a constant speed (and there's only one bump).

Even just from the weight of the body, the radius may change slightly.

I was kidnapped by mimes.
They did unspeakable things to me.


   
Inq reacted
ReplyQuote
Inq
 Inq
(@inq)
Noble Member
Joined: 8 months ago
Posts: 959
Topic starter  
Posted by: @will

@inq 

Looks very classy. I know you're interested in vanishingly small errors, have you calculated the effective radius reduction and expansion expected from starting and stopping rotation of the wheels ? Bumps may also cause some bouncing, but that will cause both expansion and collapse and will come close to balancing out if you're at a constant speed (and there's only one bump).

Even just from the weight of the body, the radius may change slightly.

Although in my mind, I was thinking it was going to be springy.  In fact, I was thinking... "Do I need to double the thickness of those things?"  I needn't have worried... It's every bit as stiff as the old ones.  They don't flex.

  • The wheel/tire interface is better and doesn't shift, slip
  • The tread doesn't feel digital aka - settling between block to block, so it rolls smoother.
  • The CF/PC hub it much stiffer and more heat resistant.  Hopefully it keeps the shaft centered better.

I'm really keeping the fingers crossed that I haven't wasted my time for no-gain.  But @davee observation about any offset of the axle causing a non-constant distance change per degree of rotation... in my mind HAD TO BE FIXED.  I thought, I was making a tougher test by doing 10 revolutions of the robot and returning to the same point (showing 0.014% error).  But quite the opposite... because the wheels did more full rotations, any offset of the axle was being averaged out.  When doing just 1 revolution it was off several degrees so doing partial turns 90, 45 or even 2 degree turns may have double digit error involved and would have been inconsistent depending on what part of what wheel was in ground contact.  

Transitions and bumps will totally screw any dead-reckoning.  So... next up will be starting to layer in active correction via the Inertial Navigation thread, Gyro, accelerometer, magnetometer and the ToF thread to follow walls and keeping a finite distance parallel to an assumed strait walls.

Its already been a fun project, and I look forward to the coming phases... which will be more programming and 3D graphic visualization.  I'm interested to study the @frogandtoad suggestion for some p5.js with WebGL libraries to do 3D graphics.  I think it'd be really cool to generate the walls real time as its driving around and allow rotating perspective at-will.

Lot's of good stuff coming.

VBR,

Inq

 

3 lines of code = InqPortal = Complete IoT, App, Web Server w/ GUI Admin Client, Access Point 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
Inq
 Inq
(@inq)
Noble Member
Joined: 8 months ago
Posts: 959
Topic starter  
Tire

 

3 lines of code = InqPortal = Complete IoT, App, Web Server w/ GUI Admin Client, Access Point 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
Page 16 / 16