JeffS
2024-04-03 02:32:32

@channel I just got an offer for a 14-day free trial of the Slack pro plan. I accepted it. So everyone has full access for 14 days. I also ran a full backup and downloaded it to my computer. I should be able to use the convertor program I used before and maybe we will have all the data back to day one.

If anyone else wants a copy of the back up you can try to download it from this page: https://tractorautomation.slack.com/services/export It is the entry called "April 3rd, 2024".

Bob Hassett
2024-04-03 07:50:24

When I press the link this is what I get. Maybe the Pro version has an export feature?

Al Jones
2024-04-03 08:19:16

@JeffS Seems I received something similar. I won't click through it until we talk. I'm still in PA btw. See you tomorrow.

JeffS
2024-04-04 15:19:44

Info from today's video meeting.

======

20240404 Lawn Tractor Automation meeting - Length 31:25 This video: https://youtu.be/hsS5JMenr2M

Chat/Notes: Al's Miro board: https://miro.com/app/board/uXjVM1yzdFo=/ Al's github: https://github.com/jones2126/

Index: 00:00 Jeff: Talks about the Slack free trial that is active. 06:25 Al: Asks to have Jeff's pages posted. 14:00 Al: Talks about stepper motors and linear slides. 16:15 Al: Shows his stepper motor driver module. 16:40 Al: Motor gets real hot. 17:20 Al: Connections to make it move. 17:45 Discussion of motor heat problem. 26:30 Al: Reminder about documentation and backups.

==

Link to access the Slack channel: https://tractorautomation.slack.com/

Lawn Tractor Automation YouTube page: https://www.youtube.com/@lawntractorautomation2726/videos

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

Index for the original ROS Agriculture Zoom meetings (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (Use following link, or newest file in that directory) http://sampson-jeff.com/RosAgriculture/ros-agriculture-youtube20230104.txt

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
Al Jones
2024-04-08 08:40:45

Looks interesting. Ackerman in ROS2

https://app.theconstruct.ai/open-classes/9695988f-a5bc-475e-97ab-f9429c0ef347/?ct=t%28openclass-186-Ackermann-in-ros2-with-LIMO%29&mccid=dbe591736f|https://app.theconstruct.ai/open-classes/9695988f-a5bc-475e-97ab-f9429c0ef347/?ct=t%28openclass-186-Ackermann-in-ros2-with-LIMO%29&mccid=dbe591736f

app.theconstruct.ai
JeffS
2024-04-10 17:52:35

We won't have a video meeting this week.

Bob Hassett
2024-04-11 10:42:04

It occurred to me I should be a little more organized with my files and directories. Eventually I go with ROS but not right away. I want to down load python OpenCV or simpleCV. So how are people setting up their directories and file structures on a raspberry pi? As I expand I don’t want to have to move directories and files too much.

JeffS
2024-04-17 02:26:40

I finally got the complete Slack backup converted and uploaded. You can find the individual channels as separate HTML files. You can't use the channel selection menu, you have to just open the HTML file you want. (You can have more than one open.) Just double click the HTML file and with any luck the channel will open.

You can find the files in this directory: http://sampson-jeff.com/RosAgriculture/TractorAutomationSlackExports-Apr3-2024/

If the initial test works and you want your own copy, download the ZIP file: http://sampson-jeff.com/RosAgriculture/TractorAutomationSlackExports-Apr3-2024.zip and you may have a local copy that works on your computer...

If we have a meeting Thursday I can go over this so it doesn't get lost...

Bob Hassett
2024-04-17 14:33:16

Al how did you learn your 3D printing? May I ask which machine you have? Im thinking of buying a cheap one. How much time is involved getting up to speed? any recommended references?

Al Jones
2024-04-18 11:03:52

*Thread Reply:* The easy part of this is which machine. My first machine was a Prusa i3. It was expensive at the time and still is (~$899), but it works out of the box without much fiddling. If you have nearby help I might go with a Creality brand. My second 3D printer was a Creality. I think the bed size was 300x300. It is also pretty easy to use. The big learning curve though was using design software to make what you want. If all you want is to pull designs off Thingaverse and print them then no need to learn design software. I'll post some youtubers that I watched that got me started.

Bob Hassett
2024-04-18 15:35:31

*Thread Reply:* Thank you Al!

JeffS
2024-04-18 15:59:08

*Thread Reply:* There is more discussion about this on today's video meeting...

Bob Hassett
2024-04-18 14:19:35

Lucked out and it happen to be a Creality Ender $80. Came with 4 spools. Now where to find the time to use it? I may have to wait until after the move in November. My robot budget dies in November. So Im stock piling necessities ;-)

JeffS
2024-04-18 16:18:29

Info from today's video meeting.

======

20240418 Lawn Tractor Automation meeting - Length 39:54 This video: https://youtu.be/Pzix5ix3bNc

Chat/Notes: Al's Miro board: https://miro.com/app/board/uXjVM1yzdFo=/ Al's github: https://github.com/jones2126/ Link to online version of our Tractor Automation Slack backup: http://sampson-jeff.com/RosAgriculture/TractorAutomationSlackExports-Apr3-2024/ ZIP version if you want your own local copy. Just download and unzip. (40 MB file size) http://sampson-jeff.com/RosAgriculture/TractorAutomationSlackExports-Apr3-2024.zip Al's links for 3D printing: Selecting a free 3D CAD option - 3D design for 3D printing pt1 https://www.youtube.com/watch?v=XHzOzxCQ7MU BEST FREE CAD / 3D Modelling software 2024 - I tested them all! https://www.youtube.com/watch?v=J--QVhGheP4 My Top 5 Useful 3D Prints of 2016 https://www.youtube.com/watch?v=3BDK5Wz53Ig

Index: 00:00 Jeff: Talks about the Slack backup he made. 03:00 Jeff: Shows where to find the Slack backup on his web page. (See links above.) Short demo of how to open a page so you can see the results. 08:00 Jeff: Tells how to download the ZIP file so you can have your own local copy. 12:20 Al: Answers some of Bob's questions about 3D printing. Shows a few YouTube (just the intro) pages about 3D printing. (See links above.) 16:45 Jeff: Points out that you can get the modeling software and play with it without having a printer. 18:35 Al: Talks about stepper motors. 19:36 Jeff: Suggests playing with the settings for microstepping on the controller. 20:25 Al: Shows his RTK base station. 21:10 Jeff: Asks about reverse polarity protection for the expensive GPS board. Another tour of the inside of the box. 22:55 Al: Remapping his target area. 23:45 Discussion of Linux history files. 28:30 Al: Steps to convert a stored path to a boundary map. 30:45 Al: Shows a linear actuator he dug out. 32:25 Jeff: Wants reports on how well that particular actuator works. 36:25 Jeff: Yet again brings up the concept of a latch between an actuator and the transmission. And the possibility of re-using automotive parts.

==

Link to access the Slack channel: https://tractorautomation.slack.com/

Lawn Tractor Automation YouTube page: https://www.youtube.com/@lawntractorautomation2726/videos

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

