Carrier-Bot | Thoughts

!!This is my previous final project idea. I changed my project idea after Update 3 in this site. You can find my current final project in Update 3!!

Project Idea

I want to make a robot that can carry items. The robot can carry items by the user putting their items onto a platform. The robot carries its items to a pinged location. The robot will be pinged by a phone or a portable button. I want the length of the robot to be customizable according to the needs of the user. The robot will have wheels resembling a tank's. I want the robot to have an auto-navigation function (make it so it can find its own way to the ping). I will probably use an ultrasonic sensor to navigate around obstacles. Maybe play a ding sound after completing task (reaching pinged location).


Some Ideas for navigation:

  1. The robot will store the direction of the pinged place and find its way there by using sensors etc. The robot will have dc motors for this idea.
  2. A camera system to find the target. The robot will find its way to the target using the location data from the camera. The robot will have stepper motors for this idea.
  3. A camera the user carries (or is being carried another way), that always looks down, detects the distance the user walked. The robot (with stepper motors) goes to the calculated location. Example: The camera detects four colors at four (or three etc.) points of the taken picture; after like a second, it retakes the picture, looks for the four colors with the same distances to each other; when found, calculate the distance from their first position to get distance moved.


Key Features:

  1. Can be pinged by a device
  2. Finds its way to the pinged place
  3. Can carry items
  4. Can change its length
  5. Plays a sound after completing its task


Draft Materials List:

  1. Ultrasonic sensor
  2. DC/Stepper motors
  3. PCB (motor driver, capacitor, resistor etc.)
  4. A portable power source (probably some batteries)
  5. 3D printed parts
  6. Something to play sound with
  7. A camera


Sketch:

Sketch


Motivation

People forget things. People forget to take their items with them when changing locations if they're working on a project, talking on the phone, watching/listening to media, or thinking. After realizing you forgot your items, trying to find them on top of your busy day feels like a great hassle. This project is here so that you can get to your items immediately, without having to feel the dread of trying to find or remember them.

The second reason for me to design this is so that you don't have to carry your items. This isn't the first reason even though it's in the name because, if I really wanted the bot to just carry items, I would've just designed a platform with wheels that you can tie to your hand with a string. The main idea of this project is that you don't have to touch or think about your items to have them with you. Just click the button when you need them, and they're next to you.


Carrier-Bot | Basic Component Creating | Update 1

Info About the Update

I wrote a program that'll help the robot find its way to the goal location. You can find the code here and some example outputs here. I also created an electronic design from Kicad and a really basic (it doesn't have all of the functions I'm planning to implement) 3D model of the robot. Also, because of how I've written the code, I'm planning on using four ultrasonic sensors, each directed to different directions, to navigate the bot. The current code can only simulate the movement of the bot in digital space (as in, it can only show what path it'll take in different situations); however, if the code is successful in real life, I'm basically done with the code of the navigation part since it's not that hard to implement code for electronic parts into my code. I currently have no idea on how to do communication between parts. I got some feedback, however, on how to locate the goal location. A relative of mine recommended using GPRS. Currently, I literally have almost no idea how I can use a GPRS, how it operates, or if it would be even applicable in this situation. I'm planning on looking into it before I post the second update of my final project, so you will probably be able to see my decision on using it in the second update.


3D Design

This design is smaller than how its actual size will be. I didn't implement the changeable length and sound playing functions in this prototype; although, I might discard the sound playing function idea altogether.


Electronics Design

I created a simple PCB design for using DC motors.


Carrier-Bot | Researching | Update 2

Info About the Update

This update is for doing some research and deciding what parts to use exactly. This update doesn't contain my final thoughts, but the information below is basically what I have decided to use currently.


Table of Contents

  1. Resources
  2. Goal Locating
  3. Which Distance Sensor
  4. Measuring Distance Taken
  5. Omnidirectional Wheels
  6. Materials to be Used for the Robot Body


Resources

Asked ChatGPT and used information from the week 11 meet for goal locating.

Used this and this website, and asked ChatGPT for deciding on a distance sensor.

I asked ChatGPT and looked at this website to make a decision on which distance sensor to use.


Goal Locating

I took some names from the week 11 meet and ChatGPT. These devices are nRF24L01+, LoRa (Meshtastic), UWB, RTK GPS, GPRS, and GPS. I asked about the devices to ChatGPT. Basically, it told that UWB was the best among these since it had an appropriate range for my project, it gave both distance and direction, and it was accurate enough for my project.


Locating

I'll be using the servo motor to change the position of the UWB module in the robot. Since I'm using only two UWB modules, I'm planning on first taking the distance from the other PCB to the robot PCB when the servo is at 0 degrees, then when it's at 120 degrees, then when it's at 240 degrees (depending on the servo we have, I might do it at 0 - 90 - 180 degrees etc.). Then, I'll do some calculations to find the direction of the other PCB according to the PCB in the robot.

How the locating works:


Which Distance Sensor

I was recommended to test VL53L1X as a distance sensor in the output devices week by Mr. Krisjanis Rijnieks. I wanted to see if I would be able to use this for my final project, too. However, after researching these two from this and this website, and asking ChatGPT, I decided to use HC-SR04 for my final project. Although, I still want to test VL53L1X in the output devices week if I'm not too short in time.

Mini Update

After testing it, I changed my mind on using HC-SR04. At some angles, the sensor gave me 2500cm, so I kind of lost trust. I mean, since I don't want my robot to crash into an angled wall, I feel safer using VL53L1X.


Measuring Distance Taken

