Making Stuff With Chris DeHut

Making Stuff With Chris DeHutMaking Stuff With Chris DeHutMaking Stuff With Chris DeHut

Making Stuff With Chris DeHut

Making Stuff With Chris DeHutMaking Stuff With Chris DeHutMaking Stuff With Chris DeHut
  • Home
  • Contact
  • More
    • Home
    • Contact

  • Home
  • Contact

ZoomTown Experiment, rpi PICO Controlled Autonomous robotics

About Autonomous robots and the zoomtown experiment

About

The ZoomTown experiment is all about an experiment being conducted to test concepts of autonomous robots in an autonomous transportation system.  Utilizing primarily rpi PICO micro controllers for the robots, the goal is to have 15~20 robots autonomously moving around ZoomTown.  A  Raspberry PI 4 will be incorporated to control the experiments.


From design, through construction, to testing the concepts and practicality, everything is covered from beginning to end.   

ZoomTown episodes 59 ~ up

062 More Trouble With N20 Motors and Encoders, Can PIO Fix the Problem?

 The ability to position accurately is CRITICAL to the success of the ZoomTown experiment.  Since the beginning of the project, this has been one of the toughest challenges and achieving .5 mm (.020") accuracy is not a trivial task.  In this video I explore the use of replacing IRQs with the PIO feature of the PICO. 

061 Can This New Motor/Encoder Save the Zoomtown Experiment?

After the discovery of inaccurate position reporting from the original motor/encoder combination, this more is being considered as a solution to a major problem in this experiment.  The original N20 motor required an external encoder (AS5600), however, keeping the alignment of the motor and encoder was not possible within the specs required.  This is a detailed exploration of this new motor/encoder device, take a look and see if this can save the ZoomTown Experiment from failure.

060 Why the AS5600 Encoders Didn't Perform Accurately

Positioning and localization are KEY to this project, without that failure is absolute.  The AS5600 encoders have proven the to be the problem this time, but why?  This video covers the details of the problem and why it was not easy to detect or to resolve!

059 Introducing and Testing the final version of the Zoomie - maybe...

 It it time again for another round of testing.  We will look at the assembly of the newest gadgets and take the Zoomie for a test drive.  Hopes are high but reality has a way of knocking optimism out!  Take a look to see what the latest discovery is. 

ZoomTown Episodes 37 ~ 58B

058-B Remote Motion Tracking Latency Issue RESOLVED

 In the last episode (058), we found a problem with a strange delay during the remote tracking.  It appeared to be a problem of the data being delayed during transmission or something else like that.  In this episode I share what I think was the problem and how I resolved it.  Also demonstrated in this video a short trip that demonstrates all the maneuvers the Zoomie can perform.  Reliability is greatly improved! 

058 Tracking The Zoomie Remotely

  A primary factor in rewriting the Zoomie's control program was to improve remote tracking for the Zoomie (robot).  We will explore what was changed and how it affected (Good or Bad) the tracking by the Zcheduler software.  Somethings get better, somethings get worse, you will have to watch to get the results. 

057 Lets Test All The Zoomies Maneuvers

 With a complete rewrite of the program for the Raspberry Pi PICO controlled robot (Zoomie), it is time to test the maneuvers again to make sure they are more reliable, robust, and accurate.  A lot of explanation is provided about the change of the program to using classes and how that affected everything involved.  This is a good example of why some larger MicroPython programs benefit greatly from Classes. 

056 The Zoomie Now Has Bang Bang Steering in Reverse!

 Getting the Zoomie to drive straight while traveling backwards has been a problem since the beginning.  Using the encoders simply has not been reliable enough so a search has been on to find a reliable means.  This video explores the old concept of Bang-Bang steering for a solution to that problem. 

055 Top Level Code Review of Zoomie Control Program

 The Zoomie Control Program has been completely re-written and a LOT has changed.  This video will update you on the new structure of the program and the over concept of what changed and why.  Some might say it looks a little more "classy".  The end result is much more readable and certainly more clean and understandable. 

054 The Tiny Code Reader from Useful Sensors is back and WOW!!!!

 A viewer suggest a very clever method to help with Robot localization using QR codes. This was considered a few months back and put on hold until now.  The Tiny Code Reader from Useful Sensors is back and WOW!!!! We are pushing that technology to the limit in this renewed effort. 

053 Status Update 11/23/2024

 So much is changing! To help keep everyone on the current events and status, we have another update video.  We will take a look at the failures, the problems, the hopeful solutions, and set the stage for the path forward. 

052 Debugging A Random Occurring Bug

Fixing random occurring problems is always a challenge. You never know what could be the cause and frankly, it could be anything!!!  Let's take a look at this random 'bug' and see what was done to find it and kill it!

051 Implementing a Shortest Path Algorithm (Dijkstra) For Auto Routing the Robots

  While part of the original concept, Auto Routing was removed based on a misunderstanding.  It is being re-implemented into the experiment as it will add so much more capability.    

As the experiment runs, each robot (Zoomie) will be dispatched at random times to random locations.  That dispatch message will contain the driving directions to get to the destination.  In navigation systems, shortest path algorithms perform this task.  Their purpose is very specific, to find the shortest path from all available options to get from start to finish.  

Initially it was believed that this would create a bad data set as all robots would pass through the city center thus clogging up those streets.  However, as one of our viewers pointed out, the data set can be used to modify the behavior of the algorithm so that it AVOIDS the city center and instead uses the bypass "highway".  While not shorter, it ultimately is faster because there is far less stop-and-go situations and less traffic creating additional delays.  


This video is not an explanation of how this particular (Dijkstra) function works, rather it is about its implementation in this experiment and later on how it will be used to alter the flow of traffic through ZoomTown. 

050 Random Time and Place Generator For Auto Dispatching the Robots

 A requirement from the beginning was to have random events in the experiment.  This new routine will add the ability to:    

* Select a random time for the robot to go somewhere    

* Select a random location for the robot to go to    

* Avoid sending a robot to a banned destination  

This functionality takes us another step closer to starting the actual experiments! 

049 Novel Traffic Control Method

 Let's explore a different method of controlling traffic by breaking the old rules.  The ZoomTown experiment has been about looking at transportation from a different perspective. Getting rid of the human allows for different rules. 

048 10/01/2024 ZoomTown Update

 With the complexity of this experiment reaching its peak, I wanted to share more updates.  This update covers the current status, current outstanding problems, master to do list, and some ideas I am kicking around. 

047 Implementing Remote Robot (Zoomie)Tracking

With the ability to track the location of the robots, the Zcheduler is capable of doing MUCH MORE.  The most obvious (and what is shown in this video) is the ability to show near real time location of each Zoomie.  However, the Zcheduler can now become another "SENSOR" for the Zoomie!  The Zoomie has no "vision" of what is going on around it, but it can ask the Zcheduler for some very critical information such as how close other Zoomies are to it.   This will play a key role in navigation. 


#PICOW #Micropython, #Robotics


Source Code

046 Zoomie Side Trip Plan (Robot Driving Instructions)

See how the Zoomie (robot) interprets the Trip Plan (driving instructions) and executes them.  Follow along to see how the Trip Plan is received into the Zoomie via WiFi/MQTT and then processed for execution. 


#PICOW #Micropython, #Robotics


045 Scheduler Side Trip Plan (Robot Driving Instructions)

 This video details the robot driving instruction creation and coding.  The robot needs to travel from place to place which is a lot more challenging than you may think.  While it is a trivial task to select which roads to travel, there are many more sub-tasks required to get the robot from one road to another.    

There will be a follow up video from the Robot's perspective and what happens when it receives these driving instructions. 


#PICOW #Micropython, #Robotics


ZoomTown Experiment Update 9-8-2024

There has been a LOT of work performed on the ZoomTown Experiment in the last couple of weeks.  This short (actually less than 8 mins.) video catches you up on the developments of the software and the status of al the Zoomie builds going on. 


#PICOW #Micropython, #Robotics


044 Project Update, Building the Computer, and Top level Overview of the Code.

 In this episode we will be exploring more about the Zcheduler computer and software.    

 * Update on status of the ZoomTown Experiment.  

 * A short "how to" video regarding the Zcheduler computer.   

 * Explanation of the route planning and a top level view of the code. 


#PICOW #Micropython, #Robotics


043 Transitioning into Phase III, Take a Look at the Whole System

 Phase III of the Zoomtown experiment is beginning.  This is the final development phase and this is when everything comes together.  Take a look at the whole system in this video.  


#PICOW #Micropython, #Robotics


042 How to Park a Robotic Car (Zoomie) using a PICO and MicroPython

 Parking the robotic car (Zoomie) utilizes multiple sensors to get the Zoomie in the correct position. In this video we will cover what sensors are used and why as well as the logic behind the maneuver. 


#PICOW #Micropython, #Robotics


041 How to make turns with robots (Zoomies)

Turning can be both simple and very complex.  In this video we take a look at the two different turning maneuvers the Zoomie uses.  Ultimately, both are really simple and are proving reliable. 


#PICOW #Micropython, #Robotics


040 Can a Vision System be Used as a "GPS" system?

 In this video we explore the idea of using vision tracking to keep track of where all the Zoomies (Robotic cars) are located.  There will be up to 16 Zoomies moving about ZoomTown at any given time, each Zoomie will need to have knowledge of the other Zoomie's locations.  For example, when backing out of a driveway, the Zoomie will need to know about the cross traffic. 


          ===  NO SOURCE CODE FOR THIS EPISODE!  === 


#TinyCodeSensor #UsefulSensors 


039 Can a QR Code Reader Help with Robot Localization?

Based on viewer feedback, we are taking a look at the Tiny Code Reader from Useful Sensors for the purpose of helping with localization.  Keeping track of where the Zoomie is within ZoomTown is critical as it is with most robotic applications.  We will explore a lot of the details on how this sensor can help with localization.    


          ===  NO SOURCE CODE FOR THIS EPISODE!  === 


#TinyCodeSensor #UsefulSensors 


038 Achieving Robust Line Following and Position Tracking

 The Zoomie has moved up a notch on performance!  The line following is very robust, so much so, I can push it nearly 45 degrees off course and it easily corrects course and continues on. Position tracking (localization) has improved significantly using the hybrid system of the AS5600 encoders, TCRT5000 photo reflective sensors, and some A3141 Hall effect sensors.  This new method is bringing the project very close to 1mm accuracy! 


          ===  NO SOURCE CODE FOR THIS EPISODE!  === 


037 The Ever Evolving Zoomie and Viewer Suggestions

 In this video we will discuss some viewer suggestions and the evolution of the Zoomie.  With these new suggestions, will the Zoomie evolve again?  One suggestion has to do with the mechanical design of the Zoomie and how it could be modified to turn more accurately.  The other suggestion is a sensor that can read markings which would be very useful for localization. 


NO SOURCE CODE FOR THIS VIDEO

ZoomTown Episodes 25 ~ 36

036 New Concept for Position Tracking

Localization is difficult, especially when using simple sensors, in this video we will discuss a new concept that combines using: PICO W, Wheel encoders, Photo reflective sensors, Hall effect sensors, and some creative markings to achieve better localization. 


Cheers!

Chris

#PICOW #Micropython, #AS5600, A3141, #TCRT5000, Localization

NO SOURCE CODE FOR THIS VIDEO

Source Code

035 Time To Reevaluate ZoomTown and the Current Approach

 Based on practical testing many problems have revealed themselves.  As with anything, as new information becomes available (learned), you asses the situation and makes changes as needed.  This video covers that many problems that currently exist with the current methodology and what is planned to deal with it. 


#PICOW #Micropython 


NO SOURCE CODE FOR THIS VIDEO

Source Code

034 Using the TCRT5000 for Line Following and More

 The TCRT5000 photo reflective sensor is great for line following, but based on this test, it could be much more useful in helping with localization too.  In this experiment I will use the sensor to also detect a specific point along the line.  


NOTE!  After filming this story, many problems came up with the original concept of localization for ZoomTown and the importance of this concept rose dramatically. In the next episode, this will be explained in much more detail.  But as of the release date of this video, this concept may very well save the ZoomTown experiment!!.
 


#PICO #Micropython #TCRT5000 #LineFollowing

Source Code

033 DON'T LET MICROPYTHON'S GARBAGE COLLECTOR RUIN YOUR PROGRAM

 Like most high-level languages, there needs to be a feature to clean up the mess programmers leave.  In low level languages the program is required to clear up unused variables, pointers etc.  Micropython's device to automatically do this is called the Garbage Collector.  It works great, BUT, it takes time to execute and it can cause intermittent pauses in your program.  In this video, we cover this problem in detail with a very real and practical problem and solution.
 


#PICO #Micropython #garbagecollector

Source Code

032 Using a Hall Effect Sensor and a Magnet as Stop Sign to Control Your Robot

 How to use an inexpensive hall effect sensor and magnets to add another means of control to your robotic car.  Magnets, embedded in the floor were one the first means of guiding robotic vehicles in industrial applications.  In this video we explore using a hall effect sensor and a magnet as a stop sign. 


#PICO #Micropython #HallEffect

Source Code

031 Collision Avoidance System For Robots

 How to add a basic level of Collision Avoidance to a robot using a PICO W and the GP2Y0E03 Time of Flight Sensor.  For the Zoomie, we will be utilizing a Time of Flight sensor to detect object in the path of the robot and to determine how far away the object is.  Eventually, this sensor will also be used to help with localization in certain situations.  


#PICO #Micropython #GP2Y0E03

Source Code

030 Implementing Line Following on a Robot with Proportional Control

 Learn how to incorporate line following in a robot as we did with the Zoomie (Autonomous Robot). Gain an understanding of PID controls using just one component (proportional) and how to tune the control system effectively using a spreadsheet.  Using 2 TCRT5000 analog photo-reflective sensors, you can achieve accurate line following. 


#PICO #Micropython #LineFollowing

Source Code

029 How to Steer a Robot with Encoder Feedback

 Learn how to use encoder feedback to steer a robot.  See how we make the Zoomie (autonomous robot) drive in a straight line.  In a future story we will also be using the same concept to make precise turns using the same concepts.

#PICO #Micropython 

Source Code

028 Adding Acceleration to Velocity Control for Robots

  How to incorporate acceleration & deceleration into velocity control for a robot.  This video will explain in great detail all about acceleration, the math needed, and how to implement it in a micropython program in a Raspberry Pi PICO. 


#PICO #Micropython 

Source Code

027 Implementing AS5600 Encoders into the Zoomie (robot)

 How to add AS5600 encoders to a robotic car to get accurate odometry information.  Knowing how far a robot has traveled is a key feature to achieving robotic autonomy.  The AS5600 encoders are absolute encoders and utilize magnets for high-resolution feedback. These are also very easy to interface with the Raspberry Pi PICO.  This video will cover a lot of details about working with encoders, especially absolute encoders and the related pitfalls and maths. 


#PICO #Micropython #AS5600

Source Code

026 Basic Motion Control for Zoomie (Autonomous Robot)

 How to do basic motion control for robotic cars.  In this episode, we will go over how motion will be controlled giving the Zoomie the ability to move forward and reverse with variable speed control.  This will set the stage for much more complex motion control in the next series of videos. 


#PICO #Micropython

Source Code

025 Use MQTT for Remote Control of the Zoomie

 How to use MQTT on a Raspberry Pi PICO to Communication with a Raspberry PI 3 to remotely control the Zoomie (Autonomous robot).  MQTT will play a critical role in The ZoomTown experiment.  In this video we will cover the code for the Raspberry Pi Pico W using MQTT to communicate with a Raspberry Pi 3 


Source Code


#MQTT #Remote #PICO #Micropython

Source Code

Copyright © 2025 Making Stuff With Chris DeHut - All Rights Reserved.

Powered by

  • Home

This website uses cookies.

We use cookies to analyze website traffic and optimize your website experience. By accepting our use of cookies, your data will be aggregated with all other user data.

DeclineAccept