RickCar1 aka RC1
Meet RickCar1, my first attempt at creating a self driving car. I made some pictures along the way and I expect to write more about it later. It had some issues earlier today and I'm now going to take it out for a spin in my living room.
I think it looks great. You should video it driving around the room and post it.
"Never trust a computer you can’t throw out a window." — Steve Wozniak
That's a very nice robot. Nice large battery you have there. ?
What's the diameter of the wheels?
Did you fabricate this design? It looks to be home-built, but then again it could be a kit of some sort?
Also based on the placement of the battery it appears that only one set of wheels are motorized. Is that right?
What are you using as a microcontroller or SBC?
How do you control the robot? Only with onboard programs, or do you have a wireless interface to it as well?
So many questions. ?
DroneBot Workshop Robotics Engineer
Hmmm... I thought I could edit my posts... I intended to edit the first post to:
Meet RickCar1, my first attempt at creating a self driving car.
I designed it myself and part of my inspiration comes from DB1. Although I liked the Actobotics channeling of DB1, I couldn't find it with fast delivery in the Netherlands, so I chose to go for 6mm MDF plates. I intended to use a 8-10 AA batteries to power everything, but the batteries I have from IKEA couldn't deliver the required current to power the four 12V DC motors. I found this battery 12V - 7Ah battery online and it can handle the required current.
I intended to go for two motorized wheels (1:131.25 gear motor) and two free wheels, yet I couldn't figure out how to mount the free wheels so I took a shortcut and ordered two more motors. The motors in the front have encoders and the motors in the back are identical apart from not having encoders. I use the Pololu Dual VNH5019 Motor Driver Shield on top of an Arduino Uno. I had to cut part of the wiring on the shield, as it used pin 2 for outputting the direction for the right motors and I rather use that pin as an interrupt for an encoder.
The brains of the RC1 is an Raspberry Pi 3B+. It's powered from the 12V through a 5V step down converter. The RPi is connected via I2C with the Arduino (using a logic level converter) and has the Ubiquity Robotics image, so it runs on Ubuntu and has ROS installed.
For navigation purposes, RC1 has an RPLidar A1M8 and a Raspberry Pi camera V2. The lidar is only on when I'm working with it, as I haven't came up with a way of placing the wires in a safe way. The camera is not yet used, and is intended to become the main source of navigation. At that point, the RPLidar will be mostly used to ensure it does not bump into anything. Currently the navigation is done by copying my tracking my keys in a terminal window on my MacBook and converting those keys to commands.
I'll update this post along the way to become some sort of "summary" and make new posts when I do to keep you updated.
I tried to edit the first post and that should have answered your questions. I failed to edit it and posted a new post as if it was the first post.
Great work Rick! That really looks good. How long can you run RC1 on one of those 12V-7Ah batteries? I have a number of them around my shack that I was thinking of using on my DB1 (Willy Nilly) but I need to get some of the 12V to 5V step down converters.
Keep us posted on your progress.
I don't know how long it will last on the batteries, because I haven't been playing with it for long. When the kids are awake it's usually not a good idea to drive it and when they are asleep I'm either too tired or I prefer fixing/improving/learning things over playing with it.
Also, RC1 is very capable of not being able to drive in a straight line and in a living room that's full with obstacles, I'd prefer it to go straight when I want it to. I was hoping converting the PWM control to RPM control using the encoders would help, but it doesn't (yet?). All four motors are Pololu 37D Metal Gear motors with 131:1 gear ratio, so I expected everything to go straight without any effort, which was too naive.
I'm now focusing on other parts, as having it autonomously drive around the room doesn't really require it to go straight when I want it to.
A bit of progress on controlling the motors: I changed my sketch to allow my pi to tell the Arduino which PWM to use instead of RPM and I'll try to use the encoder information to slow the faster motor down to the same rpm as the slower motor.
Also, I had quiet a few occurrences of the erratic behaviour of my motor driver which I posted in a different topic in the motors part of this forum.