12222022 ROS Lawn Tractor Meeting

12222022 ROS Lawn Tractor Meeting

This video:
Chat:
Al:
Al:

Index:
00:00 Jeff: Shows latest progress on his new steering.
05:55 Al: Starts with a status update.
Shows some RVIZ screens to show positions.
08:00 Al: Has modified his geonav software.
10:20 Al: Is looking at using parameters.
11:50 Al: Added PID values to his output screen.
12:10 Al: List of things to do.
12:40 We start looking at Al’s current problems. URDF file.
15:15 Jeff: Asks if it will run right now to do real-time debugging.
16:40 We go to a saved RVIZ screen to look at TF errors.
22:25 We decide to pause the video and Al runs out and sets up his lawn tractor.
[Pause]
Now the GPS is broken.
24:30 Terry joined us. Talks about autonomous snow removal.
Discussion of using Milwaukee M18 drill batteries.
31:05 Al: Posts a link to his github for his documentation.
31:50 Al: Was doing experimentation on his GPS driver code (while Terry was talking).
We do a lot more digging through code.
37:30 Al: Restates the obvious goal “just get it to move from point A to point B”.
More digging through code…
We try lots of things.
52:05 We finally resort to deleting build and devel directories and doing catkin_make.
53:15 While it is rebuilding we talk about Terry’s project some more.
Various ways to remove snow.
55:45 Al: Tries to give up again. But we won’t let him.
56:45 We go back to reading the actual messages from the GPS to compare.
1:02:50 Al: Mentions various links as a learning source.
1:04:35 We decide to verify that the working program and
the non-working program are both talking to the same port.
1:06:20 We find that the two programs are pointing to different
ports (which is bad). Just as the catkin_make is finishing.
1:09:30 He fires it up again and the GPS works. So we spend a couple minutes deducing why the port changed.
1:12:00 Al starts up everything and the TF errors are gone.
1:16:30 The tractor isn’t where expected. So Al is going to run outside and carry the antenna around.
[Pause]
1:17:15 We are back and can see the antenna moving.
1:18:50 Terry: Asks about the accuracy of Al’s GPS.
1:21:05 Analysis of why the tractor position has the wrong offset.
1:22:50 Terry: Asks “what is TF?”

Lawn Tractor Automation YouTube page:

Index for Lawn Tractor Automation group:
http://sampson-jeff.com/RosAgriculture/LawnTractorMeetingNotes.txt

Index for the original ROS Agriculture group (~250 videos):
http://sampson-jeff.com/RosAgriculture/readme.txt
http://sampson-jeff.com/RosAgriculture/ros-agriculture-youtube20211026.txt


Okay so last week I was saying that I Had my uh steering put together and I Showed various pictures so you can go Back and look at that see what I was Talking about there And uh I think I did I think I was Saying last time I couldn't get enough Uh range out of it and I might have to Rebuild some stuff So I did indeed do that so if we come Over here and look at this screen share Screen Screen one Screen two Okay so assuming you can see that There's the uh The bottom of it here I I The problem was up here at the top can You see my cursor when I'm doing this Okay so I so Um between this point between the axle And the motor here I have to get a nut It goes on the back of the bolts that Goes through here and after I at the end Of the last meeting I said oh well that Doesn't fit I'm gonna have to move the Motor so I drilled some new holes and Moved the motor down half an inch or the Whole Servo down half an inch and I made This plate on here longer And so if I put this back straight you See the these would line up straight Across here like it did like it did last

Week And when I was playing with it I noticed That it would get this far and as I'm Pulling as this plate turns to the right As I'm pulling on this that's at the We'll call it the bottom dead center of That crank it won't I can't pull it any Farther it you can't tell by looking at It you know because it's got all these Weird angles on here but that's all the Farther that wants to go and that also Means it can lock up in that position I Thought well that's not really what I Had in mind So I went back and uh Let me do this Let me do this Speak review So I went back and modified it to do I modified like this So I ended up turning the motor turning The servo around again so now the motor Is down at this end and the shaft is up At this end and made a little short Plate and moved these uh these uh ball Joints move them up close to the axle Here And now when I turn it I can get the uh Get it to come all the way up to about Here when I do that and I'll show you That in a second uh let's see what else Do I have right here uh So I'll just show you the other picture I guess that's so I so that's what I did

I remade those pieces and let's go back To the screen again Screen one Here This one So here's the here's the thing I was Just showing you and see if we zoom in Here and look at it you can see that With it cranked all the way right see Now I can pull this all the way over to The uh up against the axle there and I've got a pretty pretty sharp turning Turning angle there and the main thing Was I just didn't want it to where it Could mechanically lock up and Then I'd be screwed so that's That's why I went to all that work and Now when I'm all done it turns out that Here these two bolts are too close Together and these ball joints are Rubbing on each other which is not what I want so I'll probably have to go Through yet one more time and make Another plate and drill a hole out this Way and drill a hole out this way to Separate those two and I've got room to Do that because you can see on the Threads here I got enough threads that If I separate these out by get like a Say an eighth of an inch clearance Between those that that should work so That I think I'm gonna be fairly happy With that the only problem is I was Trying to run it last night I had it

Hooked up to a random battery it was Laying around And at first it was moving back and Forth kind of slowly and then it started Clicking and chattering and I noticed The lights on my little Servo box were Were flickering and I thought oh man I Burned something up or blew something up And the more I looked at it I decided Well maybe just the battery is dead that I have it's just a random lead acid Battery it was down to like 10 volts or Something Um and Let's see do I still have this picture Here just for kicks okay so anyway I Decided it's probably the battery and I Looked around that's the only battery I Have other the one that's in Sammy and That that one's big and heavy and I Didn't want to move that around so uh I'll either have to get another battery Or get a power supply to run the thing From So that's basically uh where I'm at Right now So any any questions on that So you're gonna Leave the servo pointing I'm going to Say down the way you had it or you're Gonna Turn it back around now I'm going to Leave the way it is right now because That's the way it has to be that way to