Index for the original ROS Agriculture Zoom meetings (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (Use following link, or newest file in that directory) http://sampson-jeff.com/RosAgriculture/ros-agriculture-youtube20230104.txt

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
Bob Hassett
2024-04-18 19:08:22

Thanks for finding the 3videos on 3d printing. Ill dig into them. BTW Jeff, can you recommend a free cad program to play with?

JeffS
2024-04-18 20:11:19

I can't recommend any software since I don't use 3D printers. Those videos seemed to have recommendations.

Bob Hassett
2024-04-19 08:11:56

@Al, could you collect in one place..pictures of your 3d printed objects. Maybe on your Miro page? Maybe for a thursday video? Ill be out of town thursday so I cant ask questions. But after that I should be in town.

JeffS
2024-04-25 16:45:12

Info from today's video meeting.

======

20240425 Lawn Tractor Automation meeting - Length 23:40 This video: https://youtu.be/FAN8URGPQfU

Chat/Notes: Al's Miro board: https://miro.com/app/board/uXjVM1yzdFo=/ Al's github: https://github.com/jones2126/

Index: 00:00 Jeff: Talks about dumping Windows and moving everything to Linux. 04:10 Al: Talks about rebuilding his perimeter and path after installing a permanent base station. 21:00 Al: Dancing robots.

==

Link to access the Slack channel: https://tractorautomation.slack.com/

Lawn Tractor Automation YouTube page: https://www.youtube.com/@lawntractorautomation2726/videos

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

Index for the original ROS Agriculture Zoom meetings (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (Use following link, or newest file in that directory) http://sampson-jeff.com/RosAgriculture/ros-agriculture-youtube20230104.txt

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
Leanne Belmore
2024-05-01 10:51:27

@Leanne Belmore has joined the channel

JeffS
2024-05-02 16:43:09

The video meeting for today doesn't want to convert. I'll check back later and if it still hasn't worked, I'll delete it and re-upload it...

👍 Al Jones, Bob Hassett
Bob Hassett
2024-05-02 16:57:45

Spotty internet today, can’t attend

Bob Hassett
2024-05-02 17:24:00

Interesting story/project in Italy. https://medium.com/@stevechange/a-self-driving-car-project-pt-1-aa2bb061d3cf

Medium
Reading time
8 min read
Bob Hassett
2024-05-02 18:00:44

Downsized 2 more Barbie Jeeps for spare parts/future projects. Took Jeff’s suggestion to save the steering stuff just in case.

JeffS
2024-05-02 21:25:16

The video conversion finally worked. So here is today's info.

======

20240502 Lawn Tractor Automation meeting - Length 19:28 This video: https://youtu.be/roX6_vFMQ9s

Chat/Notes: Al's Miro board: https://miro.com/app/board/uXjVM1yzdFo=/ Al's github: https://github.com/jones2126/

Index: 00:00 Jeff: Has nothing. 00:20 Terry: Shows a burned up Protoboard. Describes the new layout. Processor is resetting. 02:30 Jeff: Asks about the damaged Protoboard. Wiring. 05:20 Al: Talks about his second Lithium Ion battery pack. 07:45 Al: Shows the newer/larger BMS (Battery Management System). 09:15 Jeff: Asks if Terry's processor has 5-volt tolerant inputs. We look at the burned board again. 11:25 People go looking for level translator boards for comparison. 13:05 Jeff: Offers some impromptu alternatives. (He screws up the description.) 15:10 Terry: Lists some things he will check for debug. 17:15 Terry: Shows his robot.

==

Link to access the Slack channel: https://tractorautomation.slack.com/

Lawn Tractor Automation YouTube page: https://www.youtube.com/@lawntractorautomation2726/videos

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

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
JeffS
2024-05-09 14:24:30

Info from today's video meeting.

======

20240509 Lawn Tractor Automation meeting - Length 13:14 This video: https://youtu.be/y-UouxoOAuM

Chat/Notes: Al's Miro board: https://miro.com/app/board/uXjVM1yzdFo=/ Al's github: https://github.com/jones2126/ Smartcan trash transporter https://www.youtube.com/watch?v=ITanfzvDFvw New $60 RTK GPS https://rtklibexplorer.wordpress.com/2024/04/28/dual-frequency-rtk-for-less-than-60-with-the-quectel-lc29hea/ https://rtklibexplorer.wordpress.com/2024/05/06/configuring-the-quectel-lc29hea-receiver-for-real-time-rtk-solutions/

Index: 00:00 Jeff: Talks again about replacing his Windows computer. 00:50 Jeff: New headphones. 01:55 Jeff: Neighbors moved out... 02:15 Jeff: Lawn tractor update. 03:10 Al: Shows a trash can transport robot. 05:45 Al: Talks about his path planning. 12:25 Jeff: Does a test with his old headphones. We talked after the meeting and referenced a new RTK GPS. I'll put links in the chat.

==

Link to access the Slack channel: https://tractorautomation.slack.com/

Lawn Tractor Automation YouTube page: https://www.youtube.com/@lawntractorautomation2726/videos

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

Index for the original ROS Agriculture Zoom meetings (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (Use following link, or newest file in that directory) http://sampson-jeff.com/RosAgriculture/ros-agriculture-youtube20230104.txt

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
Bob Hassett
2024-05-09 15:27:07

Dag nabit @JeffS why did go and find that smartcan transporter 🤪 now I’ll just be obsessing about incorporating that idea on the front of my zero turn Barbie Jeep.!

JeffS
2024-05-09 16:56:16

You could just convert your Barbie Jeep into a Barbie Garbage Truck.

Bob Hassett
2024-05-09 18:43:46

Interesting Jeff. I wonder how long it would last encountering the trucks jaws and the ups and downs 😱

Bob Hassett
2024-05-10 06:00:20

Another trash can idea. The “putty” he uses looks interesting and worth a try.
https://youtu.be/7fdM2hHW8yA?si=qVg5CoXlfV0AIya0

JeffS
2024-05-10 15:05:34

Here is the video on the "Trash Train" that I mentioned. https://www.youtube.com/watch?v=VhYEOG9LOIk

JeffS
2024-05-16 17:36:40

Here is the info from today's video meeting.

======

20240516 Lawn Tractor Automation meeting - Length 19:54 This video: https://youtu.be/vgtXqXisd5M

Chat/Notes: Al's Miro board: https://miro.com/app/board/uXjVM1yzdFo=/ Al's github: https://github.com/jones2126/ Smartcan trash transporter. (from last week) https://www.youtube.com/watch?v=ITanfzvDFvw Bob found this video for an automated trash container. https://youtu.be/7fdM2hHW8yA?si=qVg5CoXlfV0AIya0 Video about "trash train". https://www.youtube.com/watch?v=VhYEOG9LOIk The way my trash gets dumped in Minneapolis. (We don't have robotic arms.) https://www.youtube.com/watch?v=6vHgAGiHJoI

Index: 00:00 Al: Gives more details on his path planning. 04:45 Al: Creating a path around an obstacle. 07:00 Al: Creating the concentric passes around the outside. 11:35 Jeff: Asks how the concentric paths are generated. 13:40 Jeff: Revisits the discussion from last week about automated trash cans. 17:35 Al: Brings up Pure Pursuit navigation. 18:30 Jeff: Mentions trying to keep at least one laptop that is ready to go.

==

Link to access the Slack channel: https://tractorautomation.slack.com/

Lawn Tractor Automation YouTube page: https://www.youtube.com/@lawntractorautomation2726/videos

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

Index for the original ROS Agriculture Zoom meetings (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (Use following link, or newest file in that directory) http://sampson-jeff.com/RosAgriculture/ros-agriculture-youtube20230104.txt

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
Al Jones
2024-05-17 13:11:44

Posting here in case it is useful in the future: https://randomnerdtutorials.com/esp32-datalogger-download-data-file/

Random Nerd Tutorials
Bob Hassett
2024-05-17 13:58:13

Jeff is right about losing my sense of humor! I’m up to my eyeballs in downsizing and getting a new house built. I should probably hang out with you guys more and do some fun stuff.

👍 Al Jones
Bob Hassett
2024-05-21 10:24:57

Looks like even the free legacy stuff is going away. Any one using a different FREE vnc?

Al Jones
2024-05-30 12:08:55

*Thread Reply:* Sorry for the delay Bob. I had to break down and pay for Real VNC because I needed something that worked between Ubuntu and Windows. I got Google's service to work, but I ended up sticking with Real VNC. https://remotedesktop.google.com/

JeffS
2024-05-23 21:44:33

Info from today's video meeting.

======

20240523 Lawn Tractor Automation meeting - Length 13:30 This video: https://youtu.be/17vSGd_AxLQ

Chat/Notes: Al's Miro board: https://miro.com/app/board/uXjVM1yzdFo=/ Al's github: https://github.com/jones2126/

Index: 00:00 Jeff: Suggests debug ideas for testing Pure Pursuit path tracking. 04:20 Jeff: Mentions he hasn't yet moved the Zoom meetings to a Linux computer. 04:45 Jeff: Discovered that his new headphones don't actually work. 07:20 Al: Gives some updates on his path planning.

==

Link to access the Slack channel: https://tractorautomation.slack.com/

Lawn Tractor Automation YouTube page: https://www.youtube.com/@lawntractorautomation2726/videos

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

Index for the original ROS Agriculture Zoom meetings (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (Use following link, or newest file in that directory) http://sampson-jeff.com/RosAgriculture/ros-agriculture-youtube20230104.txt

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
Al Jones
2024-05-30 10:35:34

I listened to a video session The Construct put on regarding ROS2, OpenCV and line following. Attached in the notebook they provided. The reason I was interested is someday I would hope to follow a fence row using visual input. You will need something like Jupyter to open this .ipynb file.

JeffS
2024-05-30 21:47:27

Oh yeah, we didn't record a meeting today. We just talked about yard work, construction, weather, and the list of things that won't get done.

JeffS
2024-05-30 21:53:56

Oh, and my last power outage. My UPS ran for an hour and then the power came back on.

JeffS
2024-06-06 00:17:42

We are not going to have a video meeting this week.

JeffS
2024-06-13 10:05:52

We are not going to have a video meeting this week.

Bob Hassett
2024-06-13 20:48:06

Front wheels hang up in some situations

https://youtube.com/watch?v=7ROe51I02wQ&si=t_JQFu4mn76O9BBb

YouTube
} The Lawn Care Nut (https://www.youtube.com/@Thelawncarenut)
Bob Hassett
2024-06-17 09:32:06

So much for a free be. Time to find something else.

😟 Al Jones
Al Jones
2024-06-20 06:45:51

Attached is a .pdf that is the state of my semi-automated approach to building a path. For me there are three possible approaches:

  1. Hand build a few points and input those into the Dubins path generator that builds out the u-turns.
  2. Drive the entire path, capture the data and replay it the subsequent times.
  3. Drive the outer perimeter and the obstacles and calculate the path based on that input.

Attached is my attempt at #3. Step 19 is where the prepared data is fed into the Dubins path generator.

I still have more work to complete to merge the outer rings with the Boustrophedon stripes and Dubins u-turns.

Bob Hassett
2024-06-20 13:42:08

VERY NICE @Al Jones!!

JeffS
2024-06-20 15:21:27

Info for today's video meeting.

======

20240620 Lawn Tractor Automation meeting - Length 19:14 This video: https://youtu.be/FLPFBMwf2MQ

Chat/Notes: Al's Miro board: https://miro.com/app/board/uXjVM1yzdFo=/ Al's github: https://github.com/jones2126/ Al's Jupyter Notebook directory. https://github.com/jones2126/ros1_lawn_tractor_ws/tree/master/project_notes/jupyter_notebooks

Index: 00:00 Jeff: Quick update on Terry's project. 00:30 Jeff: More robot parts in his garage. Mobility scooter transaxles. 04:10 Al: Talks about his path generation. 07:05 Al: Talks about his PDF write-up and Jupyter Notebook. Details about his process. 14:45 Al: Still needs clean-up at his obstacles.

==

Link to access the Slack channel: https://tractorautomation.slack.com/

Lawn Tractor Automation YouTube page: https://www.youtube.com/@lawntractorautomation2726/videos

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

Index for the original ROS Agriculture Zoom meetings (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (Use following link, or newest file in that directory) http://sampson-jeff.com/RosAgriculture/ros-agriculture-youtube20230104.txt

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
JeffS
2024-06-27 22:47:50

Info from today's video meeting.

======

20240627 Lawn Tractor Automation meeting - Length 24:18 This video: https://youtu.be/NYNf7FpfrbU

Chat/Notes: Al's Miro board: https://miro.com/app/board/uXjVM1yzdFo=/ Al's github: https://github.com/jones2126/ Al's Jupyter Notebook directory. https://github.com/jones2126/ros1_lawn_tractor_ws/tree/master/project_notes/jupyter_notebooks Al: Polycam - LiDAR & 3D Scanner for iPhone & Android https://poly.cam/ Al: https://r2manufacturing.com/products/trash-tamer

Index: 00:00 Jeff: New garage door. Inspiration in disguise. 01:55 Jeff: Unloading a plotter on local surplus store. Free 150W sine wave inverter in exchange. 04:00 Jeff: Pulling a "standard" lawn mower with the "Mini Tractor". Current sensing and Dallas 1-wire DS18B20 temperature sensors. And is the vehicle beefy enough to pull a lawn mower (safely). 07:40 Jeff: Safety in transportation. Don't let your junk (and your laziness) destroy your car. 08:15 Al: Talks about his path planning for his lawn tractor. Some discussion on selecting a start point. 14:20 Jeff: Suggests an extra step (before submitting the predefined path) and tell it to drive from the current location to the start point of the path. Then publish the predefined path. 15:25 Al: Shows a gadget for your tractor to pick up and move trash cans. 16:25 Al: Shows a product for photogrammetry input. 18:35 Jeff: Asks if Al is planning ahead if his lawn mowing gets interrupted. 18:30 Jeff: Goes off-topic and talks about wild animals in urban areas.

==

Link to access the Slack channel: https://tractorautomation.slack.com/

Lawn Tractor Automation YouTube page: https://www.youtube.com/@lawntractorautomation2726/videos

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

Index for the original ROS Agriculture Zoom meetings (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (Use following link, or newest file in that directory) http://sampson-jeff.com/RosAgriculture/ros-agriculture-youtube20230104.txt

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
Al Jones
2024-07-03 09:22:28

I tried field testing yesterday, did not get the results I needed and was reviewing log files today to see what I could debug. There are likely better utilities around, but cobbled together this script to go through all the .log files in the 'latest' folder looking for some search terms and excluding hits from a few 'whitelisted' terms. It will also be in my github the next time to do a push.

JeffS
2024-07-05 16:35:28

Info from this week's video meeting.

======

20240704 Lawn Tractor Automation meeting - Length 33:25 This video: https://youtu.be/H0h8kCQ3sI0

Chat/Notes: Al's Miro board: https://miro.com/app/board/uXjVM1yzdFo=/ Al's github: https://github.com/jones2126/ Al's Jupyter Notebook directory. https://github.com/jones2126/ros1_lawn_tractor_ws/tree/master/project_notes/jupyter_notebooks

Index: 00:00 Jeff: Talks about measuring actuators and sensors on his lawn tractor. 10:20 Al: Talks about his current state of progress. Speed control. 11:35 Al: Talks about his path generation. 13:50 Al: Talks about generating the path around obstacles. 16:20 Al: Mice: Organic vs. Computer. 17:50 AL: USB port errors. 18:10 Al: Too many log files. He wrote a script to search through them. 19:15 Al: Getting I2C errors. Needs to track that down. 20:45 Al: More testing and user interface. 31:40 More mouse stories.

==

Link to access the Slack channel: https://tractorautomation.slack.com/

Lawn Tractor Automation YouTube page: https://www.youtube.com/@lawntractorautomation2726/videos

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

Index for the original ROS Agriculture Zoom meetings (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (Use following link, or newest file in that directory) http://sampson-jeff.com/RosAgriculture/ros-agriculture-youtube20230104.txt

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
JeffS
2024-07-06 00:56:34

Here is a presentation from Home Brew Robotics Club. Mike Wimble was unhappy with the existing ROS documentation and read through the code to see how it actually works... https://www.youtube.com/watch?v=l0PfLnSj0xc

YouTube
} Camp Peavy (https://www.youtube.com/@CampPeavy)
Bob Hassett
2024-07-06 17:04:52

Thanks for the heads up @JeffS

JeffS
2024-07-12 00:42:58

Info from this week's video meeting.

======

20240711 Lawn Tractor Automation meeting - Length 27:59 This video: https://youtu.be/KNoezuOsvEg

Chat/Notes: Al's Miro board: https://miro.com/app/board/uXjVM1yzdFo=/ Al's github: https://github.com/jones2126/ Al's Jupyter Notebook directory. https://github.com/jones2126/ros1_lawn_tractor_ws/tree/master/project_notes/jupyter_notebooks Jeff's new garage door opener: https://www.chamberlain.com/quiet-wi-fi-garage-door-opener-with-wireless-keypad/p/B2401TMC Add this line to bashrc file to add time and date to "history" command. export HISTTIMEFORMAT="%m/%d/%y %T "

Index: 00:00 Jeff: Talks about his new garage door and opener. 07:05 Al: Talks about progress on path planning. Some discussion on speed control. 09:00 Jeff: Asks if there are any plots of the vehicle speed vs. ground contour. 13:05 Al: Now has problems with steering control. 19:55 Some discussion about the mouse chewing through the wires. 20:50 The original sensor problem (last week) turned out to be a microcontroller reset problem. 25:00 Al: Added some extra debug display messages. 25:55 Al: Has added time and date to his Linux "history" display.

==

Link to access the Slack channel: https://tractorautomation.slack.com/

Lawn Tractor Automation YouTube page: https://www.youtube.com/@lawntractorautomation2726/videos

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

Index for the original ROS Agriculture Zoom meetings (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (Use following link, or newest file in that directory) http://sampson-jeff.com/RosAgriculture/ros-agriculture-youtube20230104.txt

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
JeffS
2024-07-19 21:29:08

Here is a video from Home Brew Robotics about autonomous lawn mowers. https://www.youtube.com/watch?v=qbx0oSv-LwQ

YouTube
} Michael Wimble (https://www.youtube.com/@mdwimble)
Al Jones
2024-07-24 10:55:33

*Thread Reply:* Thanks for sharing the video from Sergie. I've not gotten through it all, but the mechanical parts I've seen are very interesting. I hope he goes through his navigation software stack.

JeffS
2024-07-19 22:43:51

Info from this week's video meeting.

======

20240718 Lawn Tractor Automation meeting - Length 46:31 This video: https://youtu.be/suQdg6q-xHk

Chat/Notes: Al's Miro board: https://miro.com/app/board/uXjVM1yzdFo=/ Al's github: https://github.com/jones2126/ Al's Jupyter Notebook directory. https://github.com/jones2126/ros1_lawn_tractor_ws/tree/master/project_notes/jupyter_notebooks Jeff's new garage door opener: https://www.chamberlain.com/quiet-wi-fi-garage-door-opener-with-wireless-keypad/p/B2401TMC Videos about the RATGDO modules: https://www.youtube.com/results?search_query=RATGDO+github Link to RATGDO github: https://github.com/PaulWieland/ratgdo A previous discussion from our group on measuring engine RPM: https://youtu.be/dOWqqKUjeBA?t=780 Videos about mechanical governors: 8a Governors https://www.youtube.com/watch?v=_2rHwMlE4vU 8b Small Engine Governors https://www.youtube.com/watch?v=RYP-YgIRfkI 8c Governor Control https://www.youtube.com/watch?v=Ax1ZXDP4rIg Governor Adjustment and How They Work Honda Briggs Tecumseh Kohler etc. https://www.youtube.com/watch?v=bOHv3X42-wk How Small Engine Governors Work (any governor setup) https://www.youtube.com/watch?v=50WipK9L8hc How a Mechanical Governor Works on a 4-Stroke Lawnmower Engine https://www.youtube.com/watch?v=HJ0W-YTG7O0 Al's new PCB software: https://easyeda.com/

Index: 00:00 Jeff: Continuation of last weeks garage door opener comments. 01:45 Jeff: Alternative control module. (RATGDO) 03:50 Jeff: Or just solder wires on an extra remote. 07:15 Jeff: Revisits engine RPM vs. vehicle speed. (From last week.) 09:45 Jeff: Talks about governors on engines. 16:20 Jeff: Controlling the transmission instead of, or in addition to the engine governor. 17:15 Al: His interpretation. 21:10 Jeff: Has problems with grass build-up in his push mower. 22:30 Al: Analyses some tests that he ran. Speed vs. transmission control. 30:15 Al: Shows a new PCB layout. And mentions the software he used. (EasyEDA) 32:10 Back to Al's speed analysis. 39:45 Al: Shows his ground track is right once, but not 4 other times. IMU? 42:25 Jeff: Asks about what method of speed control is being used.

==

Link to access the Slack channel: https://tractorautomation.slack.com/

Lawn Tractor Automation YouTube page: https://www.youtube.com/@lawntractorautomation2726/videos

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

Index for the original ROS Agriculture Zoom meetings (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (Use following link, or newest file in that directory) http://sampson-jeff.com/RosAgriculture/ros-agriculture-youtube20230104.txt

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
JeffS
2024-07-24 11:51:54

We won't have a video meeting this week.

Al Jones
2024-07-25 07:12:55

Just fyi, I wanted to download the video describing the Home Brew Robotics autonomous lawn mowers so I $ pip3 install yt-dlp and then $ yt-dlp https://www.youtube.com/watch?v=qbx0oSv-LwQ Easy peasy.

YouTube
} Michael Wimble (https://www.youtube.com/@mdwimble)
JeffS
2024-07-25 13:52:41

That is good to hear. I can't get youtube-dl to work any more.

Al Jones
2024-07-31 16:53:10

Working on filtering my speed data coming from my AS5048B magnetic rotation sensor which is connected to my rear wheels and used to calculate speed. In one field test 19 records out of 4482 (i.e. about 0.05%) were illogical. An example is these 5 readings: 14077, 14834, 15624, 6563, 810. Instead of 6563 the logical reading would be close to ~10 which would be a movement of ~770 ticks. So the corrected readings would be: 14077, 14834, 15624, 10, 810 where the movement from 15624 to 10 is the roll over event. Like I mentioned, 99.95% of the roll over events seem to work fine. I'm still not ready for more field testing, but I think I have the logic worked out to filter out the errors.

Bob Hassett
2024-07-31 17:48:26

@Al Jones can you post some pictures of how you attached your sensor? I’d like to know how to do it.

Bob Hassett
2024-08-05 14:33:39

*Thread Reply:* Nice pictures thanks!

JeffS
2024-08-02 00:40:10

Info from this week's video meeting.

======

20240801 Lawn Tractor Automation meeting - Length 16:48 This video: https://youtu.be/DQcfFv4AgpA

Chat/Notes: Al's Miro board: https://miro.com/app/board/uXjVM1yzdFo=/ Al's github: https://github.com/jones2126/ Al's Jupyter Notebook directory. https://github.com/jones2126/ros1_lawn_tractor_ws/tree/master/project_notes/jupyter_notebooks

Index: 00:00 Al: Shows his new PC board he talked about two weeks ago. 01:55 Al: Talks about his speed sensors on his back wheels. 05:00 Al: Talks about the lawn tractor video from the Home Brew Robotics Club. 07:30 Jeff: Makes some random observations about the speed detection. 15:30 Jeff: Asks about the weather.

==

Link to access the Slack channel: https://tractorautomation.slack.com/

Lawn Tractor Automation YouTube page: https://www.youtube.com/@lawntractorautomation2726/videos

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

Index for the original ROS Agriculture Zoom meetings (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (Use following link, or newest file in that directory) http://sampson-jeff.com/RosAgriculture/ros-agriculture-youtube20230104.txt

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
Bob Hassett
2024-08-04 19:18:11

*Thread Reply:* Thanks for highlighting the Home Brew Robotics video. A lot of good ideas that could be borrowed ;-)

JeffS
2024-08-08 22:47:20

Info from today's video meeting.

======

20240808 Lawn Tractor Automation meeting - Length 19:59 This video: https://youtu.be/Kqq2xZwgyH0

Chat/Notes: Al's Miro board: https://miro.com/app/board/uXjVM1yzdFo=/ Al's github: https://github.com/jones2126/ Al's Jupyter Notebook directory. https://github.com/jones2126/ros1_lawn_tractor_ws/tree/master/project_notes/jupyter_notebooks Ziegler-Nichols tuning: https://duckduckgo.com/?t=ffab&q=ziegler+nichols+method&ia=web

Index: 00:00 Jeff: Talks about mounting wheel sensors. Mentions Lawn Tractor Automation index and ROS Agriculture index to view previous videos. 02:10 Jeff: Suggests alternate using "out rigger" sensor mounting. 03:15 Jeff: Another alternate, like Greenzie did, have an encoder that rides on existing wheel. 04:30 Jeff: Suggests that we brainstorm sometime. 05:00 Al: Miro board updates. And data management. 07:55 Al: Updates on his speed sensors. Comments about adjusting PID control. Results on path following. 17:20 Jeff: Asks about some glitches on the plot.

==

Link to access the Slack channel: https://tractorautomation.slack.com/

Lawn Tractor Automation YouTube page: https://www.youtube.com/@lawntractorautomation2726/videos

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

Index for the original ROS Agriculture Zoom meetings (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (Use following link, or newest file in that directory) http://sampson-jeff.com/RosAgriculture/ros-agriculture-youtube20230104.txt

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
JeffS
2024-08-09 23:41:48

We were talking in the meeting about wheel encoders. The original Greenzie attempt used encoder wheels. I just ordered two of these brackets: https://www.amazon.com/dp/B083FQXLHB/ref=pe_386300_440135490_TE_simp_item_image And two 68mm encoder wheels: https://www.amazon.com/dp/B09CKYK4SR/ref=pe_386300_440135490_TE_simp_item_image?th=1 I already have 600 line encoders that I can use. It looks like I can bolt the bracket to the fender of my lawn tractor and let the encoder hang down and rub on top of the tire.

JeffS
2024-08-14 13:52:50

I'm going to skip the meeting this week. I was just told they are going to install my windows starting tomorrow morning. So I am skipping. Al may decide to do his own meeting, but I won't be there.

Al Jones
2024-08-25 07:16:06

For a few different reasons I want to move away from using my chiprobotics.com IMU which uses a Bosch chip. They no longer sell the device or a replacement, it provides a relative heading which forces me to start the tractor with the same heading each time and I have a persistent delta between my target path and my actual path that I think might be caused by slight differences between my expected heading at start and my actual heading at start. So I purchased an Adafruit BNO085 IMU. Link When I could not find a program on GitHub that used rosserial to publish an imu/data topic with the host I ended up writing my own. Link I first tried using an Arduino Nano Every which showed about 40% memory availability, but I had multiple issues, for example having to reset the USB after each use. Using the Teensy 3.2 shows about 80% memory availability which has resolved my Nano issues. I also wrote a script that reads imu/data for displaying yaw in a readable format to confirm the ENU approach is being followed. Link I deviated a little from ROS standard by including in a covariance field the magnetometer accuracy or quality level so I can maybe do something with that data later. At the moment I have to move metal within a couple of inches of the IMU to have it report something other than its highest accuracy reading. Comparing compass readings with my phone to the IMU are the same.

The next step is to mount it to a PCB and 3D print a cover. :)

adafruit.com
Price
$24.95 USD
Stock
In Stock
Al Jones
2024-08-27 15:39:42

Before and after runs using the "new" BNO085. There are certainly issues to look at, but the adherence to the target path looks a little better. The gap to look at is between the blue line and red line when the tractor is running the straight path.

Al Jones
2024-08-30 09:49:03

Fascinating. Autonomy without a map. Can't tell if there is even a GPS/GNSS sensor on the robot. They are using machine learning. https://www.youtube.com/watch?v=gDA-bruQr9s

YouTube
} Public App (https://www.youtube.com/@PublicInvest)
Bob Hassett
2024-09-01 19:08:16

*Thread Reply:* That orange thing might bee GPS? Also looks like maybe a stereo camera doing 3d?

Al Jones
2024-09-02 09:29:35

*Thread Reply:* 👍

JeffS
2024-08-30 21:57:34

Info from LAST WEEK'S meeting. I'll work on this week's meeting.

======

20240822 Lawn Tractor Automation meeting - Length 51:07 This video: https://youtu.be/Dyj2Xo0HYgM

Chat/Notes: Al's Miro board: https://miro.com/app/board/uXjVM1yzdFo=/ Al's github: https://github.com/jones2126/ Al's Jupyter Notebook directory. https://github.com/jones2126/ros1_lawn_tractor_ws/tree/master/project_notes/jupyter_notebooks Links to Al's absolute magnet angle sensor and 3D printed parts videos: 06282019 Lawn Tractor Meeting https://www.youtube.com/watch?v=U0TnhDnmteY 00:0010:10 Al: Shows his wheel encoder setup. Explains how to design gears. (good description of making gears) 04142020 Community Meeting https://www.youtube.com/watch?v=Yrp0hoFUNV8 40:0549:15 Al: Is adding his second speed sensor to a back wheel. 3D printed bracket and gear, Teensy, AS5048B magnetic sensor board. (a couple of CAD drawings and good description) 04022021 Lawn Tractor Automation meeting https://youtu.be/y5fvMURPsNE 00:00_01:30 Al: Shows his magnetic sensor design. (good images) 05212021 Lawn Tractor Automation meeting https://youtu.be/rGRyBysRTFk 01:15:15-1:18:50 Al talks about his magnetic encoder for wheel odometry. Matt's sprocket encoder from ROS Agriculture meeting: https://youtu.be/UwP47rwAH4c?t=210

Index: 00:00 Jeff: Random babbling. 01:00 Jeff: Talks about wheel encoders. 01:05 Reference to Al's 3D printed gears and magnetic absolute shaft encoder. 04:30 Mentions of Jeff's quadrature encoders. 06:20 Reference to Matt's sprocket encoders from ROS Agriculture. 08:15 Jeff: Talks about encoder wheels. 11:30 Jeff: Reference back to original Greenzie lawn tractor and an encoder wheel. 12:10 Jeff: Mentions using accelerometers in an IMU chip to measure wheel movement. 13:45 Jeff: Bottom line, come up with a list of all the various odometry methods. 14:00 Jeff: Mention of the ROS Agriculture and Lawn Tractor Automation index. 15:40 Al: Posts some links to sprockets and sensors. Discussion of part sizes. (Sprockets vs sensors.) 18:45 Al: Shows a Blue Pill board. And we discuss programming these boards. 19:40 Jeff: Complains about Zoom. Then he shares the wrong screen to prove a point... 21:00 A recap of sprocket size vs. sensor diameter. 22:50 Jeff: More comments about Greenzie encoders. 24:20 Jeff: Talks about attempting to put wheel encoders on a full size farm tractor. 30:50 Al: Talks about the speed control on his lawn tractor. Controlling vehicle speed with a PID to control the hydrostatic transmission. 32:40 Al: Ground plot of the vehicle. 34:00 Al: List of problems to be solved. Switching between GPS and wheel odometry. A Pure Pursuit look ahead problem. An offset between reported odom and look ahead position. Servo pre-set values may need to be adjusted. 37:00 Al: Talks about IMUs. The Chip Robotics IMU provides a relative heading. He got a BNO-085 IMU from Ada Fruit. 40:00 Al: Writing code for a driver. 41:20 Al: Communication problems. 43:50 Discussion of I2C. 46:15 Discussion about dual GPS. 49:00 Discussion about correction data between different brands of GPS (GNSS) receivers.

==

Link to access the Slack channel: https://tractorautomation.slack.com/

Lawn Tractor Automation YouTube page: https://www.youtube.com/@lawntractorautomation2726/videos

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

Index for the original ROS Agriculture Zoom meetings (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (Use following link, or newest file in that directory) http://sampson-jeff.com/RosAgriculture/ros-agriculture-youtube20230104.txt

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
JeffS
2024-08-31 14:51:30

Info from THIS WEEK'S meeting...

======

20240829 Lawn Tractor Automation meeting - Length 57:07 This video: https://youtu.be/yr7rx8OuJg4

Chat/Notes: Al's Miro board: https://miro.com/app/board/uXjVM1yzdFo=/ Al's github: https://github.com/jones2126/ Al's Jupyter Notebook directory. https://github.com/jones2126/ros1_lawn_tractor_ws/tree/master/project_notes/jupyter_notebooks

Index: (Jeff has props today...) 00:00 Jeff: Talks about an angle sensor. (possibly from a Chevy Corvette) 01:40 Jeff: Talks about an encoder bracket from Amazon. For attaching an encoder wheel. 06:35 Jeff: Mention of a microcontroller to read the new encoders. 07:30 Jeff: Short explanation of gears and encoders that are on the Sammy2 mini-tractor. 10:00 Jeff: It might be possible to glue on a magnet and add an absolute position sensor. 11:15 Jeff: Another mention of the sprocket/proximity sensor from last week. 12:15 Jeff: A look at an encoder wheel. And problems that my come up. 13:45 Jeff: Some exploration of the ROS Agriculture and Lawn Tractor Automation meetings indices. 35:50 Al: Uses a search for F411 boards as a lead-in to his IMU swap-out. Ada Fruit BNO-085 vs. Chip Robotics IMUs. 41:20 Al: Memory size issues. 46:50 Al: Results of testing. 51:00 Al: Ordered a surplus encoder from a printer. 53:00 Jeff: Asks if Al now has a redundant IMU sensor.

==

Link to access the Slack channel: https://tractorautomation.slack.com/

Lawn Tractor Automation YouTube page: https://www.youtube.com/@lawntractorautomation2726/videos

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

Index for the original ROS Agriculture Zoom meetings (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (Use following link, or newest file in that directory) http://sampson-jeff.com/RosAgriculture/ros-agriculture-youtube20230104.txt

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
Bob Hassett
2024-09-01 19:20:22

Just for conversational giggles..why the caster wheel out front instead of trailing? Sensors could be over the drive axle? Just speculating how to set up my Barbie Jeep after we move.

Bob Hassett
2024-09-01 19:24:25

*Thread Reply:* Or do it this way?

Al Jones
2024-09-02 09:23:29

@Bob Hassett I seem to recall you asking about computer remote access before. I had some luck with using tightVNC recently where I could not get it to work in the past. In my case using XFCE instead of the Ubuntu standard display seemed to be the solution. Here are the instructions I wrote.

Bob Hassett
2024-09-02 12:00:06

*Thread Reply:* @Al Jones thank you!

JeffS
2024-09-04 21:00:06

I made a small amount of progress this week. I got my new encoder wheels physically mounted to my Sammy2 mini-tractor. And I found a box full of sensors that I had lost.

🙌 Al Jones
JeffS
2024-09-05 18:49:59

Info from today's video meeting.

======

20240905 Lawn Tractor Automation meeting - Length 41:09 This video: https://youtu.be/580XsQA0UfQ

Chat/Notes: Al's Miro board: https://miro.com/app/board/uXjVM1yzdFo=/ Al's github: https://github.com/jones2126/ Al's Jupyter Notebook directory. https://github.com/jones2126/ros1_lawn_tractor_ws/tree/master/project_notes/jupyter_notebooks

Index: (Jeff has new props today...) 00:00 Jeff: Talks about mounting the encoder wheels on the Sammy2 robot. 05:20 Jeff: Shows his cheap bore scope camera. 06:15 Jeff: A three different hall effect sensors. 08:10 Jeff: A magnetic proximity sensor. 10:20 Jeff: Shows a "Rolling tape measure" from Harbor Freight. 12:10 Jeff: Mention of microcontrollers to read the new encoders. 16:10 Jeff: Another encoder wheel from a surplus store. 17:30 Jeff: Shows his bore scope camera again. 19:10 Jeff: Current status and some future steps. 19:40 Al: Suggests creating tutorials on programming a Blue Pill board. 20:45 Al: Comments on the progress of Jeff's encoder mounting attempts. 24:50 Al: Status report. 25:55 Al: PID testing for speed control. 29:00 Al: Switching between GPS and wheel odometry. Jumps in GPS position. Weird speeds reported. 34:00 Al: Correcting/handling reverse direction values. 34:40 Al: What would be needed to drive in tele-operated mode? 35:10 Al: Playing with look-ahead distance in Pure Pursuit. 39:25 Al: Mentions XFCE window manager. Which is connected with TightVNC that he and Bob are playing with.

==

Link to access the Slack channel: https://tractorautomation.slack.com/

Lawn Tractor Automation YouTube page: https://www.youtube.com/@lawntractorautomation2726/videos

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

Index for the original ROS Agriculture Zoom meetings (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (Use following link, or newest file in that directory) http://sampson-jeff.com/RosAgriculture/ros-agriculture-youtube20230104.txt

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
JeffS
2024-09-12 22:18:25

Oh good... It won't post correctly anymore. Here is the link to today's video. https://youtu.be/iFtFYNVx4Es

JeffS
2024-09-12 22:24:04

TESTING... Here is the link to today's video. https://youtu.be/iFtFYNVx4Es

JeffS
2024-09-12 22:25:59

It's just broken, I'll fight with it later.

JeffS
2024-09-13 11:03:11

REPOST: Slack decided it was not going to display the YouTube thumbnail. (Like it has since day 1) It looks like it is working today, so this may fix it.

Info from today's video meeting.

====== 20240912 Lawn Tractor Automation meeting - Length 38:46 This video: https://youtu.be/iFtFYNVx4Es

Chat/Notes: Al's Miro board: https://miro.com/app/board/uXjVM1yzdFo=/ Al's github: https://github.com/jones2126/ Al's Jupyter Notebook directory. https://github.com/jones2126/ros1_lawn_tractor_ws/tree/master/project_notes/jupyter_notebooks

Links to Chris Albertson's github https://github.com/chrisalbertson?page=1&tab=repositories https://github.com/chrisalbertson/quadratureBluePill Al's https://github.com/jones2126/lawn_tractor_embedded_code

A couple of previous videos talking about recreating odometry in Xcel. From the ROS Agriculture meeting index: http://sampson-jeff.com/RosAgriculture/ros-agriculture-youtube20230104.txt I: 11222019 Lawn Tractor Meeting https://www.youtube.com/watch?v=Xwc1GZ1nFTM 14:15 Jeff: Examining the two log files. Plots of odometry and GPS. And how to fix the odometry plots. 32:50 I: 12032019 Community Meeting https://www.youtube.com/watch?v=3Bhh6gy4Bs0 00:00 Jeff: Talks about GPS/GNSS. Hemisphere V200, uBlox F9P, SSD for bagfiles, DOT CORS correction data over SwiftNav radios, GPS plots 15:30 Jeff: Odometry plots, reconstructed odometry vs. original odometry 19:50 Jeff: Moves on to talking about IMUs. Sparkfun Razor IMU, EM-7180 (from Tindie). Then back to odometry. 26:00

Index: 00:00 Jeff: Talks about small microcontroller boards and quadrature encoders. 00:55 Jeff: Talks about getting code to run the quadrature encoders. 01:10 Jeff: Points out "quadratureBluePill" project. By Chris Albertson. (See link in chat) 03:30 Jeff: Proposes logging raw data to a file. Then extracting odometry with Xcel. 04:35 Jeff: More exploration of Chris Albertson's github. servocontroller PCA9685PrecisionServoDriver SeeedArduinoAS5600 openrobotactuatorhardware PCA9685-driver Encoder quadratureBluePill rospololuservo RaspberryPi 05:55 Jeff: Jeff: Attempts to show AS5600 board. Switches to bore scope camera. 08:30 Jeff: I mentioned pricing of this camera last week. But you have to convince Amazon to show the cheap ones. 09:35 Jeff: Back to driver for the AS5600. 10:00 Poking through the "robotactuators". 10:50 Talk about PCA9685 board. 11:45 The "Encoder" library. More libraries... 12:40 The "RaspberryPi" library which has lots of fun libraries. 14:20 Al: Asks about quadrature decode libraries. 15:50 Jeff: USB connectors breaking off the boards. 22:20 Jeff: Shows a "graphical" depiction of odometry. (not meant to be understood...) 24:15 Jeff: "One more thing I don't want to go into..." but I do anyway. 25:20 Jeff: An application for a non-contact angle sensor. (carburetor position) 26:45 Al: Compares his magnetic shaft encoder to Jeff's quadrature encoder. 29:25 Al: Talks about his path tracking results. May be due to ground slope. 36:45 Jeff: Asks if the problem is solved.

==

Link to access the Slack channel: https://tractorautomation.slack.com/

Lawn Tractor Automation YouTube page: https://www.youtube.com/@lawntractorautomation2726/videos

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

Index for the original ROS Agriculture Zoom meetings (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (Use following link, or newest file in that directory) http://sampson-jeff.com/RosAgriculture/ros-agriculture-youtube20230104.txt [10:18 PM]

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
JeffS
2024-09-18 18:45:35

No video meeting this week...

JeffS
2024-09-26 00:12:06

I connected my new wheel encoders to a microcontroller and created the attached plot. It needs some tweaking of the scale factors, but it looks promising. This was a rectangular path in my front yard.

🙌 Al Jones
JeffS
2024-09-26 16:34:25

Info from today's video meeting.

======

20240926 Lawn Tractor Automation meeting - Length 35:01 This video: https://youtu.be/YEI13JO6XJc

Chat/Notes: Al's Miro board: https://miro.com/app/board/uXjVM1yzdFo=/ Al's github: https://github.com/jones2126/ Al's Jupyter Notebook directory. https://github.com/jones2126/ros1_lawn_tractor_ws/tree/master/project_notes/jupyter_notebooks

[Repost from last meeting] A couple of previous videos talking about recreating odometry in Xcel. From the ROS Agriculture meeting index: http://sampson-jeff.com/RosAgriculture/ros-agriculture-youtube20230104.txt I: 11222019 Lawn Tractor Meeting https://www.youtube.com/watch?v=Xwc1GZ1nFTM 14:15 Jeff: Examining the two log files. Plots of odometry and GPS. And how to fix the odometry plots. 32:50 I: 12032019 Community Meeting https://www.youtube.com/watch?v=3Bhh6gy4Bs0 00:00 Jeff: Talks about GPS/GNSS. Hemisphere V200, uBlox F9P, SSD for bagfiles, DOT CORS correction data over SwiftNav radios, GPS plots 15:30 Jeff: Odometry plots, reconstructed odometry vs. original odometry 19:50 Jeff: Moves on to talking about IMUs. Sparkfun Razor IMU, EM-7180 (from Tindie). Then back to odometry. 26:00

Index: 00:00 Jeff: Talks about his encoder wheels mounted on Sammy2 robot. Old encoders vs. new encoders. Details of connecting encoders to STM32F401 board. 06:00 Jeff: Ground plot of new encoder path. 08:35 Jeff: Mention of replotting in Excel. (See links in chat section above for "recreating" plots.) 11:20 Jeff: Differences between axle encoder and encoder wheel. (When does tire diameter make a difference?) 12:20 Jeff: Comparing old encoders to new encoders. 14:35 Jeff: More talk about the "little microcontroller boards from Amazon". 15:20 Jeff: A couple comments on finding a multiport serial logger. 17:25 Jeff: Admission of laziness. 18:15 Al: Asks about scale factors. Jeff admits to "calibration" steps. :-) 20:00 Al: Talks about his experience with the ST Micro IDE package. 22:15 Al: Shows a new PC board for a Teensy and a BNO085 module. And a 3D printed box. 24:20 Al: Talks about his "GPS to Odometry" code. And IMU code. 24:45 Al: Alludes to tilt compensation. 26:25 Jeff: Goes back to his wheel odometry and expected results. Expectations from wheel odometry. 30:25 Talk about wheel slippage. 31:50 Jeff: Calibration sequences to fix all of your problems. 33:30 Slippage, in the real world.

==

Link to access the Slack channel: https://tractorautomation.slack.com/

Lawn Tractor Automation YouTube page: https://www.youtube.com/@lawntractorautomation2726/videos

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

Index for the original ROS Agriculture Zoom meetings (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (Use following link, or newest file in that directory) http://sampson-jeff.com/RosAgriculture/ros-agriculture-youtube20230104.txt

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
JeffS
2024-10-03 18:29:55

Info from today's video meeting.

======

20241003 Lawn Tractor Automation meeting - Length 39:43 This video: https://youtu.be/iTSrvLiv3tQ

Chat/Notes: Al's Miro board: https://miro.com/app/board/uXjVM1yzdFo=/ Al's github: https://github.com/jones2126/ Al's Jupyter Notebook directory. https://github.com/jones2126/ros1_lawn_tractor_ws/tree/master/project_notes/jupyter_notebooks

Index: 00:00 Jeff: Points out links to meeting video index in description below. 01:25 Jeff: Recap of installing new encoders. 02:00 Jeff: Recreating odometry data (continuation from previous meeting). 04:15 Jeff: More parts for the junk box. Talks about the $3 STM32F401 boards. 07:15 Jeff: How to document C code vs. Excel formulas? (for the encoders) Distance in encoder counts vs. meters. 08:45 Jeff: Round off issues when using integers for calculations. 10:40 Jeff: Code cleanup. 11:45 Jeff: Coming up with the correct scale values. Create a new data set. 13:25 Jeff: Maybe add the odometry scale factors and initial values as ROS parameters. Maybe use that during calibration. 15:55 Al: Asks about development using the ST Micro parts and software. Jeff gives a quick run down on building a project with STM CubeMX IDE. 31:10 Al: Talks about his tilt compensation code (it didn't work). 32:50 Al: One of his wheel sensors is not reporting speed. 33:55 Al: Mice (field mice, not computer mice). 34:40 Al: Need for more debug data. 35:40 Jeff: Brings up Juan's story about animals eating wiring. https://youtu.be/d6QbVnTnmNg?t=261 Al suggests putting everything in a box. Jeff may have same problem. Jeff suggests rodent poison, as last resort...

==

Link to access the Slack channel: https://tractorautomation.slack.com/

Lawn Tractor Automation YouTube page: https://www.youtube.com/@lawntractorautomation2726/videos

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

Index for the original ROS Agriculture Zoom meetings (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (Use following link, or newest file in that directory) http://sampson-jeff.com/RosAgriculture/ros-agriculture-youtube20230104.txt

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
Al Jones
2024-10-03 20:16:05

Plotjuggler view from run today after adjusting base_link with IMU info. Where the terrain is the most sloped, the West edge, not really happy with the accuracy and 'go arounds' with apparently missed waypoints.

Al Jones
2024-10-10 10:43:48

I did some field testing yesterday. This time on straights with Dubins/key hole turns.

JeffS
2024-10-10 11:06:12

This an image of recreating odometry in Excel. In case I want to show it on today's video meeting.

JeffS
2024-10-10 15:26:14

Info from today's video meeting.

======

20241010 Lawn Tractor Automation meeting - Length 32:50 This video: https://youtu.be/Pkh2vgqYl5g

Chat/Notes: Al's Miro board: https://miro.com/app/board/uXjVM1yzdFo=/ Al's github: https://github.com/jones2126/ Al's Jupyter Notebook directory. https://github.com/jones2126/ros1_lawn_tractor_ws/tree/master/project_notes/jupyter_notebooks

Index: 00:00 Jeff: Points out links to meeting video index in description below. 00:20 Jeff: Mentions the new wheel encoders. And shows a screenshot of an Excel recreation. 03:55 Jeff: Talks about a (failed) attempt to collect a large amount of data. 11:55 Jeff: Weird errors that should have surfaced long ago. 12:50 Al: Has a video and a ground plot of driving in his yard. More descriptions. 13:30 Al: Description of zoomed-in plots. 14:20 Al: Intermittent GPS drop-outs. 16:15 Al: Looking at path following results. 20:40 Al: Plot of vehicle speed. 21:20 Al: Log of laptop variables: CPU load, CPU Temp, battery voltage, battery current... 25:30 Al: Switching between GPS and wheel odometry isn't quite right. 26:10 We make several failed attempts to play Al's video. 29:20 Video finally plays. 30:40 Some analysis of path following.

==

Link to access the Slack channel: https://tractorautomation.slack.com/

Lawn Tractor Automation YouTube page: https://www.youtube.com/@lawntractorautomation2726/videos

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

Index for the original ROS Agriculture Zoom meetings (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (Use following link, or newest file in that directory) http://sampson-jeff.com/RosAgriculture/ros-agriculture-youtube20230104.txt

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
Al Jones
2024-10-11 11:31:17

For reference the next time we have a conversation... I was wondering how AGOpenGPS adjusts for the tractor pitch and roll. There may be other places this is done, but I have found this statement, 'steerAngleGu += mf.ahrs.imuRoll ** -sideHillCompFactor;' in the file '..\SourceCode\GPS\Classes\CGuidance.cs'. For hill-side driving they seem to be adjusting the steer angle instead of my current approach of adjusting the location. Interesting.... (Link to code)

Al Jones
2024-10-11 13:35:02

Just for reference..., I was reviewing the function, 'private void DoSteerAngleCalc()' (link) and looking at the steering calculation approach. If I look at this it seems they may have two different steering approaches as options (Stanley or Pure Pursuit). I did notice in the revision comments, 'v3.0 June/July 2019, * Add Stanley control method'. A core statement for the 'Stanley' approach appears to be, 'double XTEc = Math.Atan((distanceFromCurrentLineSteer * mf.vehicle.stanleyDistanceErrorGain) / (sped));' (link). The pure pursuit approach seems to be here (link) since it uses wheelbase.

Stanford document on the Stanley approach (attached). Link to CMU paper comparing the two approaches: https://www.ri.cmu.edu/pub_files/2009/2/Automatic_Steering_Methods_for_Autonomous_Automobile_Path_Tracking.pdf

Al Jones
2024-10-17 12:29:27

*Thread Reply:* For reference...'private void ReceiveFromAgIO(byte[] data)' in the file 'UDPComm.Designer.cs' appears to be where sensors are read

JeffS
2024-10-17 18:37:43

Info from today's video meeting.

======

20241017 Lawn Tractor Automation meeting - Length 55:19 This video: https://youtu.be/7VAsKemv-Bk

Chat/Notes: Al's Miro board: https://miro.com/app/board/uXjVM1yzdFo=/ Al's github: https://github.com/jones2126/ Al's Jupyter Notebook directory. https://github.com/jones2126/ros1_lawn_tractor_ws/tree/master/project_notes/jupyter_notebooks

Index: 00:00 Jeff: Points out links to meeting video index in description below. 00:36 Jeff: Talks about data logging. 01:20 Jeff: The ol' "Swapped out the harddrive" excuse. 04:45 Jeff: Raspberry Pi? How to talk to it? 06:30 Jeff: Starting and stopping programs on a Raspberry Pi (or any head-less install). 08:00 Al: Talks about his starting and stopping methods. Killing PIDs. 15:55 Jeff: Proposes using a physical switch to start/stop data logging. Al uses an on-screen GUI. 20:30 Jeff: Asks about Al's wheel encoders that weren't working last week. 22:00 Al: Steering. Digging through other people's code. 40:05 Al: PDFs on steering methods. And some talk about GPS tilt compensation. 47:30 Al: Talks about a presentation, "AI foundations for robotics". 48:55 Jeff: Holds up a gear and talks about drilling it out. 50:55 Al: Holds up a Bluetooth board. We talk about "Inspiration".

==

Link to access the Slack channel: https://tractorautomation.slack.com/

Lawn Tractor Automation YouTube page: https://www.youtube.com/@lawntractorautomation2726/videos

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

Index for the original ROS Agriculture Zoom meetings (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (Use following link, or newest file in that directory) http://sampson-jeff.com/RosAgriculture/ros-agriculture-youtube20230104.txt

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
JeffS
2024-10-19 15:45:16

Has anybody noticed the Teensy 3.x boards are going away? https://www.pjrc.com/store/teensy32.html If you REALLY need a Teensy 3.2, I see there is one on Amazon for $415...

JeffS
2024-10-20 14:24:27

Pictures are coming out of the California Maker Faire this weekend. https://photos.app.goo.gl/9HazCgAJM7ox5e8d6

Google Photos
JeffS
2024-10-22 11:47:39

Here is an informative thread on transforms/links. https://groups.google.com/g/hbrobotics/c/KD-hn9TAkGY

Al Jones
2024-10-24 07:37:09

Another remote access option. After a few days use, I like it. https://www.nomachine.com/remote-access-for-everybody

NoMachine
JeffS
2024-10-24 18:40:24

Info from today's video meeting.

======

20241024 Lawn Tractor Automation meeting - Length 1:03:52 This video: https://youtu.be/gKBOYO8E2Yw

Chat/Notes: Al's Miro board: https://miro.com/app/board/uXjVM1yzdFo=/ Al's github: https://github.com/jones2126/ Al's Jupyter Notebook directory. https://github.com/jones2126/ros1_lawn_tractor_ws/tree/master/project_notes/jupyter_notebooks

Teensy: https://www.pjrc.com/teensy/ Mini Robomind: https://robominds.com/index.htm https://robominds.com/images/MRM1p1a_diag.gif PWM boards PXA9685: https://www.amazon.com/s?k=PCA9685+16+CH+12Bit+PWM Remote access software: https://www.nomachine.com/remote-access-for-everybody Index: 00:00 Jeff: Points out links to meeting video index in description below. 00:28 Jeff: Talks about interchangeable processor boards, like Teensy 4.0 and 4.1. Teensy 3.x boards are going away. Random comparisons for the Teensy boards. 17:00 Jeff: Comments about CAN peripherals on modern microcontrollers. 21:15 Al: Says he is all for Teensys also. 23:40 Jeff: Talks about (more) standardized connector layout for prototyping. 24:45 Jeff: An example of connectors on a PWM board. 30:55 Jeff: The same board is available with colorful connectors. 33:30 Jeff: Shows a Mini-Robomind board as an example of connector layout. 36:10 Jeff: "So this what I am thinking..." 38:55 Jeff: Summing it up. 38:20 Al: Way too many PWM outputs... 40:30 Al: New NAS system for his network. Raspberry Pi 5, M.2 MVMe SSD. 47:45 Al: Talks about lithium batteries and power inverters. Replacing UPS batteries. 56:00 Al: Found some new remote desktop software. 59:55 We discuss loud mowers, leaves, modifying mowers.

==

Link to access the Slack channel: https://tractorautomation.slack.com/

Lawn Tractor Automation YouTube page: https://www.youtube.com/@lawntractorautomation2726/videos

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

Index for the original ROS Agriculture Zoom meetings (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (Use following link, or newest file in that directory) http://sampson-jeff.com/RosAgriculture/ros-agriculture-youtube20230104.txt

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
JeffS
2024-10-31 16:26:19

Info from today's video meeting.

======

20241031 Lawn Tractor Automation meeting - Length 50:12 This video: https://youtu.be/n07lJ7h9rKA

Chat/Notes: Al's Miro board: https://miro.com/app/board/uXjVM1yzdFo=/ Al's github: https://github.com/jones2126/ Al's Jupyter Notebook directory. https://github.com/jones2126/ros1_lawn_tractor_ws/tree/master/project_notes/jupyter_notebooks

Mini Robomind: https://robominds.com/index.htm https://robominds.com/images/MRM1p1a_diag.gif

Index: 00:00 Jeff: Points out links to meeting video index in description below. 00:40 Jeff: Shows some gears and talks about drilling them out for larger shaft. 05:20 Jeff: Continued from last week: More about colorful header pins. Some exploration of the Mini Robomind board. 14:50 Jeff: Discussion of wires vs pins. Discussion of one of Matt's early boxes. Fun facts about Mini Robomind board and Bot Board II. 21:45 Jeff: The "Small Robot" needs electronics added. 33:35 Al: Talks about mounting techniques. 36:45 Al: Some thoughts on next design. 38:55 Al: Induction proximity sensors. 42:00 Al: Motor driver board. Transmission control. Linear actuator? 44:00 Al: Updates on his NAS drive. And a battery 44:45 More mounting options. 46:25 Al: More thoughts on encoders. 47:30 Al: Linear actuators.

==

Link to access the Slack channel: https://tractorautomation.slack.com/

Lawn Tractor Automation YouTube page: https://www.youtube.com/@lawntractorautomation2726/videos

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

Index for the original ROS Agriculture Zoom meetings (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (Use following link, or newest file in that directory) http://sampson-jeff.com/RosAgriculture/ros-agriculture-youtube20230104.txt

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
Al Jones
2024-11-02 08:35:56

argh. Amazon took my order for an RPi 5, then cancelled it 10 days later. And they still show availability on their web site.

JeffS
2024-11-03 13:43:54

Thread on RPi5 and SSD. https://groups.google.com/g/hbrobotics/c/-03p1MFEnm0 If you follow the link https://photos.app.goo.gl/eAdKiD7YYnL9Vou6A , he has tons of pictures. I think this the same guy that made the autonomous lawn tractor. He also seems to have a whole garage full of robots.

Google Photos
Al Jones
2024-11-03 15:43:02

*Thread Reply:* I love what he uses for ballast. At least that is what I'm guessing it is for. 🙂 Also, a clever idea for an electronics box.

Al Jones
2024-11-03 18:12:52

Testing Pololu JRK controller with Teensy.... working.

Al Jones
2024-11-06 15:24:55

Messing around with a NRF24L0 radio connected to a Teensy. Wired up and 'hello world' sample working. :)

Al Jones
2024-11-07 10:16:09

*Thread Reply:* When using LoRa with my current radio controller I send this data:

struct RadioControlStruct { float steering_val; // 4 bytes float throttle_val; // 4 bytes float voltage; // 4 bytes byte estop; // 1 byte byte control_mode; // 1 byte unsigned long counter; // 4 bytes } RadioControlData; // Total: 18 bytes Because I have an OLED I receive back some data and display it, although in the bright sunshine its pretty tough to actually see any of it. The data structure is here:

struct TractorDataStruct { float speed; // 4 bytes float heading; // 4 bytes float voltage; // 4 bytes int8_t gps_rtk_status; // 1 byte unsigned long counter; // 4 bytes } TractorData; // Total: 17 bytes I'm just posting this here because I'm thinking about what other data elements I should be passing back and forth.

One thought I had is if the tractor isn't wi-fi enabled I could set up some type of gateway using NRF24 to internet and listen for the tractor and pass that data on, if tracking remotely in real-time is important.

Al Jones
2024-11-07 14:09:09

I am so hoping they make US Congressman Thomas Massie the Secretary of Agriculture. He made a chicken tractor he named the "Clucks Capacitor". https://x.com/RepThomasMassie/status/1854522178210803861

X (formerly Twitter)
JeffS
2024-11-07 19:12:10

Info from today's video meeting.

======

20241107 Lawn Tractor Automation meeting - Length 45:15 This video: https://youtu.be/cfnY9HsThPE

Chat/Notes: Al's Miro board: https://miro.com/app/board/uXjVM1yzdFo=/ Al's github: https://github.com/jones2126/ Al's Jupyter Notebook directory. https://github.com/jones2126/ros1_lawn_tractor_ws/tree/master/project_notes/jupyter_notebooks

https://toshiba.semicon-storage.com/info/TLP2630_datasheet_en_20190617.pdf?did=16837&prodName=TLP2630 https://www.vishay.com/docs/84732/6n137_vo2601_vo2611.pdf https://www.pololu.com/category/95/pololu-jrk-motor-controllers-with-feedback

Index: 00:00 Jeff: Points out links to meeting video index in description below. 01:15 Jeff: Talks about optical isolation. TLP2630, 6N137 08:30 Jeff: Ground loops. Use optical isolation. 15:50 Jeff: Explores more ways to wire things together. 22:45 Al: Talks about a new NRF24L01 radio. A demo of it running. 27:55 Al: Shows a JRK G2 21v3 motor controller. (Pololu) 29:55 Jeff: Asks about Al's linear actuator. Does it have feedback? 35:00 Jeff: Mentions that Pololu (among others) will have "Black Friday" specials coming up. 36:55 Jeff: Asks where the linear actuator will be installed. Electrical noise. 41:10 Jeff: Suggests a "hybrid" wheel odometry solution. Merge IMU heading. And/or substitute "decent" yaw gyroscope. "Robot Localization" node.

==

Link to access the Slack channel: https://tractorautomation.slack.com/

Lawn Tractor Automation YouTube page: https://www.youtube.com/@lawntractorautomation2726/videos

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

Index for the original ROS Agriculture Zoom meetings (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (Use following link, or newest file in that directory) http://sampson-jeff.com/RosAgriculture/ros-agriculture-youtube20230104.txt

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
Al Jones
2024-11-10 09:11:58

Cute. https://nanosaur.ai/

nanosaur.ai
Al Jones
2024-11-11 09:34:34

Achieved 5 Hz, 2 way communication using NRF24L01 modules sending 30 bytes of data. Now I need to do a distance test.

```// Node0_receiver.cpp

include "Arduino.h"

include <SPI.h>

include <RF24.h>

RF24 radio(7, 8); byte addresses[][6] = {"1Node","2Node"};

// Matching structure - 30 bytes struct DataPacket { uint8t counter; // 1 byte float sensor1; // 4 bytes float sensor2; // 4 bytes float sensor3; // 4 bytes float sensor4; // 4 bytes float sensor5; // 4 bytes float sensor6; // 4 bytes float sensor7; // 4 bytes uint8t checksum; // 1 byte };

struct ResponsePacket { uint8t counter; uint8t status; };

// Tracking variables unsigned long messagesReceived = 0; unsigned long responsesSuccessful = 0; unsigned long responsesFailed = 0; uint8t lastCounter = 0; unsigned long missedMessages = 0; unsigned long lastStatsTime = 0; const unsigned long STATSINTERVAL = 1000;

void setup() { Serial.begin(115200);

Serial.print("DataPacket size: "); Serial.print(sizeof(DataPacket)); Serial.println(" bytes");

radio.begin(); radio.setPALevel(RF24PAMIN); radio.setDataRate(RF24_2MBPS); radio.setChannel(124);

radio.openWritingPipe(addresses[0]); radio.openReadingPipe(1, addresses[1]);

radio.startListening(); Serial.println("Receiver ready - waiting for messages"); }

void loop() { if (radio.available()) { DataPacket received; radio.read(&received, sizeof(DataPacket)); messagesReceived++;

// Check for missed messages (accounting for counter wraparound)
if (messagesReceived &gt; 1) {  // Skip first message
  uint8_t expected = (lastCounter + 1) &amp; 0xFF;
  if (received.counter != expected) {
    int missed = ((int)received.counter - (int)expected + 256) % 256;
    missedMessages += missed;
    Serial.print("Missed ");
    Serial.print(missed);
    Serial.print(" messages. Expected #");
    Serial.print(expected);
    Serial.print(", Got #");
    Serial.println(received.counter);
  }
}
lastCounter = received.counter;

// Print received data
Serial.print("RX #");
Serial.print(received.counter);
Serial.print(" Data[");
Serial.print(received.sensor1, 1);
Serial.print(",");
Serial.print(received.sensor7, 1);
Serial.print("] - ");

// Prepare and send response
ResponsePacket response;
response.counter = received.counter;
response.status = (received.checksum == received.counter) ? 1 : 0;

radio.stopListening();
if (radio.write(&amp;response, sizeof(ResponsePacket))) {
  responsesSuccessful++;
  Serial.println("Response sent");
} else {
  responsesFailed++;
  Serial.println("Response failed");
}
radio.startListening();

}

// Print stats every second unsigned long currentTime = millis(); if (currentTime - lastStatsTime >= STATS_INTERVAL) { float rate = float(messagesReceived) ** 1000.0 / currentTime; Serial.println("\n=== Receiver Statistics ==="); Serial.print("Rate: "); Serial.print(rate, 1); Serial.println(" Hz"); Serial.print("Messages Received: "); Serial.println(messagesReceived); Serial.print("Messages Missed: "); Serial.println(missedMessages); Serial.print("Responses Sent OK: "); Serial.println(responsesSuccessful); Serial.print("Responses Failed: "); Serial.println(responsesFailed); Serial.print("Last Counter: "); Serial.println(lastCounter); Serial.println("=========================\n"); lastStatsTime = currentTime; } }

// Node1_transmitter.cpp

include "Arduino.h"

include <SPI.h>

include <RF24.h>

RF24 radio(7, 8); byte addresses[][6] = {"1Node","2Node"};

// Structure for the data we want to send - total 30 bytes struct DataPacket { uint8t counter; // 1 byte float sensor1; // 4 bytes float sensor2; // 4 bytes float sensor3; // 4 bytes float sensor4; // 4 bytes float sensor5; // 4 bytes float sensor6; // 4 bytes float sensor7; // 4 bytes uint8t checksum; // 1 byte };

// Response structure - keeping it small for reliability struct ResponsePacket { uint8t counter; uint8t status; };

unsigned long lastTransmitTime = 0; const unsigned long transmitInterval = 200; // 5Hz = 200ms interval unsigned long messageCount = 0; unsigned long successCount = 0; unsigned long failCount = 0; unsigned long noResponseCount = 0; // New counter for tracking missing responses const unsigned long STATS_INTERVAL = 1000; unsigned long lastStatsTime = 0;

void setup() { Serial.begin(115200); Serial.print("DataPacket size: "); Serial.print(sizeof(DataPacket)); Serial.println(" bytes");

radio.begin(); radio.setPALevel(RF24PAMIN); radio.setDataRate(RF24_2MBPS); radio.setChannel(124); radio.setRetries(1, 3);

radio.openWritingPipe(addresses[1]); radio.openReadingPipe(1, addresses[0]);

Serial.println("Transmitter ready"); }

void loop() { unsigned long currentTime = millis();

if (currentTime - lastTransmitTime >= transmitInterval) { lastTransmitTime = currentTime;

// Prepare data to send
DataPacket dataToSend;
dataToSend.counter = messageCount &amp; 0xFF;

// Fill with test values
dataToSend.sensor1 = 1.1 ** messageCount;
dataToSend.sensor2 = 2.2 ** messageCount;
dataToSend.sensor3 = 3.3 ** messageCount;
dataToSend.sensor4 = 4.4 ** messageCount;
dataToSend.sensor5 = 5.5 ** messageCount;
dataToSend.sensor6 = 6.6 ** messageCount;
dataToSend.sensor7 = 7.7 ** messageCount;
dataToSend.checksum = dataToSend.counter;

bool transmitSuccess = radio.write(&amp;dataToSend, sizeof(DataPacket));

if (transmitSuccess) {
    radio.startListening();
    unsigned long responseTimer = millis();
    bool responseReceived = false;

    // Wait for response with timeout
    while (!radio.available() &amp;&amp; (millis() - responseTimer &lt; 20)) { }

    if (radio.available()) {
        ResponsePacket response;
        radio.read(&amp;response, sizeof(ResponsePacket));
        responseReceived = true;
        successCount++;

        // Print success info
        Serial.print("TX #");
        Serial.print(dataToSend.counter);
        Serial.print(" OK, Response: ");
        Serial.println(response.status);
    } else {
        noResponseCount++;  // Count missing responses separately
        Serial.print("TX #");
        Serial.print(dataToSend.counter);
        Serial.println(" - No response");
    }

    radio.stopListening();
} else {
    failCount++;  // Count failed transmissions
    Serial.print("TX #");
    Serial.print(dataToSend.counter);
    Serial.println(" - Transmit failed");
}

messageCount++;

// Print comprehensive stats every second
if (currentTime - lastStatsTime &gt;= STATS_INTERVAL) {
    float rate = (float)messageCount ** 1000 / currentTime;
    Serial.println("\n=== Statistics ===");
    Serial.print("Rate: ");
    Serial.print(rate, 1);
    Serial.println(" Hz");
    Serial.print("Total Messages: ");
    Serial.println(messageCount);
    Serial.print("Successes: ");
    Serial.println(successCount);
    Serial.print("TX Failures: ");
    Serial.println(failCount);
    Serial.print("No Responses: ");
    Serial.println(noResponseCount);
    Serial.print("Total Failures: ");
    Serial.println(failCount + noResponseCount);
    Serial.println("================\n");
    lastStatsTime = currentTime;
}

} }```

JeffS
2024-11-11 15:30:42

I looked on Amazon and randomly picked this page: https://www.amazon.com/NRF24L01-Wireless-Transceiver-Breakout-Regulator/dp/B08R9F11D1/ They said to watch this YouTube video. (The link was a picture so I had to type it in.) https://www.youtube.com/watch?v=57pdX6b0sfw He does a range test at the end.

YouTube
} Tehno Manik (https://www.youtube.com/@TehnoManik)
Al Jones
2024-11-11 15:59:56

*Thread Reply:* Screen shot from his video. 1000 meters! I did not get 20 feet with the same settings. I use 3.3v with a capacitor. Maybe I have a power issue.

JeffS
2024-11-11 16:16:55

*Thread Reply:* I see you can get just the adapter board, which gives you the voltage regulator. This is the first one I noticed. https://www.amazon.com/Makerfire-NRF24L01-Breakout-Regulator-Wireless/dp/B01IK9GCPE/

amazon.com
👀 Al Jones
JeffS
2024-11-12 11:44:05

Here is a two-part series on NRF24L01 range results. https://www.youtube.com/watch?v=lR60toEjHl8 https://www.youtube.com/watch?v=5Xhvphsj1ms He is much more scientific about it. And his comments, like, "for instance you may want to try this someday..." are very helpful.

But, in his second video he shows an alarming graph of packet size vs. rate. It seems touchy for some reason. I don't think he has the answer. But it is something to consider and research more.

YouTube
} iforce2d (https://www.youtube.com/@iforce2d)
YouTube
} iforce2d (https://www.youtube.com/@iforce2d)
JeffS
2024-11-12 11:46:00

The same guy has lots more videos. But I did'nt dig any further.

👍 Al Jones
JeffS
2024-11-12 11:51:22

And now I see there is much discussion about packet size it in the comments.

Al Jones
2024-11-12 13:04:19

*Thread Reply:* His chart shows reliable transmission tops out at 24 bytes. Should be enough for me.

Al Jones
2024-11-13 07:47:24

only tangentially related to Robotics.... I'm using an 8GB RPi 5 with 4, 2TB NVMe drives on a GeeekPi N16 Quad NVMe SSD HAT. The goal is to use 3 of the drives to create a Raid 5 array and the fourth drive for the OS and applications. One learning is the process to initiate a Raid 5 array is going to take 9 days to complete the synchronization (i.e. I'm 3 days in to writing parity data across the drives. ) I'm still hoping for a 4TB NAS with 80 MB/sec file retrieval performance once it is all finished. I'll also have a nice Linux server to mess around with. My current Synology NAS tops out at 10 MB/sec and normally runs about 2-5 MB/sec. I'm using off-brand SSD's from China. All-in the cost is ~$350.

Al Jones
2024-11-20 07:45:01

*Thread Reply:* NAS build is showing complete. Took 9.5 days. More steps to go...

```al532@RPi5NAS:~ $ al532@RPi5NAS:~ $ cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] md0 : active raid5 nvme3n1p1[3] nvme2n1p1[1] nvme1n1p1[0] 4000528384 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU] bitmap: 0/4 pages [0KB], 65536KB chunk

unused devices: <none> al532@RPi5NAS:~ $ sudo mdadm --detail /dev/md0 /dev/md0: Version : 1.2 Creation Time : Sun Nov 10 11:36:47 2024 Raid Level : raid5 Array Size : 4000528384 (3.73 TiB 4.10 TB) Used Dev Size : 2000264192 (1907.60 GiB 2048.27 GB) Raid Devices : 3 Total Devices : 3 Persistence : Superblock is persistent

 Intent Bitmap : Internal

   Update Time : Tue Nov 19 17:50:40 2024
         State : clean
Active Devices : 3

Working Devices : 3 Failed Devices : 0 Spare Devices : 0

        Layout : left-symmetric
    Chunk Size : 512K

Consistency Policy : bitmap

          Name : RPi5NAS:0  (local to host RPi5NAS)
          UUID : b1e8cab8:3c1226d8:3da094c0:cdd86aee
        Events : 22593

Number   Major   Minor   RaidDevice State
   0     259        4        0      active sync   /dev/nvme1n1p1
   1     259        6        1      active sync   /dev/nvme2n1p1
   3     259        8        2      active sync   /dev/nvme3n1p1```
Al Jones
2024-11-14 09:08:32

Trying to get the NRF24 module to work with the power adapter connected to an Arduino Nano Every since it has a 5V pin. I'm doing something wrong, but I can't figure out what is likely a simple mistake. Can't get the radio to initialize.

JeffS
2024-11-14 12:33:04

We didn't do a video meeting this week.

JeffS
2024-11-14 12:33:48

We did, but we didn't record it...

Al Jones
2024-11-16 12:46:20

Interesting conversation in Teensy forum on displays in a sunlight glare situation. https://forum.pjrc.com/index.php?threads/queued-engine-monitor-teensy-4-1-3-6.72426/page-2

Teensy Forum
JeffS
2024-11-21 11:27:51

I can't log into Zoom today. I assume Zoom is simply broken. Or my computer is broken. Either way I won't be on a Zoom meeting today.

JeffS
2024-11-21 11:41:46

If anybody is out there, could you click on this link and see it lets you into the new meeting I created. It may ask for a password, but I don't have one... https://us02web.zoom.us/j/4310467829

JeffS
2024-11-21 12:03:55

I'm going to give up on it. I will try the real meeting on another computer to see if this install is just hosed. I assume something is either broken or expired. But I'm done fighting with it...

JeffS
2024-11-21 13:04:19

I tried the official Zoom link on my Linux machine and it says "Waiting for host to start meeting", so it looks that one works. But I just tried Windows again, it still doesn't work.

Al Jones
2024-11-21 20:30:05

Seems we both had our issues. The transmission in my truck failed and I was stranded 6 hours away from home. I just got back. Apologies for missing the meeting.

JeffS
2024-11-21 22:04:23

I got an email from Ardusimple. They gave me a page with sources of free GPS correction data. I used data for USA and found a web site that allows me to edit a map. I created the attached map. Ones that say "Free" are green. Ones that say "Paid" are yellow. The problem child, Texas, has all of the data but they won't give it out, and I made it red. This was a quick hack and you have to look up your state to get the details. I had to take a screen shot of the map because I can't save it... https://www.ardusimple.com/rtk-correction-services-in-your-country/ https://www.ardusimple.com/rtk-correction-services-and-ntrip-casters-in-the-united-states-of-america-usa/ https://makeaclickablemap.com/create-clickable-map-of-the-usa

ArduSimple
Est. reading time
2 minutes
ArduSimple
Est. reading time
4 minutes
JeffS
2024-11-21 22:45:55

Here is an original list from 2014. https://www.gpsworld.com/finally-a-list-of-public-rtk-base-stations-in-the-u-s/ But remember that once Trump takes over then all of this will probably go away.

GPS World
Written by
Eric Gakstatter
Time to read
5 minutes
JeffS
2024-11-29 16:33:47

Info from today's video meeting.

======

20241129 Lawn Tractor Automation meeting - Length 39:57 This video: https://youtu.be/pvwyoBqjkKU

Chat/Notes: Al's Miro board: https://miro.com/app/board/uXjVM1yzdFo=/ Al's github: https://github.com/jones2126/ Al's Jupyter Notebook directory. https://github.com/jones2126/ros1_lawn_tractor_ws/tree/master/project_notes/jupyter_notebooks

Al: 74AHCT125 - Quad Level-Shifter (3V to 5V) [74AHCT125] https://www.adafruit.com/product/1787 Jeff: 74LVC245 - 8-bit Logic Level Shifter https://www.adafruit.com/product/735

Index: 00:00 Jeff: Points out links to meeting video index in description below. 00:55 Jeff: Complains about Windows and is switching the Zoom meeting recordings to Linux. 02:05 Jeff: Holds up some parts for a proximity sensor/encoder experiment. 03:15 Jeff: Back to the Windows to Linux switchover. 03:55 Al: Asks about the proximity sensor experiment. 06:30 Jeff: Mentions his "inline video editing" idea. 08:20 Al: Gives an update on his NAS drive (Network Attached Server?). Maybe power problems? 10:35 Al: Another way to test his SSDs. 11:00 Al: A powered USB hub. 12:00 Al: Examples of what he could use this for. 13:15 Jeff: Points out the goofy thumbnail images on Zoom. Asks more questions about the NAS drive concept. 15:10 Jeff: Points out he is tempting fate by not doing backups. 16:35 Al: Using rsync as a tool for incremental backups. 17:35 Al: Status LEDs for his radio board experiments. Individual LEDs, RGB LEDs, NeoPixels (one wire addressable). NePixels that look like regular LEDs. 24:00 Discussion about level shifting methods. 32:40 Jeff: Adafruit says to put a resistor in series with first Neopixel... 33:25 Al: Some potentiometers he found. 37:30 Jeff: Plays around some more with the Zoom options.

==

Link to access the Slack channel: https://tractorautomation.slack.com/

Lawn Tractor Automation YouTube page: https://www.youtube.com/@lawntractorautomation2726/videos

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

Index for the original ROS Agriculture Zoom meetings (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (Use following link, or newest file in that directory) http://sampson-jeff.com/RosAgriculture/ros-agriculture-youtube20230104.txt

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
Al Jones
2024-11-30 19:47:15

Testing NRF24 Radios. They look like they will be good enough for my use case and faster than my current LoRa approach. I could only get 3 Hz for my LoRa. For NRF24 I'm getting 10 Hz, 905 Feet with 22 bytes of data plus an acknowledgement message that can also be 22 bytes to get data back from the tractor.

```//receiver code example just for testing - led's are used to show connectivity and speed // // NRF24L01 RC Receiver Code //

include <SPI.h>

include <RF24.h>

// LED Pin definitions - matching transmitter const int REDLED = 2; const int YELLOWLED = 3; const int GREEN_LED = 4;

define LED_PIN 6 // Original status LED

define BLINK_INTERVAL 500 // LED blink interval in milliseconds

RF24 radio(7, 8);

// Data structure for receiving struct RadioControlStruct { float steeringval; // 4 bytes float throttleval; // 4 bytes float voltage; // 4 bytes byte estop; // 1 byte byte controlmode; // 1 byte unsigned long counter; // 4 bytes uint32t dummy; // 4 bytes added to make total 22 bytes };

// Data structure for acknowledgment struct AckPayloadStruct { unsigned long counter; // 4 bytes uint32_t dummy[4]; // 18 bytes of dummy data to make total 22 bytes };

RadioControlStruct radioData; AckPayloadStruct ackPayload; unsigned long lastBlink = 0; bool ledState = false; const uint8_t address[][6] = {"RCTRL", "TRACT"}; // "RCTRL" = radio control unit, "TRACT" = robot tractor unsigned long currentMillis = 0;

// Variables for ACK rate calculation unsigned long lastRateCalc = 0; const unsigned long rateCalcInterval = 10000; // Print rate every 10 seconds unsigned long lastLedUpdate = 0; const unsigned long ledUpdateInterval = 500; // Update LEDs every 500ms (2 Hz) unsigned long ackCount = 0; unsigned long shortTermAckCount = 0; float currentRate = 0.0;

void setup() { Serial.begin(115200); Serial.println("Starting up...");

// Initialize LED pins
pinMode(RED_LED, OUTPUT);
pinMode(YELLOW_LED, OUTPUT);
pinMode(GREEN_LED, OUTPUT);
pinMode(LED_PIN, OUTPUT);

// Initialize SPI manually first
SPI.begin();
delay(100);

Serial.println("SPI begun");

// Try to initialize radio multiple times
bool initialized = false;
for(int i = 0; i &lt; 5; i++) {
    Serial.print("Initialization attempt ");
    Serial.println(i + 1);

    if (radio.begin()) {
        initialized = true;
        Serial.println("Radio initialized!");
        break;
    }
    delay(1000);
}

if (!initialized) {
    Serial.println("Radio hardware not responding!");
    Serial.println("Please check:");
    Serial.println("1. Power (3.3V)");
    Serial.println("2. SPI connections");
    Serial.println("3. CE and CSN connections");
    while (1) {
        digitalWrite(RED_LED, HIGH);  // Indicate failure with red LED
        delay(500);
        digitalWrite(RED_LED, LOW);
        delay(500);
    }
}

// If we get here, radio initialized
//radio.setPALevel(RF24_PA_LOW);
radio.setPALevel(RF24_PA_HIGH);
//radio.setPALevel(RF24_PA_MAX);
radio.setDataRate(RF24_250KBPS);    // next speed up 'RF24_2MBPS' 
radio.setChannel(124);  // Match transmitter's channel

radio.openWritingPipe(address[1]);    // "TRACT" = robot tractor
radio.openReadingPipe(1, address[0]); // "RCTRL" = radio control unit

radio.enableAckPayload();
radio.startListening();
radio.printDetails();

// Initialize counters
ackPayload.counter = 0;
for(int i = 0; i &lt; 4; i++) {
    ackPayload.dummy[i] = 0xDEADBEEF;
}

// Initialize timing variables
lastRateCalc = millis();
lastLedUpdate = millis();

Serial.println("Setup complete");

}

void getData() { // Check if there's data available to read if (radio.available()) { uint8_t bytes = radio.getDynamicPayloadSize(); if (bytes == sizeof(RadioControlStruct)) { radio.read(&radioData, sizeof(RadioControlStruct));

        // Prepare acknowledgment
        ackPayload.counter++;
        radio.writeAckPayload(1, &amp;ackPayload, sizeof(AckPayloadStruct));

        // Increment ACK counters
        ackCount++;
        shortTermAckCount++;

        // Check for special steering value (9999)
        if (radioData.steering_val == 9999.0) {
            // Handle LED blinking
            if (currentMillis - lastBlink &gt;= BLINK_INTERVAL) {
                ledState = !ledState;
                digitalWrite(LED_PIN, ledState);
                lastBlink = currentMillis;
            }
        } else {
            // Turn LED off for normal operation
            digitalWrite(LED_PIN, LOW);
            ledState = false;
        }
    } else {
        // Wrong payload size - flush the buffer
        radio.flush_rx();
        Serial.print("Invalid payload size: ");
        Serial.println(bytes);
    }
}

}

void updateLEDs() { // Update LEDs every 500ms (2 Hz) if (currentMillis - lastLedUpdate >= ledUpdateInterval) { float timeElapsed = (currentMillis - lastLedUpdate) / 1000.0; // Convert to seconds currentRate = shortTermAckCount / timeElapsed; // Calculate Hz

    // Turn off all LEDs first
    digitalWrite(RED_LED, LOW);
    digitalWrite(YELLOW_LED, LOW);
    digitalWrite(GREEN_LED, LOW);

    // Turn on appropriate LED based on rate
    if (currentRate &lt; 2.0) {
        digitalWrite(RED_LED, HIGH);
    } else if (currentRate &gt;= 2.0 &amp;&amp; currentRate &lt;= 5.0) {
        digitalWrite(YELLOW_LED, HIGH);
    } else {  // currentRate &gt; 5.0
        digitalWrite(GREEN_LED, HIGH);
    }

    shortTermAckCount = 0;  // Reset short-term counter
    lastLedUpdate = currentMillis;        
}

}

void printACKRate() { // Calculate and display rate every 10 seconds if (currentMillis - lastRateCalc >= rateCalcInterval) { float timeElapsed = (currentMillis - lastRateCalc) / 1000.0; // Convert to seconds float rate = ackCount / timeElapsed; // Calculate Hz

    Serial.print("ACK Rate (Receiver): ");
    Serial.print(rate);
    Serial.print(" Hz (");
    Serial.print(ackCount);
    Serial.println(" ACKs sent in 10 seconds)");

    // Reset long-term counter
    ackCount = 0;
    lastRateCalc = currentMillis;
}

}

void checkHeartBeat() { // If we haven't received data for a while, implement failsafe if (currentMillis - lastBlink > 1000) { // 1 second timeout // Implement your failsafe behavior - i.e. set transmission to neutral. } }

void loop() { currentMillis = millis(); getData(); updateLEDs();
printACKRate(); checkHeartBeat(); }```

JeffS
2024-12-01 06:08:25

I randomly decided I should make another attempt at putting video thumbnails into the meeting index. I found a way to do it and I hacked my convertor. I finally got it to work. Although it is randomly putting images in the chat and index section, which I hadn't intended. So I will have to go back and figure that out.

This loads the images every time you open the file. So you have to be online to see them. And I don't know if it is going to cause a problem if you have a slow Internet connection...

http://sampson-jeff.com/RosAgriculture/LawnTractorMeetingNotes.htm

But is late, so I'm to bed.

Al Jones
2024-12-01 07:53:21

*Thread Reply:* The thumbnails loaded super fast for me. I'm on a Verizon Fios (i.e. fast) connection.

JeffS
2024-12-01 17:28:15

*Thread Reply:* I made the images slightly smaller, but it eliminated the black bars at the top and bottom of images. I don't think it creates image out in the description anymore. I may make the images clickable...

👍 Al Jones
JeffS
2024-12-03 00:11:20

Now the images on the HTML index are clickable. So to get to the YouTube video, you can click the thumbnail image or click the link directly above it.

http://sampson-jeff.com/RosAgriculture/LawnTractorMeetingNotes.htm

Bob Hassett
2024-12-04 17:27:25

Finally have some time in the evenings. So I’m thinking of learning ROS. I forgot ros 1 so maybe just start from scratch and learn ROS 2? Which ROS 2 version should I start with?

Al Jones
2024-12-05 11:51:13

*Thread Reply:* I don't know about versions, but I have been thinking about getting TurtleBot to run in ROS 2 as a way to get started.

Bob Hassett
2024-12-05 20:40:18

*Thread Reply:* @Al Jones thanks for the suggestion! I’ll look in to it.

JeffS
2024-12-05 21:24:15

Info from today's video meeting.

======

20241205 Lawn Tractor Automation meeting - Length 14:27 This video: https://youtu.be/SghpPO_JL9s

Chat/Notes: Al's Miro board: https://miro.com/app/board/uXjVM1yzdFo=/ Al's github: https://github.com/jones2126/ Al's Jupyter Notebook directory. https://github.com/jones2126/ros1_lawn_tractor_ws/tree/master/project_notes/jupyter_notebooks Example named entries in the index file: http://sampson-jeff.com/RosAgriculture/LawnTractorMeetingNotes.htm#20241107 http://sampson-jeff.com/RosAgriculture/LawnTractorMeetingNotes.htm#20240822 http://sampson-jeff.com/RosAgriculture/LawnTractorMeetingNotes.htm#20240509 http://sampson-jeff.com/RosAgriculture/LawnTractorMeetingNotes.htm#12012022

Index: 00:00 Jeff: Points out links to meeting video index in description below. 02:05 Al: Talks about range testing for his NRF24 radios. 04:15 Jeff: Asks if Al's house blocks the radios. 06:50 Jeff: Asks if Al has an SDR radio for testing. (Maybe seeing other radio sources interfering.) 08:50 Al: Gives an update on his Raspberry Pi 5 project. 10:50 Jeff: Mentions wasting money on Black Friday sales. UPS, SSD drives.

==

Link to access the Slack channel: https://tractorautomation.slack.com/

Lawn Tractor Automation YouTube page: https://www.youtube.com/@lawntractorautomation2726/videos

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

Index for the original ROS Agriculture Zoom meetings (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (Use following link, or newest file in that directory) http://sampson-jeff.com/RosAgriculture/ros-agriculture-youtube20230104.txt

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
Al Jones
2024-12-08 17:15:17

Teensy at 3.3V working with Adafruit_NeoPixel.h library and the 74AHCT125 level shifter to get the 5V the LED wants.

Al Jones
2024-12-09 09:12:27

*Thread Reply:* For reference

Al Jones
2024-12-10 09:36:25

Trying to clone the design for a radio control from this guy. https://howtomechatronics.com/projects/diy-arduino-rc-transmitter/

Trying to figure out the dimensions to use for the PCB Board by replicating the shape in Fusion 360.

How To Mechatronics
Written by
Dejan
Est. reading time
30 minutes
slackbot
None
None