20230209 ROS Lawn Tractor Meeting

20230209 ROS Lawn Tractor Meeting

This video:

Chat:
Al:
Jeff:
Al:
Terry:
Jeff: Set GPS to ideal to closer represent RTK: See note below…
Al:
Al: Path Planning for Mobile Robot using Dubins-curve based RRT Algorithm with Differential Constraints

Jeff: The global Dubins-RRT planner I found:

(Turns out this is not made for ROS)

Note: YouTube doesn’t like the greater-than and less-than characters in the description.
So I deleted the URDF GPS noise changes from chat.
See the changes @43:00 in video.

Index:
00:00 Terry: Mentions his PID. He is loading ROS on a laptop.
He found more information on Milwaukee drill batteries.
He burned up his Itsy-Bitsy board.
02:00 Terry: Talks about power distribution.
He is using Eagle to create schematics for documentation.
04:30 Jeff: Suggests looking at Fritzing for creating wiring diagrams.
05:20 Terry: Found some information on the drill battery data protocol.
09:50 Al: Points out you can also create PC boards from Fritzing.
And prebuilt libraries are available.
10:45 Terry: Posts a link the drill battery on Redit.
11:10 Al: Talks about orientations in Gazebo and RVIZ.
15:30 Jeff: Questions sensor placement.
21:15 Al: Has a video of path following.
23:50 Al: Found an implementation for Pure Pursuit.
24:55 Al: Shows a small computer he found.
30:25 Al: Asks for suggestions on speed at weigh points.
Jeff suggests turning on odom markers when driving around in RVIZ.
30:55 Discussion on Pure Pursuit and where is has been used.
35:15 Discussion of speed at weight points.
41:05 Jeff: Talks about removing the “noise” from the simulated GPS.
49:55 Jeff: Mentions quality of messages from Gazebo.
52:50 More discussion about reverse engineering drill batteries.
56:20 Reminder that the method in ROS is not sacred.
You can replace the navigation stack completely.
You may not want to plan around obstacles.
57:45 Mention of dubins-RRT planner.

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


Got it okay Um Mixed bag of results this week Um I was able to get the the all the PID Stuff working as far as I want to get Before I start incorporating Ross Um started loading Ross onto my Ubuntu Um Was on the uh Reddit for uh Milwaukee Site and was reading some stuff about Batteries and how bad it is to let them Get down below 18 or between us or down Below a certain voltage so I decided Well since I'm still working with the Itsy bitsy why don't I go ahead and add A pair of Um Voltage dividers so I can at least check What the the voltage is on each of the Two batteries that I'm going to be Having because I'm going to have one for The That I'll convert down to five volts and Another one that I'm going to have at The um the full whatever the full Voltage is Well somehow I ended up blowing up my Its heat By connecting it incorrectly And the uh I couldn't find the other one that I Thought I had and I know I'd given two To my cousin so I ordered two and they Came late yesterday so I haven't done

Anything with those But I'm going to redo the The voltage divider and uh before I hook It up to the Itsy And make sure that The voltage that I'm wanting to check Isn't above the 3.3 volts I should probably have gotten uh them 3.3 volt uh philoskies Diodes just to ensure that the voltage Isn't above what it should be [Music] Um But then while I was uh waiting on the Uh The Itsy bitsies to come I decided I Wanted to start uh laying out what the The power distribution Circuit's gonna be and so forth Um trying to incorporate what I had from My previous incarnation of this test Robot Um with the fuses and the switches and The barrier strips And so I Had to download the new version of Eagle Because I was like at version five and It's now version nine or something so That was fun and then I discovered that Uh A lot of the stuff that I was looking For I couldn't find libraries for So like I've got a six Bank uh fuse Block so I had to learn how to create

The The Components in the library I created one For my Global Motor with encoder I Created one for the barrier strip I can or two barrier strips I created One for the fuse block And I couldn't find what I was wanting For the itsy bitsy So I just wanted a component for the Itsy bitsy I didn't want to see what That whole board was And so I did that and um got it all Wired up and Got the Raspberry Pi on there Because that's what'll be uh I'll be Using uh serial communication between The Itsy and the pie I've not done any Testing with that so that I figure I'll have that Ross um serial Node running on the Itsy or on the uh Raspberry to be able to communicate to The What I'm calling my motor controller Slash Voltage Checker Um I will not be getting anything done Between now and The next meeting because I'm not going To be here So uh It was fun

Working with the eagle again And uh I think I'm going to start wiring up So I don't just have boards and all Kinds of stuff just laying around on on The robot So I can get that done That would be are you using Eagle just To create basically a schematic or Wiring diagram Yeah something else you might look into Is fritzing and that's something where They plop down blocks and draw wires Between things but I think no matter What you use you're gonna have the Problem that yes you're going to make New components because it you know no Matter what you get it's not going to Have everything that you already you Already have so Yeah I've never heard of that That's the thing that you look at all The tutorials on Arduino and everything It says oh here's it shows here's a Picture of a a breadboard and it shows a Little while okay And it's it's uh I'll I'll look it up And post it here Okay Um I I have there Um A guy has been uh Doing a lot of investigation and reverse