Fit in there so that's And assuming I can get a a nut on that Bolt which looks like I can so I think That's pretty much Where everything's gonna be now It's just that I have to redo that plate Move those two two ball joints apart so They're not scraping on each other It definitely looks durable Well we'll find out we'll find out how Durable it is it could be once it starts Moving it'll just fall apart so that's That that could be a problem Well I mean you're where it joins with The chassis that but you think you said Last time you had like eight inch metal Or something on there that should be Fine well part of it is and part of it Is 16th inch metal but still it it might Be okay We'll we'll find out That looks good I mean all the Mechanical stuff always takes me forever It's been taking me forever too It all takes me forever So that's all I got Uh okay let's see where that share Button is Um So let's see I created a map I drove around I moved the The [Music] Um

Zero zero position around a little bit I Think it's pretty decent Um These are a couple of You know I do have a problem with the Tractor not showing up here but we can Talk about that in a second but I mean So I drove between that building and That fence and you know it's looking Reasonably like it's in the Center Drove up into Up and around this and you can see you Know again it looks Reasonably Close to What I would want it to be Let's see this one I do have some Adjustments I mean I This is a [Music] A set of grass decorative grass and I Drove up around And I think I clipped my Map a little bit too short but anyway Um I think the you know the converting the Pixels to Meters and all that is working Um Decently at the moment so that's what I've um That's one of the things that I got Going on

Um Let's see what else did I want to Mention Oh I was playing around with the Geo nav And it is this flat on to x y coordinate Code and I moved that into a separate um Python file for two reasons really I was Thinking no maybe I'll See see if I can get away from having to Bring down that whole repository plus I Used it to validate The origin statement Um That's It's up here in the GitHub now that's not the one that was Reading a parameter that I'll talk about In a second Um So this just has one Import and these are the things that I Copied Foreign To be able to um Give it two light Lawns and figure out What the X Y distance is between The two so It's about 140 Lines long And then this was Meaning comparing the lower left lat Line of the map And the zero zero position and that's Would you know it's within a half a

Meter with um what I came up with just Visually so That was that worked out pretty well Um So instead of using the Geo nav Library You just copied the code out of that and Stuck at your own program is what you Did I did yeah Because that I mean that repository and it's it's got So much in it and it was um That I was trying to follow code around It was a little bit confusing so just Sort of pulled that out It's the GPS to Odom program that uses That And then I was messing around with Uh Parameters I was thinking I was going to Want to store the last Parameter because I'm still Thinking about Creating a second Odon Uh topic one that Comes from the wheel and the IMU so that If I lose Rtk I've got something to go to but Um So anyway I was playing around with Parameters and looking at parameters and How to deal with parameters that have Been a while since I Had looked at that there's another Program I put out there

Um Where I just have a text file what I've Put a lat long position in and then I Write that parameter out and then This reads it back in and Prints it just to make a full circle Anyway so that was just To remind me how parameters work and how To Use them in a Python program What else so I had to I put my PID updated the OLED a little Bit on the tractor on the ttgo board to Display the pind Setting so if I have to change that I can sort of see that on The tractor without having to go back to A laptop or something So the next issue is to resolve this TF Issue Uh Um do another test run Pick some points on the Map and ingest the 2D nav goal and see How it does and in the meantime also Think about Creating an Odom statement from the Wheel and IMU data That's where I'm at and then you you Said yeah on this TF problem three Frames listed are supplied from your Urdf5 or it had errors or connections

Promote onto base footprint yeah those Are good things to look at I am On the urdf file My bring up Process Uh Let's see the urdf file is going to be In here And That at the moment let's see where's the Best place to go look for that See how this is getting bloated see I Hate that and so I want to like get rid Of some of this stuff Um Like they're quite remember whether it's A navigation or Sim So There's the yaml File Huh where's the urdf That's been in there Well you may have Uh Let's see That's not in there There it is Oh it's gonna be in the um So I have to check if that's throwing an Error but that's the um That's where it's coming from Contractor urdf lawn tractor Sim urdf Instead of the point where it runs right Now or is it oh everything turned off

You mean at this very moment yes Um I mean the I don't think the GPS has turned on Yeah I know the GPS isn't turned on Ross I can run Ross but There's no GPS data to ingest and that Would be inside the garage so it's not Going to get rtk But I can run it Um try running it and see how far we get Here 16 29. Yeah see it doesn't like that the Doesn't like that the um Foreign Just stopping it to see if there's any IMU is complaining about The power is turned off to the IMU Well then go back to uh one of your Images that showed your arviz screen Where it said you had TF errors Go to the one where you've got that Expanded out where it says something About status under TF And right right there that yeah that'll Give you one right there So they're on the left can you zoom in On that where it says TF So it you notice it says base footprint No transform dot dot dot well if this Was running if you put your cursor on That I think it'll expand it I'll tell You what that whole line says so it's

Probably going to say no transform Between base footprint and Odom is Probably what that's going to say And then like likewise on the Baseline Yeah that that's telling you what it What what is not working there and if You don't the other option is you can Grab that that bar in the middle and Drag it to the right to make that make The Box on the left bigger and you can See more of what's there but just the Fact says no transform that's just part Of the message so it's telling you what It what it can't do so the the one for GPS probably says no transform between GPS and base link and base link probably Says no transform between base link and Base footprint and base footprint Probably says no transform between face Footprint and Odom So the rest of that message you started Reading there I said one of the other Problems is possibly your your ODOT your Your GPS to Odom publisher is not Putting out the transform Between Odom and base footprint so That's a another another thing it could Be And then I I forgot what the third thing Was I said on there But anyway keep keep in mind this this TF is a fundamental thing you should Always have displayed on your rvis and Then when it gives you those messages

Out there But at least in this case if if you look At those messages it'll it'll it'll give You a little more information but just Be aware that you know there's more Information there you can look at Thanks for that yeah I'm um So are you running this one or you had Something called Nema to Odom is that Which one which one are you actually Running But at the time I assume you're running This one and then you later change that New program that you wrote Yeah I let's see where did I put it Well let's see Did I check there I think I checked There I just had a different uh GPS to Odom And I didn't named it number two Because I updated the um Data the GPS coordinates and I was going to muck Around with it and just wanted to leave Leave the original there Anyway Um Well since it's complaining about Transforms one of the the things you Want to do is fire the system up and do The thing that shows you your that Transform map transform tree whatever it Is and see in there where it's Disconnected I assume it's uh it looks

