MapBot : An experiment in robotic mapping

MapBot : An experiment in robotic mapping

Length: 1701 words (4.9 double-spaced pages)

Rating: Excellent

Open Document

Essay Preview

More ↓
Includes Source Code
MapBot : An experiment in robotic mapping

Abstract:
Today Robots are often used to explore dangerous
places where humans cannot go. However, what if there was a
more easily available robot that could be used to explore
places here on earth? This project is an attempt to build a
very simple version of such a robot: a robot that follows a
line, then creates a graph of the line on a computer.
Exercises I did early in COSMOS gave me the
backing I needed to attempt such an undertaking. I used
basic line-following programs as the base, with a recording
element thrown in. A C program was written to run on the
computer and turn the data the robot collects into a graph.
It took a lot of tweaking, but eventually I got a
decently accurate representation of the line. Sadly,
MapBot 2
though, I learned that if I want to graph another line, I
would have to change the program all over again.
With a little more work, I believe I could fix that,
and the other problems plaguing this program as it stands.
Also, I still believe that a personal MapBot is a viable
idea, though I learned that it would require a lot of work.
MapBot 3
Background/Purpose:
There has always been a human drive to explore, to find out
more about the world. Columbus sailed to America, and Cook to
Australia, each driven by the promise of new uncharted
territory. Recently this task of exploring new frontiers has
been turned over to robots, as robots can explore locales that
humans cannot. Robots have explored volcanoes, the planets in
our solar system, and the deep sea—locations no person could
survive. So far robots have been limited to exploring just such
locations, those available exclusively to them, but I believe
that there are earthly applications for exploring robots.
Imagine, if you will, an inexpensive mapping robot. It
operates very simply: simply set it down somewhere in the
desired area, give it a set of bounds, and leave. The robot will
send live data from the terrain to the user, creating a realtime
map of the area. This map will be based on whatever data
the robots sensors have collected; with add-ons, this could be
anything from soil composition to topographic data. And when
mapping is complete, the user simply returns to the robot and
picks it up. Such a robot would be useful to many professions.
Cartographers could create online maps that changed as the
planet did. Field scientists could use them to take readings
over a large swathe of terrain without taking any of their own
time. With a camera attached, they could make a 3-dimensional

How to Cite this Page

MLA Citation:
"MapBot : An experiment in robotic mapping." 123HelpMe.com. 28 Feb 2020
    <https://www.123helpme.com/view.asp?id=154109>.

Need Writing Help?

Get feedback on grammar, clarity, concision and logic instantly.

Check your paper »

Essay on The Focus Of Robotic Surgery

- The focus of robotic surgery can be very debatable for many people in this environmental community. A brief introduction is given to the definitions and history of surgical robotics. The capabilities and merits of surgical robots are then contrasted with the related field of computer assisted surgery. A classification is then given of the various types of robot system currently being investigated internationally, together with a number of examples of different applications in both soft-tissue and orthopedic surgery....   [tags: Surgery, Physician, Robotic surgery, Robot]

Research Papers
1749 words (5 pages)

Robotic Surgery Impact On Society Essay

- Robotic Surgery 's Impact on Society Introduction of da Vinci Since the beginning of time, human beings have been in search of ways to advance life as we know it. Every single day, somewhere in the world, technology is being transformed and an exciting new piece is birthed into society. Perhaps, one of the most influential advances is in our ever evolving medical profession. Thus, as technology continues to change the world as we know it, it is sweeping the medical field right along with it. Surgical procedures are being drastically improved with the use of robotic technology called da Vinci....   [tags: Surgery, Physician, Medicine, Robotic surgery]

Research Papers
1197 words (3.4 pages)

Robotic Surgery Is The Most Popular Surgical Surgery Essay

- “Back in 2000, there were only 1,000 robotic surgeries world-wide. That number surged to 360,000 in 2011 and 450,000 last year” (Pinkerton). Is robotic surgery going to be the way to go. What is robotic surgery. Is the recovery quicker than a normal procedure. Are there more risks. Is robotic surgery more precise and costly. Robotic surgery has recently become the most popular surgical procedure around. It is used by many surgeons around the world for surgeries such as, “hysterectomies, cervical cancer, and endometriosis” (Robotics Surgeries on the Rise)....   [tags: Surgery, Anesthesia, Physician, Robotic surgery]