I was told a stepper motor was too heavy for mobile devices and was recommended to use a DC motor gear encoder by Mr. Eduardo Chamorro. I asked ChatGPT and looked at this website, and this option seemed good for my final project, so I'll use it.


Movement

I was told about omnidirectional wheels, too, by Mr. Eduardo Chamorro. They seem pretty good so I'll just use them if there are some in the lab.


Materials to be Used for the Robot Body

Top (carrying part): I'm not sure what to make this part from. I was planning on making it from wood by getting help from a laser cutter, but was adviced otherwise by Mr. Krisjanis Rijnieks since that would have made the robot too uneven if a heavy object was placed on one end of the carrying part (since wood isn't that heavy). I want the top part ot be detachable from the middle, so I still believe wood isn't too bad of an option (since it's easy to make copies with); however, I still want to think about this part.

Middle: I'll make this part from 3D since it's hard to make it in any other way. The middle part will have holes and will have the ability to change its length.

Bottom: I'm not too sure of what to make the bottom part from. I may just make it from 3D (and make it attached to the middle part), but I also have an idea of making it from a heavier material so that I can make the top part from wood (since a heavier material in any part will help the robot from becoming too uneven). I also have an idea of just making it from 3D and making a bunch of empty spaces inside it, so that I can fill those empty spaces with heavy materials such as metals so that I can solve the unevenness problem while also using 3D to make the middle and the bottom as a single piece.


Carrier-Bot | Deciding | Update 3

Info About the Update

This update is about deciding what to do with my project. Since I don't have much time left, I want to talk about how I want to change my project. Currently, my school stuff is basically finished. I don't have any AP exams left, I don't have any school exams left, I basically don't have any classes left, so, now, I'll be able to work on the weekly assignments and my final project much more freely.


New Idea

I think of creating a maze that the robot can solve. Basically, there'll be a platform from wood. It'll have holes that'll create a matrix-ish look. I'll also create a bunch of detachable walls that'll basically slot into the holes in the platform. This way, the user can create a maze. The robot will be dropped into somewhere in the maze. It'll find its way to the goal, which will be found by the extra depth one wall will have (which will be created by engraving on the wall). Basically, after scanning the distance between the wall and the robot using a ToF sensor, if the distance is between certain numbers, the robot will have reached the goal.


Current Robot

I'll decrease the robot's size. The robot'll basically be two servos, one ToF distance sensor, and a XIAO ESP32C6. The robot will still be able to carry stuff and the top part will still be made from wood to make it detachable and disposable.


Extras

I will probably connect the robot to the user's computer to make it possible to use different maze solving algorithms with the use of a local site. The default will be the program I wrote, of course, but the other ones may or may not come from different people. If they are indeed made by other people, I'll credit them in the site.


Sketch


Thoughts

This will help people explore and learn about the algorithms the robot uses. It can also be used to carry items in short distances, too (from one end of a table to the other end etc.). This will be kind of like a mini version of my previous project that is more focused on maze solving and algorithm demonstrating.


Carrier-Bot | Designing | Update 4

Info About the Update

This update is about designing some parts of my final project. I may need to change the designs in future updates since, I mean, something might go wrong after actually testing the parts.


Table of Contents

  1. PCB Design
  2. 3D Design
  3. Top Part Design
  4. Files


PCB Design

I will design this PCB as my week 10 assignment, so you can find the full documentation there.

Parts:

  1. 2 Continuous Servo Motors (MG 996R)
  2. 1 XIAO ESP32C6
  3. 1 VL53L1X
  4. 1 Polarized Capacitor (EEE-FN1E101UL)


I wrote that I'd use a DC motors with encoder for my final project robot, but the lab doesn't have them currently, so I'll just use continuous MG 996R servo motors.

This PCB will be in the robot itself.

The continuous servo motors will be on the two sides of the PCB.

The VL53L1X will be a breakout board and I will be making some connection things to the VL53L1X from the PCB.

I'll be using XIAO ESP32C6 for locating.


PCB Design:


PCB Layout:


3D Design

The documentation of this part can be found in my week 15 assignment. This is basically how the 3D printed part will be.


Top Part Design

I started by importing some parameters from my 3D design into cuttle. I also added a kerf parameter equal to 0.1mm.


I created some guides. The outer square represents the size of the top platform. The inner square represents the size of the body of the robot. The four rectangles are basically the holes that'll act as the connection to the body of the robot.


I created some more guides for connecting the platform to the walls of the top part.


Using the pen, I went over the guides.


I edited the points to make them parametric.

The platform part is done.


I started the wall part by creating some guides.


I used the pen to trace the guides and then made the design parametric.

The sides part is finished.


Files

Here are the files.

Here is my Cuttle design.


Carrier-Bot | Part Creating | Update 5

Info About the Update

This update is about me creating the parts I designed previously.


Table of Contents

  1. Creating PCB
  2. 3D Print
  3. Laser Cutting
  4. Files


Creating PCB

I'll be using Mods while creating the toolpath of my PCB. You can find the documentation of me creating my PCB in my week 10 assignment.


3D Print

I made the toolpath from Bambu Lab using these settings.


I started the printer.


Update

I changed the design a bit in the next update, so the one above isn't the latest version. Although, week 15 has the latest version, too.


Laser Cutting

I put the design into the xTool app.

I used 70% power and 30mm/s speed.


The machine is cutting.


The parts are out.


The side parts don't fit into each other since I designed them wrong.


I changed the design and cut them again.

You can find the link to the new design below and in the .zip file.


The laser cutter didn't cut some of the parts properly, so they're stuck, so I'll have to cut them again.


The top part is done!


They don't break off easily.


Files

Here are the files.

Here is my Cuttle design.