To me like you will not have a Connection Beyond Odom so it's going to Say mapped Odom that's probably all You're going to see on that From that because I think As I say one of two things either your Your GPS to Odom program is not Putting out the the Odom to base link Transform like it's supposed to or Because something's wrong with that urdf File or the urdf file is not running or Whatever Those are good things to check I can I Think what I'll do is um Hang my um Hang my antenna out the garage so I can Get rtk and uh I'll be able to run that So this is the one where This is one where I'm actually running It Or I actually ran the last time because It's Going to Uh Odom 2 that's been supposed to be There Yeah that So that is supposed to Long tractor Navigation let's go back there Is going to be relatively painless to Put your antenna outside and turn Everything on because we could just Pause the video and you can go do that When you come back we can We could actually run it if you want to

Do that Uh sure it is it's pretty painless it Just takes Eight minutes Okay well we can we can put it on pause When you come back I'll see you I'll see You there so okay I'll be back in a few Minutes okay Uh so Jeff was going to try to help me Debug it I got my GPS connected Um unfortunately I can't seem to get a Clean GPS signal ingested into Um GPS odom.pi at the moment I've got a Couple of um Vague error messages that I need to go Chase through one hypothesis is not Gonna Printing to a Serial port and uh Messing up the driver.pi in the Geo Navset driver so that's where I'm going To go explore Back to you you might put some extra Print statements in that driver you know Say I got this far I got this far so you Can see where it where it died on that That might that might be of advantage And on that driver where it says you Know input one line of text from the GPS Then go ahead and print that line on the Screen too and then you can you can Basically watch it run and see see where It see where it crashes that might might Be of some advantage

See also  11102022 ROS Lawn Tractor Meeting

Good suggestions I have a Print statement in there that I just Commented out to print the actual Sentence I can just go and comment that Yeah that'll show you if the data is Actually getting in there and then but There might be something then later on But first of all look at that data Coming in and see it doesn't look valid If not that'll Tell you if something some setting Change in your GPS or whatever so it Might be putting out you know something Something it doesn't quite like So to do that first and then if that Works then you know go a few lines Downwards trying to decode that and then You know put some more print statements Just so you can see You know so basically as it goes through One Loop you know does it does it go Through one time and crash or does it Crash out in the middle somewhere so That's just some things you can try on That mm-hmm So I'm good Jeff Okay so so Terry has joined us in uh While we're on our pause break there uh Terry do you have anything you want to Say Um I'm very very new to Ross I'm Just loading it for the first time today Onto a laptop that I Resurrected

Um My goal is not necessarily agricultural But I want to Have something that will clean my Driveway and uh sidewalk of snow Um And so my kind of my first phase is Going to be resurrecting my old robot And getting it to work with Ross for a From a localization standpoint And then my second phase will be to Build a second robot that will be uh a Four wheels I'm guessing a skid steer That will uh Have a rotating brush On the front for the snow removal so it It won't do deep snow But if it runs frequently enough Since it's going to be battery powered Hopefully it'll be able to keep up with The snow and at least get it off the Driveway I was thinking about that you've got Such a small area you're driving your Sidewalk in that big just running an Extension cord out the thing and power Powered off 110 volts In fact not only not only could you Power your blower but you could power You know a power supply to run run your Laptop and everything on the thing so You know just plug it in the wall and Then to turn it on and So that if we two different ways to

Think about that Yep If if it if the uh lithium ion I mean Right now I'm going to go with the uh M8 Milwaukee M18 Lithium blocks just because I've got a Bunch of them from my drill and other Utensils That uh I did uh Get This handy little Thing that gives me the power leads from The battery so Where did you get that Um Amazon I think I got two of them for Fourteen dollars Um I I could not find any that had that Expose all five leads from the battery Um I noticed that my charger uses four Of the five Um basically they had the uh battery Plus and minus They have a center one that's for Charging the battery And then there's a Um Data one and data two That I'm they it's sounds like use a Proprietary uh Protocol similar to the SM bus Protocol for battery management but

Yeah I think if you do enough searching Somebody has figured out what all that Stuff is and they can tell you you hook Up this and this and this and this is The way it works so But uh that thing I I Found where it'll um Where it says what the leads are but I Haven't found anywhere that it says what That data protocol is Maybe go to hacked it up Anyway you were going to say that about This thing that I held up yeah the thing You held up I just assumed you had to Make those I didn't know everybody was Making something you could just buy it Off the shelf and plug your batteries It's got three three holes Already drilled it's got the two pro two Prongs which are the plus and minus from The battery And then it's got a fused Heavy cable So I plan on mounting those vertically And then just being able to drop in the The batteries they're uh the one I've Got right now or I've got a bunch of These uh I think they're uh three milliamp hours Not milliamps three amp hour 18 volt So we'll I I don't expect that that would be Enough for uh driving the blower and Everything but at least for my uh phase

One it should be sufficient I may need to have two in parallel but We'll see how it how long a battery Lasts You might be careful putting those in Parallel I don't know how well that's Going to work again go out on the Internet and ask people is that a wise Thing to do so From the sounds of it the um discharge At Um in parallel isn't the problem it's if You try and charge them in parallel Because then the the because they've got Internal smarts in each battery that Manages the charging and that gets it Confused You already have a charger right so Right right okay And I plan on putting uh Just an a to d Through a uh Voltage divider to measure the voltage To determine when uh When it's getting too low and hopefully Be able to have it send uh Out of Ross message saying I'm I'm now At 30 percent And then again when I'm at 20 percent Well to the degree that it's helpful Um The I try to take notes as I'm going Along and I just put a link in the chat With uh where my notes are I mean so for

Example installing Ross Uh setting up udem rules there's a few Other things out there that might be Helpful to you or Um but again they're not written with Publishing in mind it's just uh Take some notes and hopefully somebody Else might be able to save a step or two So that they're out there Thank you And Jeff I while we were while Terry was Talking I took that Nema It's not even getting to that part where It prints the nema's sentence so I'm Like I'm really aggravated now So the parser is blowing up maybe there Is something else In that stream that the parser doesn't Like Can you start up just that driver on its Own and get it to run or do you have to Run it from the launch file I I mean I'm I can I don't have a launch file to do that Yet I can work on that I was wondering to give you better Information doing that but but possibly Not if you're starting to you know from A launch file one place another I don't Think it's going to give you extra Information but You know what's right in but when you Say you started it and it doesn't get