Engineering of a battery pack That what I'm using and he's determined That it's it doesn't use I squared C for Communications it uses 2000 bod serial And he's Mapped out the uh Messages that go back and forth between The battery and a charger Doesn't know what they mean yet but he Has been able to verify It's 2000 pod What those messages are that there is a Check sum at the end so he knows that He's getting the full message And um He's been made great progress So uh Next he's going to try and hook it up to The battery up to his drill and see what Uh signals he gets Or what messages So we're we're getting closer on that Um That may have to take another Processor to to get the uh To be able to communicate with the two Batteries But that I think would be fun so I knew Would know exactly what the voltage is What the battery thinks the voltage is And its remaining capacity so We'll see pretty sure that it's it's 2 000 bod not some other

Um Right with your your analyzer you got You hook it up and you can you can Verify that to see You know exactly what the baud rate is On that Right he uh He he put it on his scope and that's how He determined what the kind of what Signals were going across and what the Baud rate was And then uh Posted what the the hex messages were So I'm I I have not verified it But he's talking to it with his uh with An Arduino Now To uh log and commit do that Communications And it could be with modern uarts on These processors you can get any maybe You can get any body rate you want you Just have to go out and set the The Dividers and uh prescalers and Everything and you can possibly get what You want instead of putting in the Standard you know the standard rates That everybody uses Yep You have that link handy to that thing I I was I was looking at that one day and I don't recall what it was if you can

Come up that link and post it in the Chat so sure I I'll look at the whole posting that I Made And then we can uh So you can also see the guy who has torn Apart the innards and uh created a uh The schematic of what the circuit inside Each battery pack looks like Is that a different guy or is that the Same guy it's a different guy one guy's One guy's working on the protocol a Different guy is working on the actual Circuit Okay So I will let's see how can I find it I've never been able to search very well In Reddit Yeah I'm it's not a Very well It's sort of like a unorganized attic Yeah I usually would go to Google and put in Put in say M18 drill battery Reddit and Then usually you can find stuff quicker That way it'll pop right up I will give that a try I assume he was calling it an M18 Battery all right that's why you put Milwaukee battery or something like that So you can do different things there Buy the buy on the fritzing thing Um Meaning you if you wanted to move past

Just documentation or a visual To creating a board you can do that with Fritzing as well One of the benefits behind that is People Um Will share their models I don't know if it's the exact board you Have but I just Googled it and Adafruit Seems to have Um Published in itsy bitsy board in the Fritzing Uh format okay I put a link out there for that too but Again it's just Added to the list of things to learn Oh yeah Let's see There you go Um What else That's it That's my update Uh just a couple of things for my side Um Oh come on back here I mean Jeff you had shown some interest in Wanting to look at the TF for uh Mine so I posted Um I posted that out there Or sent you a couple of photos of that

Or screen Clips actually so The GPS the IMU I think that's the IMU the wheels Obviously base link And then um It ignores exactly which View would be most useful but there's Where base footprint was Um And that I forgotten what that was maybe that was Uh odom00 I don't remember whether that Was it or not but anyway that's probably Both map and Odom because Odom's on top Of map But my thought was if you if you know What those markers are doing and you Have some reference saying what Direction you think you're pointing that Was that that was the the intention of That so you know on mine if I pull up uh Gazebo it's it's some weird angle to Start with so so if I rotate it around So the red Line points to the right and then that Says that red is is now East and then The green line points up so that says That is as North So see right there it's it see you can See the red lines going off to the right So it thinks that is That that is your X line and by Definition they they say that Um that is should be pointing East and I

Don't see the green line it's probably Uh going off to the top there along that Along that right right next to the blue Line is probably where the green line is So if you go on rvis because you can Rotate these any direction you want now And what I was thinking was you're gonna You're gonna show a screen that had your Map of your house and then on that look At the marker and then in that point the Red one should be pointed to the right Because I assume your map is you know it You got it off Google Maps so it should Be Um It should be a line north south already So And this this TF is what ties everything Together so that's you know it just you Said you could remember how to turn it On well you know it should just be on Your on your menu on the left so at any Point you just click on this thing say Show me that so you can see what that Stuff looks like Hmm Yeah I'll have to I've been using a A plain map without any obstacles so I Have to load that up On the you know the Home map but yeah there's that green Line that you're talking about yeah So at this point see see it's not not Oriented north south east west it's just