Research Papers
1133 words (3.2 pages)

Essay about Digital Crime Mapping Software Improves The Police

- Crime mapping is a fairly simple concept. The push-pin maps that can be seen in any police show are entering the digital era. Digital crime mapping software improves the police’s ability to respond to situations and analyze crime in leaps and bounds. What before might have taken different sets of eyes can now be done by entering in multiple sets of GPS co-ordinates. Crime mapping can be used to identify patterns in crime, as well as allow officers in the field to simultaneous view the same map, even as it is updated with new information....   [tags: Crime, Police, Crime mapping]

Research Papers
1825 words (5.2 pages)

Essay about Robotic Human Brain Interfaces

- Missing results graphs This paper was created to explain and inform you of the cutting edge biotechnology of hybrid brain machine interfaces (HBMI) and advances in neurophysiology. This research has given way to a glimpse of its possible applications and use with prosthetic limbs and sensory aids. This research exemplifies our growing knowledge of science through the integration of different scientific fields such as neuroscience, mathematics, biotechnology, neurophysiology, robotics and computer science....   [tags: Biology Robotics]

Research Papers
2170 words (6.2 pages)

Robotic Assisted Surgery Analysis Essay

- When you hear Robotics you think of science and space, but in the medical field they are also using robotics to perform certain surgeries. So you ask what exactly is robotic surgery. Robotic surgery is a procedure that is performed by a surgeon using a computer with small surgical tools that is attached to a robotic arm. Both computer assisted and robotic assisted surgeries are new developments that use robotics in surgical procedures to help aid surgeons. “The term “robot” originated from the Czech word “robota” which means forced labor” (Palep, 2009)....   [tags: robotics, medical field, surgery]

Research Papers
634 words (1.8 pages)

Psychological Experiment : The Stanford Prison Experiment Essay

- In 1971 three psychologists, Craig Banks, Curtis Haney, and Phillip Zimbardo were captivated in finding out whether the rough treatment described among guards in American prisons was due to the aggressive behaviors of the guards or the prisoners lack of respect for law and order (dispositional hypothesis) or had more to do with the prison atmosphere (situational hypothesis) (Maxfield & Babbie, 2009). If the prisoners and guards acted in a non-violent way this would corroborate the dispositional hypothesis, or if the prisoners and guards act the same way as people do in real prisons this would authenticate the situational explanation (McLeod, 2016)....   [tags: Stanford prison experiment, Milgram experiment]

Research Papers
1127 words (3.2 pages)

The Stanford Prison Experiment : Experiment Essay

- Would you go into prison to get paid. Do you believe that you will come out the same or become different. Do not answer that. The Stanford Prison Experiment was an experiment that was conduct in 1971 by a team of researchers led by psychology professor Philip Zimbardo. Seventy applicants answered the ad and were narrowed down to 24 college students, which half were assigned either to be guards or prisoners by random selection. Those 24 college students were picked out from the of 70 applicants by taking personality tests and given diagnostic interviews to remove any candidates with psychological problems, medical disabilities, or a history of crime or drug abuse....   [tags: Stanford prison experiment, Philip Zimbardo]

Research Papers
1279 words (3.7 pages)

Figure-Ground Segmentation Essays

- Figure-Ground Segmentation Several studies have examined that in figure-ground segmentation processes, attention to certain regions tends to cause those regions to be perceived as closer to the observer (Huang & Pashler, 2009). In this experiment we propose that the attention effect can be reversed and that the visual system will choose the interpretation according to the simplicity of the attended regions. The visual system has the ability to detect three-dimensional structures in the absence of mapping between properties....   [tags: Mapping]

Research Papers
2196 words (6.3 pages)

Osmosis Experiment Essay

- Background Knowledge: Osmosis definition: Diffusion of water molecules through a semi permeable membrane from a higher concentration to a lower concentration until the concentration on both sides is equal. Osmosis in animal cells: The cell membrane is the partially permeable membrane in animal cells. If the cells were placed in distilled water they gain water, swell and burst. This is known as haemolysis. Osmosis in plant cells: The cellulose cell wall of plant cells is fully permeable. Therefore it’s the cell membrane of a plant cell which acts as the semi-permeable membrane, deciding what gets into and out of the cell....   [tags: Science Experiment]