Towards inputting the data what what Happens in between there Well the um Let me just share my screen here I get that you know pay it finished Cleanly But what I was expecting is Some uh Sentences triggered by Uh where did that sentence go This is the Driver not the parser Um And [Music] I know it was by to check something Yeah here's the sentence So I don't get it just doesn't get to That Point so I was gonna go find Nema string And see where's the exact absolute Earliest that it finds it in this We might just want to start at the Beginning where it says import your Files and then initialize this and this And this and see how much of that it's Getting through apparently it's it's Because it as you say you're not getting The it's not inputting the the data from The GPS but a lot of stuff had to happen Before it got that far so apparently That's you know it's just randomly dying On something it's trying to do Yeah so this ad sentence doesn't

Actually have a reference in this Program so that how is that so it must Be like I mean from a class or something [Music] Um Well I'm gonna have to leave it For now and do a little bit more um Seeing why the heck that's not uh Hitting very far So this class Can I put a debug statement in this Class at the beginning of this class I've not written classes before I would Think you could I I'm not I don't uh maybe imply to this and that I noticed you're too Communists there One of them One of them has the three marks at the Beginning three at the end and the comic Just below that you only got the three At the beginning so maybe maybe one of Those comments is wrong and you've Commented all your code In fact all the stuff isn't think There's probably commented out Is it supposed to be Yeah that's not my code that's straight From the driver I mean it looks like it's the Ross Parameters saying what is passed in yeah I guess I guess that is supposed all Supposed to be a car and their line 81 Has the ending triple quote okay yeah

[Music] Um So are you getting that debug statement There That's it you just highlighted let's Just go see Right there So it says you got that far so you know Just go down through the code and figure Out what else to try to do there What's it do it's building a subscriber Building some publishers You know so anywhere anywhere along the Line where it's doing that you just put Extra statements say I got this far and Then you just keep working down until it Thinks it's it's happy And just see how far you make it through There yeah Um So Terry I just wanted to comment all of Your your use cases are fantastic I Think that's awesome I have A dozen or so use cases in my head to But I just need to get a vehicle that Can Drive from point A to point B using Ross And uh well that's that's what phase one Is is to do yeah Get it to go from 0.8 Follow a route And return to its origination point And then I'll build the second uh Robot

That um So anything we can do anything I can do To help it be happy to Um My knowledge is generally captured in The notes and so you can see generally How far I've gotten based on The notes that I've taken Let's see if it gets to there It does get to there And then it just scroll that scroll that Go back that screen and scroll that back Up to where it said something about GPS Shutting down what is where is that Coming from Scroll up it was in some colored thing Tell me if you see it Right there at the top so GPS Odom Shutting down scroll back up so we can See what's in front of that the very top Line you can see there no here's the Command yeah I know but above it says There's a that line in yellow what what Was happening at that point Probably me pressing Ctrl C Oh damn GPS Odom so that's not the Driver that's the uh but it's the driver That's failing seems to be at this point Um All I know is it gets to this point and Then it's I think it's the parser Um but Don't gotta add some more statements Here to figure that out

Okay [Music] And I'm not sure So this That ran And that oh that's is that supposed to Be that color Yeah that's in the qualities See if I this is still running if I Press Ctrl C That's when the GPS Odom shutting down okay I got to that And then finish this cleanly I hate bananas So these are I don't know what the right Python Language is a function or That looks like it the kind of the Reddish there that's a comment No I I was uh This Like if I put some it's not getting to This right so there's no output from That And I as far as the routine goes I'm not Sure where it goes to next I believe Maine So that that line that said add Statement is that you say that's not Ever referenced anywhere else in this Program And statement if I do a con if I do a Find on that I don't see it it doesn't I

Get no hits Add sentence Say one of one Hmm So when you you do your Imports is there Something that's Why this program is not Mine this is a Ross Deal but here are the Imports From Dot parser So I've been thinking that in that Parser then that they're importing is Probably where it would be calling that Ad sentence I had some recall going through this one Time a long long time ago I don't Remember now Yes so I'm in the parser I'm looking for Ad sentence no results I would think it would be above the Parser and then it that it would the Something we'd call the driver do the ad Sentence and then call the parser Yeah that probably makes sense And so is this go ahead So what what instantiates the uh the Driver Yeah what uh that I was just gonna go Look for that I have forgotten to answer Your question Um Scroll all the way to the bottom of this File that's that's where it's going to

Say Main and start everything up I think Yeah it has Arithm Laughs Yeah this is probably getting called by Something else is so yeah I I don't know Come on you're on the master programmer Of this outfit Jeff well I I I'm not but But to back up here the stuff you're Showing us right now is this changed From last time you're running it or no Not at all I have just the exact exact Same stuff that you're running the only Thing I've putzed around with in this Driver is adding uh these comments so I Can figure out Um What it's doing But this So the other thing that might have Changed as they say if that if we are Printing out those messages and we Decided that possibly that the the B and The character and line feeds are Actually is that's being added by your Python it could be that for some reason Your GPS has decided to change the Output Format enough that it's just confusing Everybody but it seems like your your Drivers here should say oh well gee That's invalid and at least print a Message telling you you got a problem

There That seems odd that Yeah I know So to answer the question on and where It gets instantiated Um This is the launch file And it's firing up You know Inside of this package that And this is the file structure that Shows that This is all Ross code Um And so there's these Uh you know where is I look in the the navsat driver Well the navsat driver This is the Um This is the whole package right Okay where's the doc say Ask that a different way I didn't Understand Um I I see that there's that doc I'm just wondering if it says Uh I've never actually looked at this Stuff I don't know what an rst file is I probably need 200 lines of code out of This whole thing and Foreign What you might try is Uh exit out of Ross shut down any Ross

Windows you got running and just do Another cat can make and see if that Fixes things Now that's a darn good idea because I Have let's see Um it could be something and Ross isn't Shutting down you've got some extra Windows open you don't realize so make Sure Ross is completely dead before you And then if something is still running In Ross make sure everything's killed I suppose you can go out into a PS Dash EF and grep for Ross and see what Does that make sense that is an awesome Idea because this Jetson nanobot Um I was looking at this guy's stuff on Creating the second Odom and His cat can make statements where just Rebuild mine and so I have been running Cat can make just To create this and I wonder you could be Definitely um did you change any of your Uh Source statements So if you're running somebody else's Stuff You know like in your your bash RC where It says Source something cat can Workspace No I'm gonna touch my bash RC But I think you're it's a good Suggestion anyway to go back and do Another cat can make Um