Some arbitrary about a 45 degree angle Um well actually it's like 135 degree Angle off from From where it should be so So when I started gazebo I just I just Grab it and rotate it so the so the red Line is pointed to the right and the Green lines pointed up and then I know On that one what it's doing then when You pull up our viz you know if you Um if you do the same thing on our viz Whether you have you know a visible map Or you just have a blank field you can Still rotate that around so it So so that way you know what what Direction you're driving at that point And when this whole thing started I Couldn't remember how you know on your Either Arvis or gazebo what direction is North and after a bunch of digging That's the what I came up with that You know if that red line is pointed East on both of them and your green line Is pointed up then that's the correct Orientation that you know up and down is North and south and then left and right Is east east and west I have to spend some time on that when I Get it loaded up I'm not on my machine With the Casino at the moment but uh Definitely something to check Just one other point I noticed that when I was looking at it you're like the

Picture of the lower left right there Can you make that one bigger I notice for some reason the GPS seems To be off to the right and I was Thinking that when I created this the The red the red thing which is the IMU I Thought it was off it was supposed to be Off to the right and towards the front But so I I don't know why those don't Look like they're in the right spot Because I think they're they're they Should be oriented from base link so it Should say you know your y value should Be zero which should put that you know Directly uh down the center that should Put the GPS down the center line so I Just don't think I noticed I I didn't Track down I think I want to pull mine Up minor I've got the front GPS and the Back GPS I think they're right down the Center line But since we change the scale of major Is bigger I don't know if something got Changed there or or what happened so That's just something I noticed I mean I know exactly what happened Those represent Um Those represent Where it is physically Uh oh so you've purposely moved those to Match your vehicle okay Yeah I mean I don't know if I'll be able to

See also  My "Pirate" radio station gets a modern upgrade. The AM200 Lite Podcaster Mixer Board and mic combo.

Load this in a Windows For Excel will fire up with an ODS Screen Um Or an ODS file will it It's looking like a word oh Um So This is not the one that I wanted Foreign Vehicle Dimension helper So Foreign my GPS is Um A little off from the center line and That's Um And if I had a picture here handy I Could show you there's a There's a physical bolt that was on the Um there's a bolt in the way so I had to Offset it four inches To the right And uh yeah so that's why When it comes to You know the origin there's a little bit Of offset um A little bit of offset there Same with the IMU it's not on the center Line either it's a little bit um It's a little bit to the left So if I've done My helper file here correctly those are The right

I mean visually Going back to this visually yeah that's It's showing up visually the way more or Less it is in the physical world I Haven't quite figured out this white box And what dimension I should use for that Um That's the chassis it would just simply Something handy to stick in there so uh You can make that You can make anything you want I think I Think it's called the chassis or Something like that So if you want to make that wider and Longer you could And the blue thing that's that lidar the Sick element So if you if you keep that as Um Another uh interesting point is I don't Know if that's sitting high enough that It it's going to see your front tires or Not so you might have to we have to deal With that I don't actually have a lidar so Um Probably should remove it remove it I don't know if that'll blow anything up I don't think it will Um because if you have nothing that's Listening it just simply it's got the Fake um lidar in your view rdf file and You could just comment out that section And otherwise it starts up and just

Publishes the scan message so if you Wanted to Wanted to use that for something it is There and it's available and even if It's running it doesn't it's not going To hurt anything I mean someday I mean I know that you Have a big big expensive one and I think There you can get them for about 150 Dollars now Um just to see what it's like but That's On the to-do list So I got on that because you were saying Um they looked offset and they if my If this is all working right there you Know I've correctly Linked it back to base link The other Um thing I just wanted to mention [Music] I And not not that you need to look at it But I've been working on [Music] Getting a plan run a mission Run and um So this Is a mission That is represented In You know these Waypoints but the Program to use those waypoints

Let's see Once it in a statement that looks like This which is the X and Y Uh uh Z And then the quaternion so the challenge For me has been trying to figure out Um How to build this these Target poses to Get it to run And to get it run hopefully Well and by well I mean not a whole Bunch of bucking up and And Um And so if you watch this I can increase The speed I think It's doing an okay job of running that Running that path Um But it's the one issue at the moment is It slows down every time it's coming up To a waypoint and my suspicion is that's By Some sort of design Um And I haven't come across a Configuration setting anywhere that Will let me Um Adjust that which is what I would prefer To do because I would rather it you know Make a smooth continuous speed Operation So at the moment

Getting this to run efficiently and by My definition of efficiently is you know A consistent speed Um That's what I'm wondering how people Have solved that with Tab planner So in the thought process for thinking Through that I came across These guys Who are doing autonomous racing And they have They're they've gone I'm gonna say off the reservation a Little bit and they've got the Their own Steering algorithm based on the pure Pursuit approach and so I was gonna Spend some time Looking through that and trying to Figure out if that could be applied Applied here and basically pure Pursuit Is all about Setting look ahead distance and what's The next goal closest to the To that or within that look ahead Distance and steering only to that While you know separately controlling Speed and not Adjusting speed based on that but Anyway that's what's going on with me The other thing I came across I don't Need to worry about it Today or tomorrow hopefully as long as

