Robot that drives in a straight line or maybe drives straight to a specific poin

I am still new to programming and bot building but I am trying to see how hard it will be to build a robot that can be set down on a specific point then drive in a straight line to another specified point 30 feet away. This will be inside a warehouse on concrete floors. Ideally I would like to do this without it following any markings on the floor. Would I need to do something like a follow me and put a phone at the end point? Maybe a laser line system? Would I need GPS, and gyros? Are there higher grade kits besides Lego nxt.

Thanks for any help you can give me.

Davidgeorge212:
I am still new to programming and bot building but I am trying to see how hard it will be to build a robot that can be set down on a specific point then drive in a straight line to another specified point 30 feet away.

Not very hard to do, but a bit much for a first project if you are that new.

Davidgeorge212:
This will be inside a warehouse on concrete floors. Ideally I would like to do this without it following any markings on the floor.

Yeah, that's all doable.

Davidgeorge212:
Would I need to do something like a follow me and put a phone at the end point?

That's one way.

Davidgeorge212:
Maybe a laser line system?

That's another

Davidgeorge212:
Would I need GPS, and gyros?

That's a possibility, but GPS will be next to useless inside a warehouse.

Davidgeorge212:
Are there higher grade kits besides Lego nxt.

Surely.

Davidgeorge212:
Thanks for any help you can give me.

It sounds like you've got a ton of planning and learning to do before you get to building much of anything. Google is your friend. Start by finding other similar projects. But don't just copy, learn how they work.

You will of course need some form of guidance for the robot.

GPS doesn’t work indoors, or on these small distances. The error of a GPS location is easily 3 meters in good conditions (clear views to the sky, good constellation).

Lines on the ground - well besides that you don’t like them, those are liable to be obscured by dirt so need maintenance. Otherwise they’re a very good solution to this problem.

Lasers could work, until someone (or another robot) blocks the line of sight.

Wires embedded in the floor is a great way to do it, if you don’t mind digging up the floor, that is. Best for new constructions where it can be put in place as the concrete is poured.

Gyros not sure if they’re accurate enough to keep you in line. They may be useful to make a 90 degree turn, for example. It helps you from vastly over or under steering.

Maybe the direction control could come from a VERY sophisticated vision system. But that is far beyond the capability of an Arduino. Think driverless cars.

Could you mount the line to be followed on the ceiling? But that would still need a vision system.

Could you mount a line to be followed on each wall of each warehouse aisle so that the robot needs to keep a constant distance from both "walls"? Maybe sonar echo location could figure out the distance to a "wall"

Might it be possible to use sonar like a crude radar system to build a "picture" of nearby obstacles - mainly the sides of an aisle. I think this would need the combined capabilities of an Arduino and a cheap laptop or a Raspberry Pi. Or maybe the RPi on its own.

...R

The easiest thing I can think off is to monitor the speed of the motors. Ideally you want to use DC motors with a gear reduction. Put a disc with holes on the motor shaft (before the gears) and use an IR sensor to monitor the revolutions (IR sensors should monitor the holes in the discs)

If you have a few thousand RPM you can use an easy PID system which ensures the motors will have an exact speed as well as as a proper acceleration curve

A 16 bit gyroscope is also a very good idea for this. Even with a nice acceleration and deccelaration curve, your wheels still can slip (differences between the motors like friction) which might let your car drive a degree off course. With use of a 16 bit gyroscope you can detect these 'distortions' and allows you to compensate for it.

This is the easiest (with exception of sinmply digging wires under the floor) you can accomplish.

Alternatively you can use stepper motors, but electronically it is not a very efficient solution (power consumption). Though you get to controll your motors with great accuracy.

Having a gyroscope also makes the IR sensors and motor tracking a bit redundant. It is possible to steer your DC motored car purely on the Gyroscope.

Problem with the gyroscope is getting your initial bearings. You could point the car in the desired directions, press a button and it will travel in that directions. But Ideally you want some kind of reference. And I am not having an idea at the moment. I think I would use one of them fancy pixy cameras and put 2 recognizable objects on the wall so your car can get it's bearings.

I've thought about it a little more and I think having a robot that can drive to a specific point would be more important. I still need it to drive straight but I'm thinking if it gets started on an off angle, it may end up to one side or the other of where I need it to finish.

Indeed, there are two parts to this: getting on course, and then staying on course. Both can be quite tricky.

To know where to go and how to get there, you must first know where you are.

Knowing where you are is by far the most difficult part of the project. Among many options, the simplest and most accurate for indoor use (but expensive) is probably Pozyx.

Given continuous robot (X1,Y1) and target (X2,Y2) locations, it is straightforward to map a course from one point to the other. This site outlines the various approaches used for global (GPS) navigation.

Perhaps use two IR beacons sending different signals. Drive to the first beacon until the robot bumps it. Then drive to the second beacon.

Drive to the first beacon

Can you suggest to the OP a good method to determine the direction to drive?

Here is one board for IR beacon follower projects.

How does that detector help solve the problem of driving toward a given point, in a straight line?

Locate the beacon, turn so it's in the view of the front detector. Then turn one way until it just drops off the front detector, turn the other way until it again drops off the detector, then point the robot to the dead centre of those two directions, and go for it. Should get you roughly in the correct direction.

Then the only challenge left is to keep the robot in a straight line without further reference. Are gyros accurate enough for a shot at this?

That is the problem for the OP. There is many similar IR follower projects for the Lego NXT which the OP mentions. The problem statement sounds identical to problems given for robotic competitions so I am not comfortable providing a cut n' paste solution.