And see what um See what we get So um Before you do that oh no never mind What were you going to say as you can Say do a PS Dash EF Pipe to grip Dash I Space Ross and they'll they'll tell you Anything that If there's any Ross processes running Those should show up So do uh PS Dash EF Space Pipe Space grip Space Dash I Space this is ignore case then say Ross And do that what's that show you So let's uh there's nothing nothing Running it has the word Ross in it so it So Ross is probably a complete shutdown At this point And so And that that just simply said that's The command you just typed in that's why That's it's saying oh I just ran a Command grapping for Ross so that that Didn't tell you anything right there Other than that yes you just ran that Command So let's go your cat can make again and See see what happens And is this So it worked

You know nothing blew up You know if I'd say try again if it Doesn't work then go back and delete Your devil file and your whatever what Do the list right there Do a list LS an LS right there So it's the the build director in the Devil directory if you delete those and Do a cat can make it rebuilds everything So it it So go ahead go and try your your GPS Thing now and if it if it doesn't work Then go delete those two directories and Do a cat can make Same It got after Their mind some place and died You do say it does say message is Miss Zero so is that coming out of the same Program or do you know where that's Coming from If I I do not know where that Is coming from if I um Go back to driver It's not in driver It's not in parser Yeah son of a bug That's why it's always handy on those Messages you print out put the put the Program name you know in in that so you Know which uh program is putting those Out but So so now you got the problem you Started all this crap up you don't know

See also  Lawn mower won't start

Which program was saying that so You know possibly digging through your Log file it might it might tell you Which uh program actually put that out But So anyway back back to the thing we're Talking about before if you go go back To your your screen where you're doing The make and uh right there if you do an LS just so you can see what's there Just type elements there Yeah that's And see on the left there it says build And devil directories so to remove both Of those you can do an RM space Dash RF No Uh let's see Dash yeah Dash RF Space build And then do the same thing for devil And Linux you might be able to put both Of those on you know just say build Space devil it might do them both now do Your cat can make it it's gonna probably Take forever to do it but that that Cleans out all the any other crap that Might have shown up from uh you know That other stuff you're playing with So while this is run and I'll just point Out Terry is also here in Minneapolis so He's got the same amount of snow I have Right now and I've I've gone out you Know three or four times the last few Days and shoveled snow and I've got you

Know another another four inches of snow On the ground since yesterday so Yeah that would be real Handy to have a Lot or a snow blower say go go take care Of it for me I I had to get up at 4 30 so that uh she Wouldn't be driving over the uh The snow and packing it in the driveway I I will tell you Um I have happened to be in Pittsburgh I Happen to meet a guy who invented Amongst other things Um CPAP machines and I'm like oh well That's interesting what are you working On now and uh He Wants to remove snow with you say a snow Blower it literally an air-powered you Know not the rotating shoot it out but Just blow it with Um Uh What uh High pressure air yeah Yeah speaking of that Terry do you have A air compressor I do What's what's that complaining about on The screen is that or is that buried in Numpy that it's So blah blah blah Got never mind Try that take a hose out and get one of Those those blowers and see if you can

Just blow the snow away Because not only could you drag an Extension cord you can drag your air Hose behind you and and just have it Drive around blowing the blowing the Snow off that way somebody else said use A leaf blower do you have a leaf blower I do and I've tried I've tried that Before and it's not strong enough Yeah because the snow we have right now Is at least yesterday was it was light And fluffy and and not right at all so That might you might be able to use a Air uh like a leaf blower on that But the snow that we had last week was Very heavy Yeah yeah So it will take more than air to get That going Well gentlemen Um don't feel compelled to sit here and Watch this son but Um If this doesn't work I'm Like And I'll put some put some statements in That parser and see if I can figure out Where this Diagon program Is there a way to Um Kind of pause it And look at what the call stack is In like a debug mode sort of thing yeah Uh I've never seen that in Ross Jeff

Have you Um well down at the python level you Might be able to do something you know Each one of these it's a Python program You might be able to do something in There That's why I was asking could you just Start it up on its own because you might Be able to go in and Um run it more manually too but I I Don't know I don't know that much about Python I fight with it anytime I try to Do anything Oh one other what other comment I keep Going back to that you have that little Python program that reads the GPS and Prints the line out I said it looks Funny but you know your documentation do You have a screenshot of where you've Done this before where you ran that Program and got the output and does it Look the same way or has that changed on You in the last couple days So you've got tons of documentation Logging stuff I just just wonder if you When you said I created this program to Dump out the GPS you know did you do cut And paste cut and paste it there so we Can see what it looked like before Because it is very possible just python Putting that extra stuff on there But I I seem to remember seeing that be Apostrophe and that indicated I thought Like what the data type was

It could be that's all it is yeah but Then I was noticing buried in there is The character from Line Feed which they Are inside So what These are Not using that GPS dot pi Read Line Print Line This is coming out Of the The driver program the comment the the Sentence I uncommented that it's not Getting to But I thought that'd be a quick way to Verify if you did have an actual output From that That program you'd run before you could Just you know quickly compare the two But If you don't have it I guess that's not Going to solve all the problems Yeah I'm not sure how long ago I wrote That Um That's something I didn't provide much Documentation on that's just a copy of The program And on python when you're doing a print You can there's all kinds of clever Things you can do to say what you want It to come out so possibly you can get Rid of the uh The extra that be because the the Apostrophe says everything within that Is a a quoted string and then at the end

It probably had another quote to end That so it's very possible that the B is Telling you something but I I would Assume that meant it was binary which I it seems I it might be binary because of the way You know just your your four or five Lines the code you wrote there that's How you got it to work but So that's just a thought that maybe There's something funny there with that Yes If I cleaned out all of those unneeded Libraries that this wouldn't take so Long well I was just thinking that some Of those unneeded packages like you know All the the simulator stuff you know you Loaded all kinds of crap in here the Uh you could probably make separate you Can probably make separate workspaces And that way you know when you make Something new you can have a separate Workspace for it so you don't have to Compile everything At the same time you also might run into Problems with all this stuff in the same Workspace that you know things are going To eventually start conflicting Um you know you compile it and it's Gonna be trying to use the wrong the Wrong libraries or whatever so that that Could be another problem Yes I will definitely um Nick liberal used to have separate work