My laptop holds out but Um this is Aliexpress and they've got These many Um Many computers this one felt the price Was on there it was like 200 dollars Oh there it is Um for what in my estimation a pretty Darn powerful Um Computer and I mean it would just be Other than the Being outdoors and need to be recognized It certainly Is it a price and a power that makes it Look interesting for me But again as long as my laptop holds out I'm in good shape Does it have a uh A soft disk drive or a Rotating disk disk drive I think it has a place to put a okay SSD I see it right there Yeah you saw it before I did I don't see It no right there your cursor was right By it Yeah they have you know it's the M2 deal Right the little card Based deal So anyway that um oh here's one for 114. I wasn't looking very hard but Um That's what's going on and uh does that List the power that it uses is it 12

Volts or the 19.1 or something else Yes So it doesn't matter deciding how you're Going to power the thing you know how Are you going to get it How do you supply it with what it wants PC What amount of DC I just assumed whatever it was we could Jury rig something together there Uh that's that's that's a true statement Voltage I just saw the question yeah and Then the screen sort of Stopped I'll just do a search for voltage Which voltage there That's not opening up Five volt Uh it's always cute Things like HP and Dell always use the 19.1 volts and I was thinking some of This other the newer stuff like this may Run on 12 volts But yeah you're right you can probably Come up with something to uh convert Whatever you have down to down or up to Whatever voltage this wants I only get two hits on volt and it's This you know very useful and elaborate Question and answer Foreign Adapter yeah it was just a barrel deal Well I mean did they show the the does It come with the adapter and if so it

Might tell you what the What the adapter is they might show you A picture the adapter might say on it That it's what the voltage is I think they'd either have to give you An adapter with it or they're gonna have To tell you what the power is so yeah Hey it is Aliexpress so That's just something else to to look at When you're when you're looking at this Kind of stuff So that's where I'm at Jeff any Experience on this Getting this say the same in templiner I Was gonna ask see that where it says Kind of more options it might say Purchasing the uh Power supply Oh never mind I was shipping only And sometimes sometimes you scroll down And say what's what's included in the Package and they might tell you there if It's got comes with the power adapter Crickets on include Mail Well it's not a today thing anyway so I Just thought you guys might be Interested in seeing that Price of a PC in a box Jeff any thoughts on the speed thing and Running a mission Uh well let me let me back up and get Some other comments here when you were

Displaying that you said you made a Screen dump of that so you can see you Drive around if you turn on your Odom Marker it puts little arrows out as it Drives around then leaves them behind so You can get it'll give you a A better indication where the thing has Driven so it's just something that to Keep in mind you could do that And uh the other thing was on pure Pursuit I think the the first thing that Matt did he was running pure Pursuit and Maybe I think he's feeding in points to do Like uh dubins and that's what ended up On Juan's lawn tractor so if you go back To the original code for that stuff Juan Is running you might have something There that would load and run pure Pursuit and I think he was feeding in Some kind of a path to that So that and then you know that they they Would go back to Ross agriculture you Can see videos of it driving around like That I don't know how you would you know How you would find that possibly just go To Ross agriculture index and say search For Pure pursuit or Um Maybe search for for one there's gonna Be a bunch of entries but at some point There there was actual videos of that Driving around and it would it would Make a nice straight line until it gets

To the end and it would show the Dube in This curve and then it would but it Would cut the curve it would turn early And so that that would need some work on It but anyway that's that's something You can look at that that's what Somebody has already done and you know Was meant to work with I probably I Think he had to run into the stage Simulator and it was actually physically Running online one's lawn tractor and I Think when Matt took his lawn tractor to Uh was that that competition they Haven't In Indiana whatever that's called I Forget the name but I remember what You're talking about I think at that Point that's what he was running on it There also but I think most of that code Had disappeared so But I think one stuff might still be Around he might have the original stuff That was running the uh That pure Pursuit uh follower Yeah I'll look to see if I can find Anything Um Out there Um I think I think under uh I think under our stuff under the uh With saving workspaces Juan has put out At least one workspace there it could be That's what he had at the time that

That's what maybe it may be in that I Don't recall Definitely worth checking out Yeah that one right there it says pure Launch that probably Will at least point to the the packages He's running so maybe you can then from That you can find the uh I don't see a bit much in there Hey yeah that's a full file it's Absolutely blank That's pretty bad Let's see there's there's various things That say Juan Juan Arduino Eduardo Riva So those that is more on stuff there They'd go down one more which says pure Pursuit I don't know if that's a directory or This says some kind of configuration I Think is what this one was [Music] You said go down and what well right Right where you were one one line down From that It just says pure Pursuit and I that Might be a directory That's another config that's a header File so So anyway I think I think I saw I Thought I saw the um Uh lawn tractor Pure Pursuit launch file In that last folder you earned two Folders before it might be the one you

