@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".
When I press the link this is what I get. Maybe the Pro version has an export feature?
@JeffS Seems I received something similar. I won't click through it until we talk. I'm still in PA btw. See you tomorrow.
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
Looks interesting. Ackerman in ROS2
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.
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...
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?
*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.
*Thread Reply:* There is more discussion about this on today's video meeting...
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
Thanks for finding the 3videos on 3d printing. Ill dig into them. BTW Jeff, can you recommend a free cad program to play with?
I can't recommend any software since I don't use 3D printers. Those videos seemed to have recommendations.
@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.
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
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...
Interesting story/project in Italy. https://medium.com/@stevechange/a-self-driving-car-project-pt-1-aa2bb061d3cf
Downsized 2 more Barbie Jeeps for spare parts/future projects. Took Jeff’s suggestion to save the steering stuff just in case.
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
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
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.!
Interesting Jeff. I wonder how long it would last encountering the trucks jaws and the ups and downs 😱
Another trash can idea. The “putty” he uses looks interesting and worth a try.
https://youtu.be/7fdM2hHW8yA?si=qVg5CoXlfV0AIya0
Here is the video on the "Trash Train" that I mentioned. https://www.youtube.com/watch?v=VhYEOG9LOIk
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
Posting here in case it is useful in the future: https://randomnerdtutorials.com/esp32-datalogger-download-data-file/
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.
Looks like even the free legacy stuff is going away. Any one using a different FREE vnc?
*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/
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
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.
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.
Oh, and my last power outage. My UPS ran for an hour and then the power came back on.
Front wheels hang up in some situations
Attached is a .pdf that is the state of my semi-automated approach to building a path. For me there are three possible approaches:
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.
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
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
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.
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
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
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
Here is a video from Home Brew Robotics about autonomous lawn mowers. https://www.youtube.com/watch?v=qbx0oSv-LwQ
*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.
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
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.
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.
@Al Jones can you post some pictures of how you attached your sensor? I’d like to know how to do it.
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
*Thread Reply:* Thanks for highlighting the Home Brew Robotics video. A lot of good ideas that could be borrowed ;-)
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
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.
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.
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. :)
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.
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
*Thread Reply:* That orange thing might bee GPS? Also looks like maybe a stereo camera doing 3d?
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
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
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 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.
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.
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
Oh good... It won't post correctly anymore. Here is the link to today's video. https://youtu.be/iFtFYNVx4Es
TESTING... Here is the link to today's video. https://youtu.be/iFtFYNVx4Es
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]
Interesting videos about AI. https://groups.google.com/g/hbrobotics/c/lrZPiMPqFuU
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.
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
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
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.
I did some field testing yesterday. This time on straights with Dubins/key hole turns.
This an image of recreating odometry in Excel. In case I want to show it on today's video meeting.
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
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)
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
*Thread Reply:* For reference...'private void ReceiveFromAgIO(byte[] data)' in the file 'UDPComm.Designer.cs' appears to be where sensors are read
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
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...
Pictures are coming out of the California Maker Faire this weekend. https://photos.app.goo.gl/9HazCgAJM7ox5e8d6
Here is an informative thread on transforms/links. https://groups.google.com/g/hbrobotics/c/KD-hn9TAkGY
Another remote access option. After a few days use, I like it. https://www.nomachine.com/remote-access-for-everybody
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
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
argh. Amazon took my order for an RPi 5, then cancelled it 10 days later. And they still show availability on their web site.
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.
*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.
*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.
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
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
Cute. https://nanosaur.ai/
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
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 > 1) { // Skip first message
uint8_t expected = (lastCounter + 1) & 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(&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
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 & 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(&dataToSend, sizeof(DataPacket));
if (transmitSuccess) {
radio.startListening();
unsigned long responseTimer = millis();
bool responseReceived = false;
// Wait for response with timeout
while (!radio.available() && (millis() - responseTimer < 20)) { }
if (radio.available()) {
ResponsePacket response;
radio.read(&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 >= 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;
}
} }```
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.
*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.
*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/
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.
The same guy has lots more videos. But I did'nt dig any further.
And now I see there is much discussion about packet size it in the comments.
*Thread Reply:* His chart shows reliable transmission tops out at 24 bytes. Should be enough for me.
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.
*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```
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.
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
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.
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
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...
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.
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.
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
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.
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
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 //
// LED Pin definitions - matching transmitter const int REDLED = 2; const int YELLOWLED = 3; const int GREEN_LED = 4;
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 < 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 < 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, &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 >= 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 < 2.0) {
digitalWrite(RED_LED, HIGH);
} else if (currentRate >= 2.0 && currentRate <= 5.0) {
digitalWrite(YELLOW_LED, HIGH);
} else { // currentRate > 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();
}```
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.
*Thread Reply:* The thumbnails loaded super fast for me. I'm on a Verizon Fios (i.e. fast) connection.
*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...
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
I added name tags to each header on the index file. So the name is the 8 digit date in the header. So you can go directly to a section. Here are some examples:
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
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?
*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.
*Thread Reply:* @Al Jones thanks for the suggestion! I’ll look in to it.
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
Teensy at 3.3V working with Adafruit_NeoPixel.h library and the 74AHCT125 level shifter to get the 5V the LED wants.
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.