Workspaces going forward It goes back to um Well See this Hector gazebo that I'll put your stuff in a separate Workspace I call it your stuff Well this is like watching paint garage Gentlemen It'd be nice a little bit faster if it Told us how fast it was you know what it Was Is that 32 on the side does that mean of The entire process or it'll probably Then it'll pop up say oh starting at Zero again so well That's other interesting things to look At my recollection is it's the whole Process Because it's in the building phase yeah So it's it's a third done and yeah all That that Hector stuff that is building That is Foreign Way too much stuff for you know since You don't need any of that right now That that Would be nice to get rid of that stuff I tend to dump extra stuff in my Workspace but usually it's you know what I'm trying to do At the moment But at least on my robot computer it's It's done for you it just has basically

What it what it needs to do that And there I think I had a separate Workspace for that simulator and that That stuff too so Foreign Could probably tell you I would do it This way this is the this is the way you Should be doing it and I as I was Telling Terry before I don't do enough Ross anymore to even know You know what's what's the best way to Do it or when something fails you know I Just I just know how to poke at it and And hopefully try to fix something so Um Terry in this File Uh there's people who put out some Pretty decent Educational tutorials Um if I were starting again I you know I would um look at some of these guys Okay where was that again It's Uh project support files and it's Ross Robot creators Okay He posted it he posted that link to chat This tells where his GitHub supported Right so whatever that is what he's Saying Yep I've uh Opened it up and actually uh bookmarked

It Yeah I think Ross is getting to the age Where there's more and more people that Are making videos about it and so There's a few that have stood out to me That are Pretty well done So I'd say when this is done building Try your driver again if it still Doesn't work I I guess you're just gonna have to poke Through it and figure out why Why the two are no longer happy with Each other Okay What what one other minor Point uh when You run that Python program that puts Out the Nema sentences You know verify that it that that and Your your driver are both talking to the Same uh device you know you said you had It renamed you had a a Udel file to rename it to GPS you know Make sure that They're both talked make sure one of Them is not trying to talk to trying to Listen to the IMU and the other one's Actually displaying stuff from the Actual uh GPS And what I told you to do that cat on The the device name well it turns out Since this is a uh uh a USB type device You know like a USB zero type device you Do have to specify a bond rate so in

Order to get that cat to work somehow You have to go out and say go to that Port and set the baud rate and then do The cat and get it to come out And but if it was like uh what's that it Was like a TTY zero type Port no ACM It's an ACM zero type Port that one There's no baud rate involved so you can Say cat and whatever's there will show Up on your screen Foreign So do you know the syntax No I don't Just go search for uh Linux Uh Port maybe Linux command line Port Baud rate It might tell you how to how to do that Let's say in here you've specified the 115 Um So so right right there keep in mind That says Dev TTY USB 0 but you said you Had an alias to GPS So is that is that a difference You haven't changed That it definitely should be changed Because TTY USB 0 might be something Else you're talking to right now go back And do your Dev list again So somewhere you can have there's an ACM Zero TTY Do the do the same thing but put slash TTY asterisk on it so you won't see Quite so much junk there

Slash TTY yeah asterisk So okay you've got it you've got a USB 0 And a USB one out there so it could be Your that uh see how do we know what GPS Say LS GPS what does that do Well I think you have to put Dev in Front of it oh yeah okay yeah do that I just wonder if it's gonna tell us what That's linked to Uh see how do you do that say say LS Maybe Dash Al Slash Dev slash GPS There's your problem That's that's pointing to USB one And your python programs pointing to USB Or your your thing you run is pointing At USB zero so change that to GPS And that will probably solve your Problems Why did you make me do that Uh do you do what the rebuild or Or you mean why did I why did I make you Put the wrong stuff in there Yeah why'd you make me put the wrong Stuff in there Well I was giving you an education Opportunity yeah there you go wow well Said oh so well said Although the the debugging stuff that we Just did should you probably won't Remember them next time but And the reason the reason why this is Happening is because you created that

You Dev Rule and said uh somehow you Said when you plug in the GPS you want To be called GPS but now you've got a USB 0 to USB one so you've got two Devices plugged in that show up as you USB devices and the GPS figured it out And points to the right one because you Know Python program proves that but your Other program is pointing to the Hard-coded USB 0 which is somebody Somebody else so that's I don't know what else I Um so so devices you've got plugged into The computer is what what happened so Um If you have say uh I think the uh like Arduino Nanos will come up as a USB 0 USB type device Um Yeah and so the reason we're getting all This output is because now it's getting To that um Uh what are we looking at here The the Nema strengths that it's Ingesting so it finished and it's Actually ready now yeah Well then you should be right back to Where we started You could you could fire it up we can go Look at our viz and see why your your Transforms aren't working I didn't type something right but it Might not type right Ross topic of topic Uh oh oh never mind

I was gonna say oh there it is right There in front of us I guess we already Looked at that's that's all we knew it Was wrong so yeah and we're getting rtk Too because that's the status too So I would say at this point fire up a Window and do your uh print out your Your frame tree whatever that's called I Forgot how to do that You know view frames or whatever Whatever that was Well Well I don't have the full stack running Yet but we'll see what it says Beautiful And get better than that That does probably look correct so I'd Say fire up the whole thing and see see If it's still complaining Uh It's all that's Terry did you did you go Through the Ross tutorials out on the The Ross Wiki not yet I was wanting to Have A version that I could play with And you'll you'll find when you say a Version well it turns out you're Probably gonna reloading this stuff Multiple times because you'll get so far And think oh this doesn't work anymore So Your TF is not complaining now But I don't let's see You're right it's not so so zoom in on

Yeah zoom in on that spot right there And that looks like your TF marker is There so that So one of those is going to be map and Odom on top of each other and one of Them probably the one right in the the Lowest one there that's your actual Vehicle So let's see let's go look do you have So if you just turn on your robot model It should show up on top of that That one down there Just On on that are nervous to set the check Mark that says display Robot model yeah right there I'll be darn there it is so it's uh not Where I expected it to be oh I see see The one down below that is your zero Zero point that so if you look at that That's map and Oda another one down Below That's going to be mapping Odom on top Of each other and then the one on base Link back behind your axle and then the Then the GPS is out on the front Apparently Is that is that where you want your GPS On yours it's actually back closer to The back isn't it You mean physically on my tractor yeah Yeah it needs to be moved back but I Mean we were this is this is uh you're Playing with darts here close enough