Looked at that had nothing in it or no No no he had looked at you yeah he had Looked at pure Pursuit And There that's when I thought I saw Ah an equally informative file Okay never mind Under the saved workspaces he might have He might be able to find all the stuff There it's not just something you can Dig into when you when you get around to It Now the question about Um About the thing pausing at a waypoint That this went by again back in the Ross Agriculture days when everybody kept Switching uh different uh Planners and or Uh whatever you know that was because You know people started to move base They said well we need to we need to Force in a a path to it so they switch To move base flex and once got to that Then they put something on top of that To avoid this thing about stopping at a Waypoint Now I the reason it's doing that is Because uh just going from point A to Point B by by definition is going to Drive until it gets close to White point It's going to slow down and stop so one Way to get around that uh by looking at That code that you had uh it said

See also  How to change the deck belt | Troy-Bilt riding lawn mower

Something about Um That I I don't python whatever you're Running right now it says something About uh execute the the path or the Pose or something and it says wait for It to finish To the in the wait for it to finish Concept uh there was a block up above That was like a function or something Doing it I thought Create that Yeah the white wait for a result so if You go into that wait for a result uh What you can do is you can say uh Instead of saying wait for it to say That it's done you know because when it Once it gets to the point it'll say Okay Goal reached but you can be you can be Watching to say am I am I within say one Meter of the the Waypoint and what it is Just just fire off the next uh the next Waypoint and don't don't let it come to A stop that that's one way to get around That and I don't know the way this Stuff's written if it'll allow you to do That or not But there was something else again back In the Ross agriculture days when people Were playing with this there's it's Probably documented on what people were Doing there And then at one point then Vinnie went On and added the uh

What's it called Behavior trees instead Of the standard State machine that was In it and that may have been to solve That problem I don't recall that I Didn't never try to run that stuff well I I did try to run it and that's where Everybody realized that you give it a a Path to follow and when it's done it's Just locked up and you had to reset the Thing to get it to do the next one so There needs to be like one or two more Lines in that behavior tree that says Once you get to get to the end of the Path it resets it to wait for another Path to come in But I was thinking that was uh That was to solve that problem you know Once once he put that behavior Tree in He could pass it some a list of points He would actually follow along the the Path and not stop at the waypoints and And before it starts the next one Yeah this looks like this is um The sun go and wait for gold that's Binary code at the moment so I'd have I Need to go find What that looks like So there's nothing in here called wait For result No that is uh Something in the uh Move based Flex Thing Yeah it's probably in this action lib

S and you could you could if you can Find out what that action lib is find The source code for that it probably is Going to say you know wait wait until You get the goal goal achieved message It'll either say goal achieved or or it Gave up and there you could you could Either copy that and modify it or create Your own that simply says you know wait Until we're within this distance You know this this radial distance of The the destination and once you are Then just immediately you know fire off The next PATH and hopefully that will Overwrite Just the regular move base you know if You just if you go to our viz and say uh You know click on Define a 2d navigation Goal and starts driving at any point you Can issue another one of those and it Will just turn from where it's at and Head towards the new one right so that's Why you can do it just running move base Oh I remember we went through all these Different things and somebody said oh I Got a bright idea let's switch let's Switch for move based move based Flex They said well let's let's add this on Top of it and they they kept adding Things to it I'm not sure everything Anything ever worked completely right But it just it seems like you know that They thought hey hey this this might do

It so everybody switched to something New and I don't remember Along the line Um how well any of it worked or if they Got it completely running or not And I'll go back and look at what's out There from one to see if I can piece From piece anything together And there was something else about it Depending what you're running you had to Define a path one way or another way and I can't remember what the the issue on That was either that again might be back To whatever it was that he was doing With the behavior trees maybe you had to Have a different format or something so Anyway that again this I it may or may Not be documented on the uh the video Meetings we did it could be is back on The slack stuff which is all gone now There is some stuff on slack if you can Somewhere buried on a Google Google Drive the stuff that we tried to save And recover but there's enough stuff Missing there may not be worth digging Through there I don't know Foreign Thanks for that feedback So the next thing was Um which has nothing to do with what You're doing right now but I noticed When I was running my uh You know what I was trying to determine It was the Gazebo simulator going to be

Good enough to actually test out Steering and all this kind of stuff and I was looking at the output messages and I started looking at the GPS message And I've got the the node that I wrote That'll take the GPS I think under Gazebo it's called GPS slash fix Underbar velocity to give you that Velocity Vector the thing puts out and I I wrote a node that would take that and Extract out the forward velocity And the uh the heading out of that and Then once you have the heady and then You can convert that into rotational Velocity if you want to but I was Noticing the messages coming out seem to Be really really nasty looking messages So let me go over here and say post that So if you go into your urdf file where It's defined in the GPS And it's got a block that said here's The here's the parameters for the GPS And they Define drift so what they're Trying to do is simulate a real what Quote quote real GPS as the Ross people Say and the Ross people say oh well GPS Is noisy as it's inaccurate but then Because of the people that are saying That don't use rpk GPS so to get around It I just simply went in and changed the Values let's see how can I I should have something on the screen to Do this if I go here And go here