Research Papers
582 words (1.7 pages)

MapBot 4
graph of an area or structure, such as the ruins of the Coliseum
in Rome.
Sadly, this robot does not yet exist. My project, however,
could be seen as a point on the way to such an objective, for my
robot will map a line onto a computer. It will do this by first
following the line, recording information about that as it goes.
Then that information will be uploaded to a computer, where
another program will turn that data into a map of the robots
path.
Procedures:
From the start of COSMOS Professor Dad-del gave me exercises
that refined my coding and building. These were the first steps
toward making this project, for it was for one of them exercises
that I built the chassis that I used for my final project and
wrote the program that I used as the base for my robot code.
(See Diagrams and Code) The focus of this project also underwent
a great deal of refinement. The original idea was to have a
robot follow a line, then retrace the line on a piece of paper.
I built a pen chassis for the back of the robot, to lift a pen
onto and off of the paper. This used a version of the linefollowing
program that swept back and forth when it lost the
line. My thought was that with this program I would only need to
store one set of variables—the time it had spend doing each
MapBot 5
task—because the way the program was designed it would alternate
between going straight and sweeping, eliminating the need for a
variable to tell which direction it was going. My original
attempt at the redrawing robot used an alphabet function to turn
a number into a variable, which would then be used to store the
time. This was very bulky, using somewhere in the area of four
hundred lines of code. All this code slowed the robot down too
much and prevented it from accurately recording data. Then one
of the helpers for the robot class, Chajng Ho, came up with a
better solution: arrays. Arrays are basically two-dimensional
variables—if you think of a variable as a box to store a value
in, an array is a line of boxes with one name, called by column.
Using arrays, I was able to cut the program in half, and also
make it much more accurate. After some debugging, my robot
could follow the line very well—with one problem. Whenever the
robot left the line just slightly, immediately turning back onto
it, the replay of that turn would be exaggerated into a much
larger turn. In addition to that, the extra turn time was stolen
from the other values, leading to very distorted line. I spent
several days working on this before I decided that the problem
was in the way I wrote the program. I was telling the RCX to run
two intensive tasks simultaneously, which it couldn’t do.
Therefore, in the replay, the robot would turn for a minimum
time, even if it was supposed to stop long ago. As I could not
MapBot 6
see any way around this problem, I decided to try a new way of
mapping.
I had been interested in datalogs for a while, so I decided
to try using them to create a graph of .
Datalogging is a way for the robot to store
information that the computer can then look at
later. For this purpose I would need a simpler
line-following program, because I needed to turn
the time spent turning into the number of
degrees turned, and that would be exceptionally
difficult with a sweeping robot. So I modified
the program to store information in a datalog.
This took a bit of time, but when it was done I
knew the program was correct .(See Code) Then
came the difficult part: turning these hundreds of numbers into
a line. I this took a little longer. It was a while before I got
a C program that worked, and then it took quite a while to tweak
it so that an accurate
representation of the line was
presented.
Results:
Of the many times I tried to
MapBot 7
graph a line, only a few were correct. Presented are some of the
graphs I did, both good and bad. To the right is one of the
stranger ones. I deleted a zero in my C program and suddenly
this appeared, which shows the difference a small change can
make. The first graph on this page is a more normal erroneous
graph. Is this graph, the robot is going down and to the left of
the starting position (0, 0).
This was caused by too much
degree time and not enough
emphasis on turning left (the
left motor moves faster than the
right one, and I needed to
compensate for that). The final
graph on this page is the end
result of this project. Compare
it to the picture of the actual
line.
The graph is of the ‘hook’
only, and the similarities are easily apparent. Sadly, this is
the only line that I graphed, because I discovered that
variation in the speed of the motors means that the program
needs to be fine-tuned for each and every run.
MapBot 8
Conclusion:
Mapping a line was much harder than I thought it would be.
Most of the problems were caused by the inconstant speed of the
motors. If I were to redo this, I might use rotational sensors
to measure how far the robot was going, and then use that to
graph the line. I am satisfied with my final graph, but the need
to tweak the program each time is a problem that would need to
fixed before any commercial robot would be feasible. Despite
these issues, though, I believe that a personal mapping robot is
a feasible project, if enough time is spent on it. Using non-
Lego bots might also help.
MapBot 9