Okay But yes it needs to be back here but but Normally I would run with your robot Model turned off and look at your TF Data so you know where where things are Yeah the the Rope the robot model is Really just hiding the stuff that you At least at this point you really need To know where those those markers are as You drive around so So that right there where it shows zero Zero is that the point in between those Two walls there is that where you expect That to be Um it was a course In the course level of accuracy but yes Directionally yes I mean it doesn't I mean we can make it Anywhere right but um It just happens I believe so yes I'm just wondering the point where you Wanted it to be is that the way it Showed up on the screen there yes Absolutely okay So I just out of curiosity though what Is Where where is the is that inside your Garage the tractor right now or is your Antenna just simply laying out in the Driveway is that why it Shows the tractor out there Well the antenna is about right here But remember GPS Odom the program

See also  Newair 48 Quart 12/24 DC and 120VAC Fridge/Freezer Combo With Direct Solar Input!

Has hard coding in it Wait a second here you see your antenna Is down there below is that your your Reference antenna or the vehicle antenna The vehicle antenna I have a I don't Know a 30 foot Uh cable extension That I Pushed under the garage door and moved The antenna over here So I I would expect your vehicle to be On top of wherever and antenna setting Right now But maybe maybe not Well let's fire up the rest of this uh Stuff and see oh yeah you don't have Everything running do you okay So once you do then maybe that'll Uh fix it You may not want to rely on those Numbers being permanent forever You might be better off copying the Whole command line Or you can do a list and then look at to See you know what or excuse me do a History Each time and then then type the number But Just just just to warn you those numbers Are going to change over time Thanks for that Yeah why isn't that not where the Antenna is I think if you'd pick up your antenna

And carry around your tractor should Follow you you know that's the I think The whole point of what we're trying to Do here Do you want to run downstairs and move The antenna and see what you see Could do that Do you mind hanging on What else I've got some time but I'm Gonna go grab a drink okay I'll put up I'll put it on pause it and see if we Start moving then we'll we'll unpause it So we can see what's going on okay I'll Be right back I thought I did and We can see he's carrying the thing Around I see it's moving yep foreign Doubt he's walking through the wall yeah He said he's going to go down below and Walk around so it's either I don't know But anyway this is a good a good test to Do so he can he can do this later and See As he moves that around So we'll see if it moves back when he's Done Because the whole point of what he was Doing he's receiving a GPS position and Then saying that's where the vehicle is On the face of the Earth so his his Vehicle should be showing up wherever His antenna is in it I'm guessing that's Not working right so either it's Um is the angles are wrong or At least it's talking to it because you

Know the thing did actually move So when he gets back here he'll tell us Where you where you moved it and we can See Where it's supposed to be Now just just to go a point beyond that People will normally take their wheel Odometry and their IMU and a bunch of Other things and merge them all together It in order to figure out where they are In the world but people have figured out If you just take the GPS if you've got An accurate GPS you just simply read That and say that's where I am so you Bypassing all the other crap so that's That's what he's trying to do right now He's taking the actual location from GPS And putting his tractor on the ground at That point so that's that's what he's Attempting to do How accurate or is he getting with that GPS and what's the cost of the unit Well I I can answer that I can let him Answer that I think it's within a centimeter or two That's good enough for me My I wouldn't buy what I have again Um Because I spent a fair amount of money on The one that I have there is less Expensive Who's the outfit are too simple

Making Rtk units And that's what I that's what I'm Running so I out what Al has was around Two thousand dollars and the one that uh Kyler has he Kyler's the guy that makes the Autonomous tractors and he's got like 10 Or 20 different GPS's he's paid anywhere From five thousand to ten thousand Dollars a piece for And at danfoss we started off on the Cost is eighteen thousand dollars and we Bolted on it worked great but it was Eighteen thousand dollars that was Somewhat of a problem so when I'm Running you can buy the board for two Hundred dollars and then we I and very Sorry people decided to spring for these Survey grade antenna so that's another Hundred dollars so for 300 you can get One to two one to two centimeter Accuracy And for correction data I just use the Department of Transportation uh Correction server that's free so you Don't need a base station to do that but It's still going to run you that's going To run you 300 or you can go with the Previous version it'll run you 75 Dollars but you have to then run a Program called rtk live on a computer to Crunch the numbers for you so that way You can either 75 receiver and a 10

Antenna But it's it's it's it's it's it takes Longer for it to lock on and it's just More of a pain I I prefer the the 300 uh Version that I've got now that seems to Work well you turn it on it pops right Up and it's accurate and works quite Well Foreign So what I can tell by looking at this is My Origin statement needs some more Adjustment because it the antenna is Physically about right here Yeah we were watching you do that and it You it started off at the the point Where it was and it kind of moved up It moved up a little bit and then we can See you walking over and you stopped in The middle of that wall right there so It You know we did we didn't see you walk Down or anything that that's just simply What you is that basically what you did You just picked it up and did split it 20 feet East Street Because it looks like Besides not going straight it actually Moved up as you did that too so you Might have something wrong with your Angles or I don't know well there's a couple of Cars in the driveway too it could have

Been deflection I could have lost rtk For a second No it's basically I do I could see you Pick it up and walk over there and but Part of that I when I first started Started moving I turned the recording Back on so you could go back and watch That and see what it did but So so anyway that see that that that's The whole concept before you start Trying to do autonomous driving you got To make sure all these little things you Know line up and you can control it and It's it's not lying to you which it Seems like right now something's lying To you as far as where the position is You just got to figure out you know why Why that's happening But it does indeed seem to be following Your antenna so your your vehicle did Move as you move the antenna so that's a Good sign And my TF is where it needs to be so um I just need to get out in the yard again And Get this map more correct What's TF You Jeff will do a better job than I Will Um TF is stands for transform so it Should be T it shouldn't be Tran it Shouldn't be TF it should be T but Transform is they've got this system in Ross that lets you that they have what

They call coordinate frames so your your Vehicle has a coordinate frame the the World map has a coordinate frame all These different things uh and your GPS Has a coordinate frame and you're Basically layering those all on top of Each other so in order to find out the Difference in in location the X Y and Theta location between two different Frames they created this this concept Called TF so they've got a program that Calculates all these transforms so Instead of doing you know three pages of Code to do this they just wrote up uh A System that will keep track of all these Different things in the world all the Time so at any point you can go out and Use a command and say what's what's the Difference between where my GPS receiver Is and the map origin is or what's the Difference between the GPS and the box That I have out of the world that's Laying over over by the building so it's It's just a quick way to Um Kick track that's how you keep track of Where where things are in relation to Other things in the world So this thing is showing here this is The transform tree so at the top it says That's your map that's like actually Your main main point you're gonna put That at zero zero and then from there You'll go down to the odometry transform