Come on Okay let me let me try this uh share Screen Well I'll just do this so here here it Is in uh the chat and basically it said Under there's this block of code in the Urdf file and it says the drift is set To 0.1 I assume that means uh it can Have a random number up to 0.1 meters You know over over time not on effects You know it was actually slowly drift Over time or if it's actually jumping Around by that much and then the Gaussian noise Is basically saying they're just Introducing random noise into it so You're for velocity drift it says all Zeros so that's not doing anything but The Uh so I apparently drift is controlled By that top one that says uh Drift point one point one point one and Then gaussian noise of 0.04 Uh that is saying you know just randomly Your points coming out they're purposely Making it jump around to simulate a a Quote real uh GPS And then so I I decided I wanted to see What it's doing so I come down here and Changed it to uh I just put zeros in for Everything and then it gives me a a Fairly decent number out It basically the numbers there will Follow whatever like the IMU and the the

Odometry stuff's putting out so that's Something when you start playing with GPS on these things and since you're Running rtk GPS it might be to your Advantage to do that See how do I it would be to my advantage To make them zero like you have Yeah yeah if you want if you want to be Able to see a decent a decent output you Could play around with those numbers and Get them uh closer to what your rtk is Putting out but the bigger number you Put in the crappier the thing becomes so That's the whole the whole point of that You know because they say oh we don't Want to simulate an ideal vehicle so They say let's on all these sensors you Can put in like on the IMU and all that Stuff you can say you know how introduce Error error noise into it just to make It more like the real world Whereabouts I'm looking back through Um So if you go to urdf file and just Search for GPS there'll be a block that Says there's two sections one that says Create the physical device and maybe Tell it where it's at on the vehicle Then right below that is it's in that Block of stuff that says Um the stuff that I'm showing right here They're just defining the parameters for That GPS that's that's put in there Just trying to find what you posted in

Slack and I couldn't seem to get my Hands on that uh it's in random let's See the date is Um Oh I'm I'm looking at the wrong screen Again so let's see it's um It says Tuesday February 7th is where That's posted Under Uh uh uh oh oh it's it's a it's not in Random it's under your uh it's talking Directly to you so oh that's why I Couldn't find it So I've got the post of the chat or the Yeah the chat here so they'll make the Same stuff shows up and I'm just saying In there you might you might want to Look at that it gives you a better Better output because I was I was trying To extract the velocity and the heading Out of that and I also have the thing That says you know if the velocity is Below 0.1 meters per second don't don't Update it but if it is greater than 0.1 Then go ahead and update it and consider It a real one and I had so much noise on It it it it would never It would never fix that because the Velocity noise was high enough it kept Kept doing stupid things to me so So just just to quickly get around that I just set my GPS to give me ideal uh Coordinates and ideal uh velocities out Of it

So again if you try to use any of the GPS coming out of that for anything You're trying to do if that might be to Your advantage to to do that Well in the simulation mode is it using GPS or Or is it creating that Odom some other Way depends what you mean by simulation Mode the the Odom that's being created Uh actually I just went in and Um I found a tutorial and said do this So I just went into gazebo and says show Me your current position and it pulls up A message saying where you are and what Director you're going and your speeds And all that stuff so it's not actually Using the GPS stuff Now what we could do is delete that that Odom pie that I wrote that's that's Doing what I just said and we could just Take the GPS and run it through the the Other normal programs you'd run on your Vehicle so if we use that GPS odom.pi That that you're using on your vehicle You know you could use that feed feed The actual latitude longitude into that So you got a simulated latitude and Longitude you could feed it into there Let it generate the the output Odom But but keep in mind that that program Needs fixed also because it's putting uh Velocities it's just generating Velocities of zero coming out of that Thing

So that like the same problem we had Trying to fix the uh you know when it Would go different speeds in different Directions and then I said okay I'll Just set all those to zero like like Matt was doing in his thing and that's Where it it quit being variable but it Would only it always ran at 0.26 meters Per second no matter what I did so then If you go look on either move base or Move base Flex or uh temp planner under The it says subscribes to Odom says he Uses this to get the velocity of the Vehicle and that's so apparently that's The only thing it's used now to that Oda Message is the velocity and since Matt's Stuff was setting it to zero that I I Assume it you're gonna have the same Problem there so if we have to we'd have To go through there and figure out how To get the velocity and put into the put It into the Oda message I'm going to stick with your I think you watched you got it from the Construct if I'm remembering right Um yeah that's what I did And it turns out if you go to Ross too It was a Ross 2 or was it the new gazebo For some reason it doesn't work the same Anymore so this won't work this won't Work under Ross too but but for what I Was doing it it it works for what we're Trying to do now And I don't remember how the stage

