Autonomous Driller

Abstract

In this project, I build a 3D printed, autonomous car for exploration and delivery. The main idea is to let the car drive around by itself and find humans to serve chocolate on demand. For the mapping, exploration and human detection, I use a Depth Camera from Intel. You are curious about Why the hell is it called a driller?. You can find it out here.

this is a placeholder image
Current progress of the car

Background story

After I finished my main goal for the 2WD ROSduion, I wanted to make an autonomous upgrade. So I went on google and looked for prices of:

  • Raspberry Pi Camera Module ~ US$ 50
  • RP LIDAR ~ US$ 120
  • Depth Camera ~ US$ 240

If you compare the prices to the base set for the 2WD ROSduino (~US$ 40), this would be clearly an overkill for me. So what now?

Together with the coincidence with my dad, showing me his broken drilling machine, I decided to start a new project, the autonomous driller.

What has the car to do with a “driller”?

At the time, when I was thinking about making 2WD ROSduion an autonomous car, my dad once came to me. He had an old drilling machine in his hands and asked me:

Do you need parts from this? It is broken and I do not need it anymore.

It was an ‘Eureka!’ moment for me. I decided to start something bigger: A car with a drilling machine engine.

I did not even know how it looked like from the inside. So I opened the case and took a glimps:

this is a placeholder image
Drilling machine from inside

From an engineering point of view, it was a beautiful moment. Opening the case and seeing the planetary gear with an incredible translation and the very small electric engine. Sooner, I would find out, that this little engine had about

750 watt [W] = 1 horsepower [HP]

which is about 30 times more than the ROSduino engines (which have max. 25 W)! Before I thought about the car itself, I had to figure out how to control the old engine. I did not even know which parts of the drilling machien were broken. I bought a PWM (pulse width modulation) MOSFET engine controller to test the capabilities. And it worked! Which meant, I can go on and figure out how to build the body of the car. See me struggling to hold the engine while testing:

From aluminium sheets to 3d printer

Now, that I knew the engine and the controller work together, I could start with the body of the car. Even though I studied mechanical engineering in my bachelors degree, I did not take any courses about cars. So I went on google to see, how over 200 years of engineering evolved the car manufacturing. I found some sources about how wheel suspension, gears and steering is designed.

Afterwards, I made a rough sketch, went to the company of my dad and started to build a prototype from aluminium sheets. I mainly searched for waste, just to get a feeling of how much work it is and what the outcome would look like. Here is my quarter Car:

The result looked quite ok’isch. Nothing beautiful, but it worked. I knew, I had to weld some thicker parts together to make the chassis more durable. Since I did not have a welding machine, I knew it was going to get tough. So I decided to try a 3d printer approach.

I knew, I do not need a high-end CAD (Computer aided design) program to model my car. It needs to be quick and easy to use. I found an online CAD browser program: Tinkercad. It is very intuitive, free and no download required. I started by modeling the parts that were going to be on the car, because I wanted to get a feeling about the general size of the car. The following were modeled:

  • electric engine (from drilling machine)
  • lithium-ion battery (from drilling machine)
  • motor controller
  • arduino uno
  • raspberry pi
this is a placeholder image
Tinkercad model of the base parts

With this simple model, I knew how big the car needs to be. The first thing, every engineer should do when starting a project: See if someone else had a similar idea. So I went on google again, searched for 3d printed cars and found some. One of the projects was exactly the size, I was looking for. The project is from Kris Shellman, Tarmo3.

I used his chassis of the car and disgned the full drivetrain, gears and axles by myself with Tinkercad to fit my needs. I knew, my engine was a lot more powerful than from different cars with this size. The quarter car here looked a lot cleaner, is cheaper and a lot easier to build.

this is a placeholder image
Quarter car, 3d printed

Following the first test with the electric engine

and the full body with a raspberry pi for size comparison

this is a placeholder image
Full body of the car

ROS Communication

More about this in the futur. Stay tuned :smirk:

  • communication structure of rosduino (show rqt graph)

  • explain ssh and ros wifi communication (master/ slave)

  • what is the laptop, raspberry pi and arduino for

SLAM

More about this in the futur. Stay tuned :smirk:

SLAM (simultaneous mapping and localization) of my room with the Intel® RealSense™ D455 depth-camera. The pointcloud is visualized in real-time in rviz for ROS.

The blue lines refer to the path the camera took to map the room. You can see, I basically stood up and rotated the camera for mapping as you can see in the video above.

Path planning

More about this in the futur. Stay tuned :smirk:

  • explain the concept of surface normals and elevation map

  • RRT* path planning

Outtakes and Failures

On this topic I am going to talk about things that did not work and lessons I have learned.

Never attach an electrical engine directly to the battery

I attached the electrical engine with an enginebox to the body of the 3d printed car as well as a battery holder.

this is a placeholder image
Enginebox and battery holder on the driller-car

Nevertheless, I was too lazy to set up my controller to test whether or not my construction works. On the other hand, I was too curious to find out. So I decided to simply connect the electrical engine to the battery and leave out any type of control (PT1 time delay or similar). As you might imagine, this is not a good idea to do with a 750 Watt engine. Sadly, I did not record it and luckily, only a small and easy replacable part broke.

this is a placeholder image
The car after 0.01 seconds of maximum engine torque.
this is a placeholder image
The broken 3d printed part.

Video

First remotely controlled test ride.