And the odometry transform is a way to Um Uh That's a way to give you an offset from Map now on what he's done right now in His his code he just said that Odom is On top of map so he created what's Called a static transform broadcaster That says put put Odom directly on top Of map and leave it there so those two Are going to be linked together but you Have to have them show up in the program Because things are expecting that so if You're running amcl which is Uh adapted Monte Carlo localization That's an extra program you can run that Will compare say a laser scan to the map And if the two don't line up it will Nudge this odometry marker around to Correct for where you are so if if he Wasn't going directly off his GPS like He's trying to do here then this Odometry Mark would be moving around but In his case it will not it would stay Right on top of map so then he's got Another program called uh see right There in the middle it says right under Odom it says broadcaster is slash GPS Odom so that's taking in your latitude And longitude from your GPS And it does some calculations and then It it says so so from Odom which is Currently at zero zero it it takes the GPS latitude and longitude converts that

To an XY offset and then says that's Where your your base footprint is so That says that in the world that's where The basically the antenna is going to be Located or that's that's where it's Going to put the vehicle out there Now technically Um so you're I I'm I'm a little confused I never Figured this out because at the bottom Is GPS is where the antenna is actually Is located yet it goes back and Updates This Odon marker the difference between Odom and your base footprint so that's Something we're going to have to deal With sometime in the future figure out Is is that right or do we need to add Some more offsets in there or something But But basically back to the point TF is Just a way uh that that's a fundamental Thing in Ross to keep track of you know Fundamental in robotics how do you keep Track of say like if you had a robot arm And here's an elbow and here's a wrist And here's the shoulder if to each one Of these would be a different coordinate Frame so each each one of those points Want to know from this point to this Point in 3D space how do you how do you Get there so so at any given point here You have to be able to calculate those Positions they just give you a quick way To do that in fact it does it

Automatically the background for you so You don't have to go through it Specifically say calculate this Calculate that and it's just keeping Track of that stuff all the time Cool So as you're displaying this transform Tree here as I say I just realized well Your GPS is down at the bottom yet it's Taking that and somehow updating the the Position of Odom all the way back here Or it's it It it's updating the difference between Odom and base footprint and not really Updating to GPS but It you know as close as the two are Together it probably does doesn't matter But you know in in reality that that's The thing when I was driving around in My yard saying here's the front antenna And the back antenna and how do I know Um you know how do you figure out the Difference between those and it comes Back to that same concept you may or may Not have to correct the for this by the Time we're done Yeah I mean I was just thinking as you Were talking about it Yeah I mean I have an IMU I could put a Joint here for the IMU I think this will Always be here to base link Um but we're just making two uses out of GPS I don't know what the right way is But um

And as as he adds so if he adds IMU onto There it would be under base link that Would just be another one Um because basically because your main Reference point on your vehicle that's That be on this type of vehicle is Halfway between your your back wheels And the the radius up from the ground You know half the radius of your tire up From the ground so it's it's just to Find that a 3D point on your vehicle That you get to reference everything Else to so on here it says you got base Link and then he's got his GPS and I see The numbers aren't actually telling us There but but somewhere you specify you Measure how far ahead and how far left And right and how far up and down is the GPS from base link and you you put those Numbers in there somewhere and that will Keep track that keeps track of that so So basically if you put an IMU on there Then you go measure where the IMU is and Again it keeps track of that to base Link so anything on the vehicle is Referenced back to base link and then The base footprint is simply the it's Based link here just project it down Onto the ground so basically you're Subtracting vertically subtracting off The wheel diameter or the wheel radius And then so so to the world Um the difference between Odom and base Footprint is where your vehicle is going

To be and then on the vehicle well Basically is just referenced up from the Ground Um To tell you where that point is and then Everything on the vehicle is referenced Back to base link And this It's basically you just have to figure Out once and put all the numbers in to Make that work and then You know if you start modifying things Later it will become It will become more obvious and but While I'm sitting here looking at this Stuff I just noticed all the numbers on Here seem to be zeros that's but it says Uh the broadcaster GPS Odom let's say The average rate buffer length Most recent transform I'm hearing weird noises Oh well uh anyway what was I saying uh Blah blah blah you're hearing things you Know before I was hearing things I could See there's a Raise numbers showing up and I'm not Sure what those actually are there I I Thought it was going to give us an X and Y offset to tell us how far we were from Our reference but it's not telling us That it's just telling as the thing's Running it's showing us information About what's going on So I'm hoping that noise I'm hearing is

Somebody with a shovel out front doing Something and not got squirrels or rats Or something in the house but So I Okay I appreciate you guys time and help Debugging that Simple change I think it must have I plugged in a USB Ethernet Connection because I wasn't getting very Good Wi-Fi Out in the yard and wasn't able to Remote into the computer and I bet that Screwed up on Screwed up my USB References so anyway Yeah that that'll always come back to Bite you and that's that's why people Use you to have rules if you can figure Out how to identify that's what always Comes up the same way it doesn't matter Whatever or whatever else you plug in There And you you already knew that it's just That for some reason you didn't put the The the the renamed name into your code And that's why I was doing that So at this point you're you're up and Running everything's everything's Working right it's just that you have to Figure out why you're not in the right Spot now Yes the continuation of uh tweaking the

Map and getting it to I mean it's [Music] Um Figuring that out getting it right and At this point if you don't have a lot of Snow on the ground you might be able to Say give it a 2d to have gold and see if It will move and But you know it's still you know it's Not right so it might be You know eventually you're going to Figure out why it's not where it thinks It is so that You're you're so excited about getting It to move it might actually move at This point Just yeah Button make sure you got the ADC stop Ready I need to do some work on the low-level Controller because I don't my mode Switch on my remote control I haven't Programmed that yet uh Take messages from Ross So at the moment It only handles manual steering So more more coding Okay fun fun tiller daddy takes the T-bird away Yeah well Guys I need to get going I've got some Things to do so I'll talk to you later have a good one Thanks Jeff

Uh How come I can't stop the recording

You May Also Like

About the Author: Mowrs