Simulator was set up if somehow it was Getting a position out of that I I Haven't looked at that hard enough to See how how it was doing that that I'm Just sticking with gazebo Now that we've got something that works Seemingly works perfectly well And other things perfectly yeah Perfectly for the moment so other things I noticed what I was trying to figure Out wasn't going to be usable to give me You know to let me do steering Experiments and all this kind of stuff I Was noticing if you push up put up the IMU message which is slash IMU slash Data I think is what it's called Under there it has a a section that uh What was it I think was it the velocity Section it's got a rotational velocity Uh field in there and then there's Something else Now I forgot what it uh maybe the Position the position coming out so if You go look at the uh the Odom message Is being created it's got that Orientation and under orientation it's Got the uh the quaternion giving you Your heading and if you go look at the IMU that's exactly the same inside of There So so basically you know again both of Them are taking some internal data from Gazebo and simply publishing that to Give you similarly simulated results but

See also  mtd lawnflite lawn tractor differential issues

Anyway it looks like you know back when We're talking about the directions are Wrong like this latest thing you came up You said the directions appear to be Wrong and and I went through and Verified that on gazebo no they seem to Be you know once I got my my Base plane Oriented so my red line points to the Right and ran all these experiments I Thought no that looks like it's working Right well it turns out the IMU one also Seems to follow that so it looks like Both of those are putting out the enu Format Um so the odometry and the IMU message Since they're both tracking each other They both seem to be in the correct enu Format to make that work S you go back to GPS and it's still in The Ned format you're putting out the Latitude longitudes putting that that Way and Um when it puts out that velocity Message It it technically is putting out Velocity North and velocity East but it Then the thing I wrote where I just said Simply said take the length of that Vector and you know the square root of x Squared plus y squared that gives me the Velocity in whatever Direction you're Going and then I can also pull the Heading out of that if if I choose to do So

Although I think the the latest thing I Came up with Um didn't seem to have the correct Numbers coming out for the heading so I That's something else I'd have to play With on that so just some random things That came up that yes the IMU data Coming out looks you know what the the Parts of it I looked at seem to be Reasonable I didn't try to evaluate the Acceleration or uh it looks like the Rotational velocity at least Um the yaw one You know seems to be seems to match uh Whatever comes out of the other things Telling you rotational velocity so That's just just some something to note That I I did look at that and I think That's Maybe doing the right thing So that's that's all the comments I had And what other people are talking about And um I think I'll go look at that Thing that Terry talked about with the Drill batteries and see let's see we'll See what the guy's doing there and just Just to keep up on that because I that's The first time I'd seen anybody doing Anything with the protocol in and out of That so it'll be interesting to see So far at least what he's posted so far Is just the uh Charger to the battery He hasn't uh

Connect he says that's His next step Um I also suggested that he uh Try it with a What the communications is with the same Battery But After it's been used for a while so you Can see If the the messages are different and Then try with another battery that has The full so what part of it might be the Battery identifier Uh yeah And then also you know I assume he's got Some number of messages that might be Five or ten messages is doing right now And then we put on the drill you might Be getting additional messages or Different messages so that you know all Those kind of things will give you a Clue as to what what it's trying to do Right Uh did he comment on the the voltages on That you said that it's serial data that He mentioned is it five volt serial data Or 3.3 Volt or At all I'll probably find that out I Don't recall it if you showed that on a Scope you might be able to tell from That what it is or you just measure it Yourself Well I don't have a scope that's working

So Oh you probably just put a volt meter on Those two lines and and say do they Uh if it's like just a standard uart It's probably going to idle at the the High voltage so it's either going to be 3.3 or 5 if it's going to be a standard Standard voltage but You know just little little things like That just check it in an idle condition And see what it's see what's doing or They might both be zero if it's not Hooked up to anything I don't know Uh the the guy who uh Did the uh the circuit Reverse engineering he can probably we Can probably find out from the uh Microprocessor What its voltage is And for the the transmit and receive I was thinking I looked at his Schematics and they seem to be kind of Some random stuff I didn't know if he Had it fully fully decoded yet or not so Maybe does I just wasn't looking hard Enough I tried going out to the patents for the Uh the Milwaukee drills and you know Like any patent they don't want to tell You how it actually works or give you Value information so you know I couldn't Even find one that was specifically for This type of battery And it looks like older batteries had

Like a single line coming off the Microcontroller and I don't know what Kind of communication they're running on That either so but that's just more more Things yeah it's just up to people to Dig into it and figure it out I guess Right And I guess that's all the comments I Had of what we've been talking about so And although uh Al had mentioned that well some some guy Had gone completely off off the range or Whatever whatever the phrase was off the Reservation off the reservation well Keep in mind you can do anything you Want Ross you don't you don't have to Use the navigation stack to do this Stuff and that's what that's kind of Stuff that Kyler is doing he just said Well I need my tractor to go straight And I want to specify a path and he Didn't use the navigation stack at all He just simply wrote his own pure Pursuit follower and then created some Way to generate the points he wanted to Go to and so it it really doesn't matter One of the big advantages that the move Base will give you the standard Navigation stack is the fact it's Looking for obstacles and and tries to Drive around the obstacles but if you Just have a big open field and you don't Care what's out there you can throw out You know 90 of what's there so you

