<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p>Robert,</p>
<p>Thanks for the link. I don't have a google login so I'll have to
figure out how to download it.</p>
<p>The gyro/IMU I've been using is the CH6 from CH robotics, but it
has some temperature drift I haven't been able to compensate so
I'm in the process of switching to the BNO055 which guys in the
group have had good success with. Basically the robot runs normal
odometry using the wheel encoders but substitutes the IMU heading
for the theta value in the sin() and cos() calculations.</p>
<p>The jBot robot uses a pretty pricey 9DOF IMU but runs basically
the same software. Here's a link with some code snippets for that
robot that describes the basic technique. It's the same link
Murray already posted.<br>
</p>
<p><a
href="http://www.geology.smu.edu/%7Edpa-www/robo/Encoder/imu_odo/"
rel="noreferrer" target="_blank">http://www.geology.smu.edu/~dpa-www/robo/Encoder/imu_odo/</a></p>
<a
href="http://www.geology.smu.edu/%7Edpa-www/robo/Encoder/imu_odo/"
rel="noreferrer" target="_blank"><br>
</a>I've never written up the perimeter following behavior but
here's the technique in general. The perimeter following for the
outdoor jBot uses the outer two Polaroid sensors but on the smaller
nBot balancer it uses Sharp IR distance sensors. These are mounted
on each side and angled forward about 45 degrees and down about 15
degrees. <br>
<br>
The technique is to use the robot's normal obstacle avoidance
sensors and behaviors to push the robot away from the perimeter in
conjunction with the angled distance sensors to follow the
perimeter. The angled sensors are divided into four ranges which
are basically 1) too close, turn gently away from wall, 2) deadzone,
so just go straight, 3) too far , turn gently toward wall, and 4)
way too far (no detection) so turn sharply towards wall. <br>
<br>
In addition, the normal obstacle avoidance behaviors (detect on left
- turn right, detect on right - turn left, detect in center - keep
turning whatever way already turning) are modified so that center
detections always turn away from the wall. The "bumper" behaviors
on both bots, actually derived from the IMU and not physical
bumpers, also turn away from the wall for center detects.<br>
<br>
The normal obstacle avoidance behaviors are higher priority than
the perimeter following and so subsume those behaviors, and the
bumper behaviors are the highest priority.<br>
<br>
Here's a video of the jBot robot navigating towards a waypoint on
the far side of a large building. It gets trapped in a cul-de-sac
and switches to perimeter following to follow the outline of the
building, and switches back to waypoint navigation once clear of the
building.<br>
<br>
<a class="moz-txt-link-freetext" href="http://www.geology.smu.edu/dpa-www/robo/jbot/jbot2/jbot_ti2_m1.mpg">http://www.geology.smu.edu/dpa-www/robo/jbot/jbot2/jbot_ti2_m1.mpg</a><br>
<br>
<br>
Hope this is helpful,<br>
dpa<br>
<br>
<br>
<br>
<br>
<div class="moz-cite-prefix">On 05/01/2020 10:15 AM, Robert Zeiler
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CAEpDUR-mo-yE9-1ung0DNLjjeyaCQgnorpSJUpMzTqnqss8D1w@mail.gmail.com">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<div dir="ltr">
<div class="gmail_default" style="font-size:small">Looks very
interesting. What sensors did you use to follow the wall and
how does the gyro work?</div>
<div class="gmail_default" style="font-size:small"><br>
</div>
<div class="gmail_default" style="font-size:small">Attached is a
video showing Herberts arm and gripper in use. Herbert
understands verbal instruction. The action shown in the video
is the result of telling Herbert to "take this" and then
"release". </div>
<div class="gmail_default" style="font-size:small">
<div class="gmail_chip gmail_drive_chip"
style="width:396px;height:18px;max-height:18px;background-color:rgb(245,245,245);padding:5px;font-family:arial;font-weight:bold;font-size:13px;border:1px
solid rgb(221,221,221);line-height:1"><a
href="https://drive.google.com/file/d/1u1sMsd262GLKUGZ_7DbKNtMeVt1UKFLJ/view?usp=drive_web"
target="_blank"
style="display:inline-block;max-width:366px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration-line:none;padding:1px
0px;border:none" moz-do-not-send="true"><img
style="vertical-align: bottom; border: none;"
src="https://ssl.gstatic.com/docs/doclist/images/icon_10_generic_list.png"
moz-do-not-send="true"> <span dir="ltr"
style="vertical-align:bottom;text-decoration:none">IMG_0212
(1).MOV</span></a><img
src="//ssl.gstatic.com/ui/v1/icons/common/x_8px.png"
style="opacity: 0.55; cursor: pointer; float: right;
position: relative; top: -1px; display: none;"
moz-do-not-send="true"></div>
<br>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Thu, Apr 30, 2020 at 1:36
PM David Anderson <<a href="mailto:davida@smu.edu"
moz-do-not-send="true">davida@smu.edu</a>> wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF">
<p>Cool. Especially the force sensing gripper. Any pics or
video?</p>
<p>I played with Roborealm some (many) years ago but didn't
pursue it seriously at the time. A couple of the guys in
the group use lidar for localization for some of the robot
contest courses though I'm not sure they use it for more
real-world environments. Contest courses are easy :)<br>
</p>
<p>I've had pretty good success with a generalized version
of wall following which I call perimeter following (i.e.,
doesn't require a nice flat wall) to do room navigation.
The robot also runs location calculations at 20Hz using
gyro corrected odometry while perimeter following so it
knows where it is and can, for example, stop when it gets
back to the starting point, as you suggest. <br>
</p>
<p>Here's a video of the two-wheel balancing robot nbot
doing some perimeter following in the basement of the
Heroy building at SMU where I work, which is a pretty
challenging environment:<br>
</p>
<p> <a
href="http://www.geology.smu.edu/dpa-www/robo/nbot/20120614_nbot_05b.mpg"
target="_blank" moz-do-not-send="true">http://www.geology.smu.edu/dpa-www/robo/nbot/20120614_nbot_05b.mpg</a><br>
</p>
<p>regards</p>
<p>dpa</p>
<p><br>
</p>
<br>
<div>On 04/30/2020 12:58 PM, Robert Zeiler wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_default" style="font-size:small">Thanks
I've been thinking about the left or right wall rule.
Yes, Herbert started out as a LEAF robot. I've gone
further than the group though. The last addition to
Herbert was an arm with several DOF and a force
sensing gripper. Had to learn a lot about torque and
gear and chain drives. </div>
<div class="gmail_default" style="font-size:small">Have
you had any success using LIDAR or programs like
Roborealm. (Herbert uses Roborealm for some things). </div>
<div class="gmail_default" style="font-size:small"><br>
</div>
<div class="gmail_default" style="font-size:small">Robert</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Thu, Apr 30, 2020
at 10:16 AM David Anderson via DPRGlist <<a
href="mailto:dprglist@lists.dprg.org"
target="_blank" moz-do-not-send="true">dprglist@lists.dprg.org</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px
0px 0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF">
<p>Robert,</p>
<p>Sounds like what you are looking for is SLAM.
Though from your description perimeter following
would probably work and be much more robust. Is
Herbert one of the LEAF robots? <br>
</p>
<p>regards</p>
<p>dpa</p>
<p><br>
</p>
<br>
<div>On 04/30/2020 11:50 AM, Robert Zeiler via
DPRGlist wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_default"
style="font-size:small">Hi all</div>
<div class="gmail_default"
style="font-size:small">Thanks for the reply.
I have also done odometry on my robots as well
as ultrasound and IR.</div>
<div class="gmail_default"
style="font-size:small">But, for this
application, I was looking for experience with
either visual or lidar mapping techniques.
Basically the idea is for the robot to enter a
room, scan the environment for obstacles (will
also have onboard sonar for collision
avoidance), make a map from the readouts and
then enter the room using the info to
establish a path through the room. I want to
hit all areas of the room. The robot will
return to the starting point and stop.</div>
<div class="gmail_default"
style="font-size:small"><br>
</div>
<div class="gmail_default"
style="font-size:small">Robert</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Wed, Apr
29, 2020 at 5:22 PM Murray Altheim via
DPRGlist <<a
href="mailto:dprglist@lists.dprg.org"
target="_blank" moz-do-not-send="true">dprglist@lists.dprg.org</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote"
style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">Hi Robert,<br>
<br>
I'm also keen to understand how to perform
some of the tricks David has<br>
perfected, and it's worth mentioning that he
has a helpful page on<br>
odometry at:<br>
<br>
<a
href="http://www.geology.smu.edu/%7Edpa-www/robo/Encoder/imu_odo/"
rel="noreferrer" target="_blank"
moz-do-not-send="true">http://www.geology.smu.edu/~dpa-www/robo/Encoder/imu_odo/</a><br>
<br>
As my robots are all targeted at indoors GPS
is unavailable.<br>
<br>
I've put together the beginnings of a page on
the NZPRG wiki on the<br>
subject at:<br>
<br>
<a
href="https://service.robots.org.nz/wiki/Wiki.jsp?page=Odometry"
rel="noreferrer" target="_blank"
moz-do-not-send="true">https://service.robots.org.nz/wiki/Wiki.jsp?page=Odometry</a><br>
<br>
but it's not had much love (yet) as I'm still
getting my PID controller<br>
to the point of functionality (and not being
sidetracked by every other<br>
whim that comes my way, such as Firmata).<br>
<br>
I've also considered having my robot perform
repeated scans of the signal<br>
strength of all the WiFi signals it can see
(dozens, in a suburban<br>
neighborhood) from the four corners of my
house, storing that information,<br>
and using that info, along with compass
heading (from a BNO055) to get an<br>
idea where in my house the robot is. Since the
Raspberry Pi has WiFi built<br>
in, this is a free exercise (no additional
sensors required). There's a<br>
lot of noise, you'll need both a blacklist
(because cell phones move<br>
around) and a whitelist (to prioritise known
sources as if they were<br>
beacons, or actually use a few older Pis as
beacons), but I'm still<br>
thinking it might work...<br>
<br>
Cheers,<br>
<br>
Murray<br>
<br>
On 30/04/20 12:07 pm, David Anderson via
DPRGlist wrote:<br>
> Robert (and Herbert)<br>
> <br>
> I've been doing autonomous robot
navigation successfully for some years now
using location information gathered from wheel
encoders and gyros on a number of my robots.
I'd be happy to answer any questions you might
have. You might start <br>
> out by looking at the navigation writeups
associated with my outdoor jBot robot:<br>
> <br>
> <a
href="http://www.geology.smu.edu/dpa-www/robo/jbot"
rel="noreferrer" target="_blank"
moz-do-not-send="true">http://www.geology.smu.edu/dpa-www/robo/jbot</a><br>
> <br>
> Here's a video of that robot navigating
through the woods to a waypoint 500 feet away
and returning to within a few inches of the
starting point:<br>
> <br>
> <a
href="http://www.geology.smu.edu/%7Edpa-www/robo/jbot/jbot_hatrick2_2.mpg"
rel="noreferrer" target="_blank"
moz-do-not-send="true">http://www.geology.smu.edu/~dpa-www/robo/jbot/jbot_hatrick2_2.mpg</a><br>
> <br>
> The jBot robot has an onboard GPS but
that is not used or required for these
navigation tasks.<br>
> <br>
> best regards,<br>
> <br>
> dpa<br>
> <br>
> On 04/29/2020 06:37 PM, Robert Zeiler via
DPRGlist wrote:<br>
>> Has anybody had any success using any
kind of mapping system or device for robot
autonomous navigation?.<br>
>><br>
>> Robert and Herbert (the robot)<br>
...........................................................................<br>
Murray Altheim <murray18 at altheim dot
com> = = ===<br>
<a href="http://www.altheim.com/murray/"
rel="noreferrer" target="_blank"
moz-do-not-send="true">http://www.altheim.com/murray/</a>
=== ===<br>
= = ===<br>
In the evening<br>
The rice leaves in the garden<br>
Rustle in the autumn wind<br>
That blows through my reed hut.<br>
-- Minamoto no Tsunenobu<br>
<br>
_______________________________________________<br>
DPRGlist mailing list<br>
<a href="mailto:DPRGlist@lists.dprg.org"
target="_blank" moz-do-not-send="true">DPRGlist@lists.dprg.org</a><br>
<a
href="http://lists.dprg.org/listinfo.cgi/dprglist-dprg.org"
rel="noreferrer" target="_blank"
moz-do-not-send="true">http://lists.dprg.org/listinfo.cgi/dprglist-dprg.org</a><br>
</blockquote>
</div>
<br>
<fieldset></fieldset>
<br>
<pre>_______________________________________________
DPRGlist mailing list
<a href="mailto:DPRGlist@lists.dprg.org" target="_blank" moz-do-not-send="true">DPRGlist@lists.dprg.org</a>
<a href="http://lists.dprg.org/listinfo.cgi/dprglist-dprg.org" target="_blank" moz-do-not-send="true">http://lists.dprg.org/listinfo.cgi/dprglist-dprg.org</a>
</pre>
</blockquote>
<br>
</div>
_______________________________________________<br>
DPRGlist mailing list<br>
<a href="mailto:DPRGlist@lists.dprg.org"
target="_blank" moz-do-not-send="true">DPRGlist@lists.dprg.org</a><br>
<a
href="http://lists.dprg.org/listinfo.cgi/dprglist-dprg.org"
rel="noreferrer" target="_blank"
moz-do-not-send="true">http://lists.dprg.org/listinfo.cgi/dprglist-dprg.org</a><br>
</blockquote>
</div>
</blockquote>
<br>
</div>
</blockquote>
</div>
</blockquote>
<br>
</body>
</html>