References:
Baum, Dave(2004). NQC Programmer’s Guide,
Version 2.3 rl.
Baum, Dave (2003). Definitive Guide to LEGO
MINDSTORMS, Second Edition. New York: Apress.
MapBot 10
Appendices:
Code:
Robot Code:
// Nedward's MaoBot
// sensors
#define lefttouch SENSOR_1
#define righttouch SENSOR_3
#define eye SENSOR_2
// motors
#define left OUT_A
#define right OUT_C
#define both OUT_C+OUT_A
// constants
#define revtime 50
#define spintime 70
#define events 11
int toodark, toobright, setdir, nset, time2, dir, time, n=0;
int lastdir, nin=0, nout;
void setup()
{
SetPower(both, 4);
CreateDatalog(750);
toobright=eye;
PlaySound(SOUND_UP);
Wait(50);
until(righttouch==1);
toodark=eye;
int delta = (toobright-toodark)/3;
toodark+=delta;
toobright-=delta;
Wait(50);
}
void play()
{
// configure the sensor
SetSensor(lefttouch, SENSOR_TOUCH);
SetSensor(righttouch, SENSOR_TOUCH);
SetSensor(eye, SENSOR_LIGHT);
until (righttouch==1);
setup ();
until(righttouch==1);
Wait(50);
// do this forever
ClearTimer(0);
ClearTimer(1);
SetUserDisplay(time2, -2);
while(righttouch!=1)
{
time2=Timer(1);
time=FastTimer(0);
dir=lastdir;
if (eye<= toodark)
{
Off(left);
On(right);
if (dir!=1)
{
MapBot 11
ClearTimer(0);
n++;
lastdir=1;
AddToDatalog(1);
}
}
else if (eye>=toobright)
{
Off(right);
On(left);
if (dir!=3)
{
ClearTimer(0);
n++;
lastdir=3;
AddToDatalog(3);
}
}
else
{
On(both);
if (dir!=2)
{
ClearTimer(0);
n++;
lastdir=2;
AddToDatalog(2);
}}
if (lastdir!=dir)
{
AddToDatalog(time);
}
}
Off(both);
Wait(50);
}
task main()
{
play ();
}
Computer Code:
#include
#include
int main(void)
{
int timed, counter, n, j, events;
double angle, x, y, degreetime, dt;
FILE * fileout;
FILE * filein;
filein=fopen("datalogold2.dat", "r");
fileout=fopen("map.dat","w");
printf ("\nEnter events: ");
scanf ("%i", &events);
events/=2;
degreetime=0.0125;
angle=0;
x=0;
y=0;
dt=0.001;
timed=0;
j=0;
int dir[events], time[events];
for (counter=0; counter MapBot 12
{
fscanf(filein, "%i", &dir[counter]);
fscanf(filein, "%i", &time[counter]);
}
fprintf(fileout,"\n%lf %lf", x, y);
for (n=0; n<(events/dt); n++)
{
timed++;
if (timed==(1/dt))
{
j++;
timed=0;
}
if (dir[j]==2)
{
x+=time[j]*sin(angle)*dt;
y+=time[j]*cos(angle)*dt;
}
else if (dir[j]==1)
{
angle-=time[j]*degreetime*dt;
x+=time[j]*0.07*sin(angle)*dt;
y+=time[j]*0.04*cos(angle)*dt;
}
else if (dir[j]==3)
{
angle+=time[j]*degreetime*dt*1.3;
x+=time[j]*0.07*sin(angle)*dt;
y+=time[j]*0.04*cos(angle)*dt;
}
fprintf(fileout,"\n%lf %lf",x, y);
}
fprintf(fileout,"\n");
fclose(fileout);
fclose(filein);
printf ("\n\n");
return 0;
}
Return to 123HelpMe.com