Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Robot delivery

Izzydrizzy331

Newbie
Joined
Nov 11, 2021
Messages
2
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
22
Hello all,
We are designing a robot that will delivery any object from building to building. The robot has two independently controlled motors on the rear and a caster wheel in the front. It is currently using a gps module along with an antenna for better accuracy all while being connected to an arduino Mega. The problem we are having is that we don't know how to tell the robot to reorient itself when it goes off track or veers off. Additionally, the robot sometimes veers to the right most of the times and I don't seem to find a solution. Any suggestions is greatly appreciated.
 

BradtheRad

Super Moderator
Staff member
Joined
Apr 1, 2011
Messages
14,240
Helped
2,817
Reputation
5,642
Reaction score
2,757
Trophy points
1,393
Location
Minneapolis, Minnesota, USA
Activity points
106,225
veers to the right most of the times

GPS units I've seen do a recalculation when we drive off course. The software does this automatically as soon as it detects a deviation. Doubtless it watches continuously. Similarly does your software provide you with verbose reports comparing ideal position with reported position?
Does it notify you as to strength of GPS signal? If it loses signal then it surely can't stay on track.

Even with independently controlled controlled motors, a simple thing as mismatched wheel diameters could be the cause.
Or electrically there might be mismatched motors, motor supply voltage/current, bad grounding, etc.

Did you try switching parts left for right? Anything to track down the problem? And again, can you obtain a verbose report telling when it makes adjustments in motor speed and direction?

You may decide it's more practical to build in active steering at the front wheel, and to give the rear wheels identical drive power.
 

Izzydrizzy331

Newbie
Joined
Nov 11, 2021
Messages
2
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
22
Our code does not include those types of reports, as to which it compares its current position to the ideal location. We will however try to incorporate this logic into our design. As far as troubleshooting the motors we will definitely switch out the gear boxes entirely with new ones and take a look back into the circuit. And just to reiterate on the last suggestion, building an active steering in the front would mean having 4 motors to better stabilize the robot? Thank you in advanced.
 

KlausST

Super Moderator
Staff member
Joined
Apr 17, 2014
Messages
20,823
Helped
4,499
Reputation
9,010
Reaction score
4,565
Trophy points
1,393
Activity points
137,476
Hi,

I don't have experience with autonomous vehicles.
But I guess one can not relate 100% on GPS data ... because of GPS receiver shutdown and initializing, missing satellites, data receive errors dute to buildings, electrical transmission lines, whether conditions....
Thus I expect one needs to have some backup system. Either go on a limited time on the "last known" (software) information about position and speed/direction.
Or a set of local sensors for speed/direction....

Klaus
 

BradtheRad

Super Moderator
Staff member
Joined
Apr 1, 2011
Messages
14,240
Helped
2,817
Reputation
5,642
Reaction score
2,757
Trophy points
1,393
Location
Minneapolis, Minnesota, USA
Activity points
106,225
to reiterate on the last suggestion, building an active steering in the front would mean having 4 motors to better stabilize the robot?

Since the robot is built, it's easier simply to command one drive motor to always go a little faster than the other, cancelling the tendency to veer.

(My previous thought was to have identical wheels, identical motors, receive identical power supply, same voltage, same polarity.
Or else attach the rear wheels to a single drive train (or gear system). However there needs to be sufficient slippage so that your robot can turn sharply. If it only wants to go straight ahead then my suggestion goes out the window.)

Keep a record in memory of the robot's motions. As soon as it loses GPS, play back the motions in reverse, bringing the robot backwards to its last recognized position where it might recover GPS.
 

barry

Advanced Member level 5
Joined
Mar 31, 2005
Messages
5,354
Helped
1,137
Reputation
2,286
Reaction score
1,154
Trophy points
1,393
Location
California, USA
Activity points
29,264
I think this is too broad a question for simplistic answers. First, you need to determine WHY it veers. It could be anything from your algorithm to noise to a mechanical issue to a software bug, to loss of GPS, etc. Maybe, as far as the robot is concerned, it’s going exactly where it’s supposed to. Maybe the motors aren’t powerful enough to overcome terrain issues. I could go on.

Does it ALWAYS veer to the right, or only sometimes? Does it exhibit any other erroneous behaviors? Are you just using GPS to control it’s motion? How robust is your GPS system? For example, GPS in a cellphone is only accurate to about 15 feet.
 
Joined
Oct 26, 2021
Messages
3
Helped
1
Reputation
2
Reaction score
2
Trophy points
3
Activity points
32
Two important components to solve this task for robust operation
1. Odometry algorithm using data from sensors. For example, using camera, lidar and/or mmwave radar sensor.
2. Path following with collision avoidance, very similar to algorithms used in top-down 2d games.
Then you move you robot in virtual 2d map and real world simultaneously, and update virtual position based on odometry data.

You can obtain relatively high precision by using camera with backlight, directed to the ground. Idea is similar optical mouse working principle. By analyzing adjacent frames from this camera you can estimate offset and rotation of the camera between frames. If ground surface is covered with something smooth and reflective it may fail. I think commercial sensors must exist that can provide reliable output even if surface is reflective, but have some grains and dust on it. It must be cleaned from time to time.

Simpler solution may be using positioning beacons and putting simple presence sensor that makes robot stop until unexpected object leaves sensing area.
 

LaTeX Commands Quick-Menu:

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Top