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.
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!
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.
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!
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.
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.
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
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
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
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
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
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
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
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
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
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
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! ===
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
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
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
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
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
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
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
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
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
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
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
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
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