Basically just say like like like Al is Doing he's generating points externally For his path and if he just had a path Follower so you just pass those into That and it it's it drives that's that's Really all you need there but you Eventually you need some kind of Obstacle detection in case you know some Somebody walks out in front of you or There's a deer standing in front of you Or there's a post or a tree a tree is Falling down you need something to to See that and come to a stop at that Point But just to get it to drive around I I Was also looking I went out and searched For uh Pure Pursuit No I looked up I looked for dubin's Global planner for Ross and everybody Kept saying dubins and I think it's Called rrt and I thought what what's This rrt and it's something about They're tying the dubin's planner in With the obstacle avoidance stuff so When you go to make your plan it will You know if you say do it inside of a Building you got doorways and hallways And stuff it'll use dubins to make the Curves so it'll limit the how sharp the Thing will curve but then still it does A search pattern that you know Works its Way around through the building And I off I had that handy here it's on

My computer upstairs but there was a a Page that says this is the the dubins Global planner with rrt and he he had it Very well documented at the bottom he Had like these uh gif animated gifs and First of all he says just dubins only And you can see it was doing what looks Like a standard dubin's curve but it was Actually it's still smart enough to pick A path that would go through his doorway And then the next one down it shows it Running and it's trying to do you know Where the thing is Fanning out as it Drives so it'll come like this and then It's it's showing you all these little Passes you know what what direction it Could go and then he had like like four Different examples there and I didn't Look at his code to see if you know There's just a parameter it says use one Or the other Um So that was That that was something I I ran across That might be something you could just Drop in and use that as the the the the The global planner and then pass that Down to either uh temp planner or if you You can come up with a uh pure Pursuit Follower he could pass it to that so That's just something that I was looking For something you could just drop in That where people have thought about all The stuff and it turns out that

Everybody seems to be going back to the Fact they want to be able to plan around Objects you know based on your global Map is what the the main main difference Is there Yeah I was going to say that the tree Falling Um thing is definitely a real life Example of an obstacle you can hit If if you don't pay attention to you Know if you don't use that as input Um Especially when you're on the outside of The field you know making the first or Second run cutting hay Um yeah so I personally I would like to Have obstacle avoidance and use it as Close to Native You know Ross as possible So we'll see if we can work through this Speed thing But but the other problem is your Planner if it sees something in front of It's going to try to drive around us you Have to decide you want it to do that or Do you want to just come to a stop and You can probably go into the recovery Behaviors and tell it what to do there And especially if you go to that stuff Vinnie was doing with the the behavior Trees you can actually say you know if You see an obstacle uh stop or you know Tell it tell it whatever you wanted to

Do at that point so you've got the Flexibility to to make it make it do What you want if you can figure out how This stuff works Another example is if somebody drives Out with your pickup they they're Fascinated by your vehicle driving on Its own so they drive out and stop and Then get out to walk around and look Around now you got some somebody walking Around in the field yet you don't want To run over and if their pickup is Sitting there you don't want to hit that Either so you know all kinds of funny Little things come up that you wouldn't Expect Yeah what I found on IEEE seems to be Behind a uh A paywall so I haven't found the I don't Know if this is open source or not The steubens are our teething I'll it's on my other computer I'll have To go track it down I'll post that I'll I can stick it on the chat and then I'll Put it I'll put it on the uh on slack Also but it seemed like you know they've They've got to figure out I think it was Ross based so I think it was just a Plug-in you just replace your normal Global planner with this one the same Way you do a tab planner so you'd just Be a line somewhere that says uh Global Planner to use and it's whatever this Dubins RT whatever they called it and

That's probably what it's going to take To get it to work and then there'll be a Bunch of parameters probably saying Which search algorithms do you want to Use and you might have some other other Thing just like the temp planner has its Own parameters I'm sure this Global Planner will have its own parameters you Have to load those in also So anyway that would probably be worth Looking at and Uh again whether you stick with the temp Planner or use switch over to Pure Pursuit you know to do the actual uh Moving of the vehicle again those should Be interchangeable and so it should work It should work either way so That'll be interesting to find out what What people come up with So let's tell me something changed if Somebody put something in chat let's see I just put a couple of links to the Dubins rrt thing that I oh okay You see those are Different than the ones you've you found So what I think it was on somebody's GitHub and it did say something about Dubins and rrt but it as I just scroll Down to the description of the bottom it Has some real nice pictures they were Actually showing you what the thing is Doing as it as it drives around try to Do its planning so I'll find that and Post that

Cool thank you That's that's all I can think of right Now I'm done Any final words off See you in two weeks Have fun when the Royal clipper Ahoy Matey Or whatever they say

You May Also Like

About the Author: Mowrs