Al Jones
2018-01-23 10:58:03

@Al Jones has joined the channel

JeffS
2021-01-29 11:56:02

@JeffS has joined the channel

Juan Eduardo Riva
2021-01-29 12:22:02

@Juan Eduardo Riva has joined the channel

JeffS
2021-01-30 00:25:18

I can't get docker to work (on Ubuntu 20.04). The curl install does not work. But the "sudo apt install..." did work. I had to add "sudo" to the "./start.sh" command. It down loaded the docker container. I can't run the "roslaunch ... ...". It complains about networking. Someone had asked that on ROS Agriculture Slack, but that has all been deleted. Even if that worked, I see there are apparently two different ways to start a docker package...

So I decided to go back to what I know. I loaded VirtualBox on Ubuntu 20.04. I created a Ubuntu 16.04 virtual machine. I am loading ROS kinetic on that. Then I will clone which ever respository seems appropriate. Maybe I will clone the Ubuntu/Kinetic machine and have both simulators loaded that I can choose from.

Al Jones
2021-01-30 07:30:56

*Thread Reply:* Q: Re: networking error,

$ docker run -p 6080:80 --network=”host” --device=/dev/input/js0 rosagriculture/lawn_tractor

I had trouble with the above statement and removed the '--network=”host”' portion

Q: Are you following someone's instructions? It would be interesting to see how they have documented their steps.

Juan Eduardo Riva
2021-01-31 09:46:55

*Thread Reply:* hi @JeffS

If you would like to use Docker as a non-root user, you should now consider adding your user to the “docker” group with something like: sudo usermod -aG docker <your-user> Remember to log out and back in for this to take effect!

look the sreencap or the link..

https://docs.docker.com/engine/install/ubuntu/

JeffS
2021-01-31 13:03:02

I got VirtualBox loaded on 20.04. I created an image with Ubuntu 16.04 and ROS Kinetic. I will follow the Docker instrucions again. Here: https://github.com/ros-agriculture/lawn_tractor/blob/master/simulator.md I will see if these instructions work under 16.04. (Mainly as an experiment.)

But, I don't plan to put much effort into Docker.

I ordered a new hard drive yesterday. I plan to swap the 20.04/Noetic/Foxy hard drive in my robot laptop with the new one and build a fresh install of 16.04/Kinetic. Then clone the actual repositories and run it without virtual machines or Docker. I'll let you know when I have that loaded.

GitHub
👍 Al Jones
Al Jones
2021-01-31 18:13:12

I can run a waypoint mission around the green box in the simulator. The waypoints are referenced at the bottom of this file in the main Google folder.

JeffS
2021-01-31 18:31:21

I loaded Docker from this page: https://github.com/ros-agriculture/lawn_tractor/blob/master/simulator.md on 16.04, under VirtualBox, under 20.04.

The curl command works under 16.04, but did not work under 20.04. If you load it with curl it gives you the message about: sudo usermod -aG docker <your-user> I didn't see that when I loaded using the "sudo app install" method. I may have just missed it.

I still had to add sudo to the ./start.sh command. Looks like somebody did something cute inside the start.sh script.

When I did the roslaunch... it took about 10 minutes before ROS time started counting and the tractor turned red. Then I could select a destination and it would drive. But all of the other windows were running real slow and the whole thing was un-usable.

So I loaded the "Local" version from the install page (with 16.04 under VirtualBox under 20.04). That seemed to work and behave much better.

So tomorrow when I get my new drive I will load that and hopefully have a native install that works well enough to do development.

GitHub
JeffS
2021-01-31 18:39:47

I just started it again. It still takes 3-1/2 minutes to start up. (the local install under the virtual machine) So hopefully a fresh install with native Ubuntu 16.04 (on a SSD) will improve it.

👍 Juan Eduardo Riva
Juan Eduardo Riva
2021-01-31 21:23:14

Well at least we are all near the same place. I'm working in the ros in spanish community.. we are just working in the translation of the different type of install scripts. There are a lot of options but One thing that makes all this very confusing to understand is which problems are yours alone and which are common to everybody. The situation that you suffer with the installation is na example of that. I'm working in documenting all types of installations..

JeffS
2021-02-01 18:21:10

My new (cheap, 250GB SSD) showed up. In two hours I had it installed, loaded Ubuntu 16.04, ROS Kinetic, lawn_tractor simulator (local version).

It works. It boots from power-off in 50 seconds (due to SSD). When I run roslaunch lawn_tractor_sim lawn_tractor_sim.launch it takes about 15 seconds until it is driveable.

I'm pretty happy with this setup. My 20.04 setup is slow. Everything about it is slow. I may have to down grade to something else if I can't figure out what is wrong with it...

Juan Eduardo Riva
2021-02-01 19:15:52

*Thread Reply:* So you are running ROS kinetic with ubuntu 16.04.. That will be your final setup..? Because if that's right we can began loading it to the spreadsheet..

Al Jones
2021-02-01 19:49:00

*Thread Reply:* I have a

Al Jones
2021-02-01 19:49:43

*Thread Reply:* I bought it used off of ebay

JeffS
2021-02-01 19:57:04

*Thread Reply:* Juan said: "So you are running ROS kinetic with ubuntu 16.04.. That will be your final setup..? Because if that's right we can began loading it to the spreadsheet.." (I don't know hot to do a quote...

That is my final setup for today. I'm not really interested in updating the spread or even being in the spread sheet.

Al Jones
2021-02-01 20:07:03

*Thread Reply:* I am running 16.04/Kinetic. I don't know about "final". At the moment I don't have a need to change so I guess I will stay where I'm at until there is a reason to switch. I'll use whatever works reliably and has the most support.

JeffS
2021-02-01 18:38:43

[Does anybody know how to prevent Slack from appending messages togher? Or do I just have to wait 10 minutes before posting another topic?]

I have a thought on joysticks. Both of my computers install the joystick as js1 and not js0. So I always have to hack the config files.

What if a guy were to create an alias for a particular computer? Maybe alias js0 (or js1) to a name, say, JOYSTICKALIAS. That could be done in the .bashrc file. Then edit all of the config files to use JOYSTICKALIAS instead of js0 (or js1).

Juan Eduardo Riva
2021-02-01 19:10:39

*Thread Reply:* Naaa, I hate slack, it makes me fell old.. but seems to be the only tool posible.. 🤷‍♂️

Al Jones
2021-02-01 19:57:33

*Thread Reply:* I don't know about appending messages together. In a channel I think you can only reply to a thread or at the bottom start a new thread.

JeffS
2021-02-01 20:04:40

*Thread Reply:* No, this is what I'm talking about. Final thought...

JeffS
2021-02-01 20:05:14

*Thread Reply:* Oh, I have a new thought. But look... it appends it to the previous message...

JeffS
2021-02-01 20:06:03

*Thread Reply:* Oh course, now it didn't. Maybe it is context sensitive. This was in a thread. Let me go try it in the main channel.

Juan Eduardo Riva
2021-02-02 03:41:33

*Thread Reply:* for me it is incomprehensible and the only way to see what happens is to see the threads of the conversations; but like that, several times I lost the context and order of the conversations

JeffS
2021-02-01 18:57:30

Oh, the alias thing doesn't fix my problems. Alias seems to work for commands but not for variables...

A bigger problem is that my joystick shows up as js0 or js1, depending if the joystick is plugged in when I turn the computer on.

I should look at udev rules to identify my Logitech gamepad. Then create a device name like "JOYSTICK". Then use that as /dev/input/JOYSTICK instead of /dev/input/js0.

JeffS
2021-02-01 20:07:04

(example) This is what I'm talking about. Final thought...

Al Jones
2021-02-01 20:08:18

*Thread Reply:* You have started a new message. I am replying to the thread.

JeffS
2021-02-01 20:08:02

This is a totally new thought... Does it get appended or does it start a new message?

Al Jones
2021-02-01 20:09:15

*Thread Reply:* It is a new thought/subject.

Al Jones
2021-02-01 20:17:48

*Thread Reply:* I would avoid checking the box at the bottom, regarding "Also send to". That seems to be duplicating messages.

JeffS
2021-02-01 20:22:21

*Thread Reply:* Well that is more Slack non-sense. If you don't check the box it is only appened to the thread. A user will be notified if "they are following the thread" (whatever that means). But if you check the box then it gets added (as a duplicate to the main channel) and everybody gets notified. I personally would not use threads since it just adds to the confusion, but that is the way the Slack is written. But if someones starts a thread then I will reply to the thread if I want to answer someone.

JeffS
2021-02-01 20:23:52

*Thread Reply:* The bottom line is... Slack is free and it mostly works. So I am willing to put up with it.

JeffS
2021-02-01 20:08:52

Now if I wait 10 minutes (or maybe 3 or 5 minutes it will start a new message. Or if somebody else posts before I do.

JeffS
2021-02-01 20:10:38

So the moral of the story is... You just have to guess at what the results will be. I'm assuming the people that write the Slack software don't actually use it...

JeffS
2021-02-01 20:49:32

Just a suggestion:

I'm looking at this file: https://docs.google.com/document/d/1uXMrZL0K-PJ7fLSx8w51RZotoYZD70tybRhmNpjhyyU/edit Named: Using Matt's waypoint publisher

It would be real handy to have a synopsis at the top. Maybe something like this:

Waypoint Publisher This will read waypoints from a file and send them to ... (movebase_flex?) to drive a path. This consists of two python scripts and a text file containing a list of waypoints.

I extracted this evaluation from digging through your steps.

I assume if I build the python scripts and create a waypoint file that I should be able to follow a path without using Docker or VS-Code or Terminator. But I will have to try it to see...

Al Jones
2021-02-01 21:20:10

*Thread Reply:* I can add it or you can add it; You should have edit rights. Re: "without using Docker...", I assume so. It is simply meant to help people go fast; Not a hard requirement.

JeffS
2021-02-01 20:51:33

Why does Slackbot keep suugesting that I load github app and Google Drive Link app? Do I need those? What would they do to help me?

Al Jones
2021-02-01 21:20:43

*Thread Reply:* No idea.

Al Jones
2021-02-01 21:21:29

fyi, looks interesting to me - I've spoken to him before about RTK....https://deepsouthrobotics.com/2019/08/23/anatomy-of-a-huge-self-driving-mower/

JeffS
2021-02-02 19:05:31

I got my tractor to follow the path as Al described in his instructions. I read through his instructions and pulled out the pieces I thought I needed. I created a package named "jeff" to put my new files in. So I put the files here: ~/catkin_ws/src/jeff/python/runmission$ The 3 files are: generated_points.txt path_follower_node.py pathpublisher.py I noticed several things. I have to execute the ~/catkin_ws/src/jeff/python/runmission$ rosrun jeff pathpublisher.py from the runmission directory. Otherwise the pathpublisher does not find the generated_points.txt file. I will have to figure that out. It does not start moving on the first path generated. It starts moving when the second path is published. It generates more paths while it is moving but they are ignored. When it finishes and I get "GOAL Reached!" and it stops. It will not start again until I shut down the simulator launch file and restart it. So I will have to figure that out. It doesn't drive very smoothly and puts out warnings. But it goes where it is supposed to. That is probably tuning... I also notice the packages I downloaded using git clone don't show up as packages. (when I do rospack find ...) So I should look at that. But since I got it move I now have things to look at...

Al Jones
2021-02-02 21:10:41

*Thread Reply:* "...It will not start again until I shut down the simulator launch file and restart it...., I have the same experience. I'm guessing there are some path cancel commands needed.; "...It doesn't drive very smoothly...", I have some notes in this file. Basically I think I learned the system wants a point at least every meter.

JeffS
2021-02-03 22:51:36

I got Gazebo running and I got a random Ackermann vehicle to run.

🙌 Al Jones
Al Jones
2021-02-05 14:01:09

*Thread Reply:* Just posting this here for future reference https://github.com/carla-simulator/ros-bridge/blob/master/carla_ackermann_control/README.md

GitHub
JeffS
2021-02-05 14:13:16

*Thread Reply:* This is newer than what I found. And it is not an end-less derivation of this original I found: https://github.com/jbpassot/ackermann_vehicle This is the newest version of that I found: https://gitlab.yonohub.com/mohamedahmed/picar/tree/master/src Which is the one with red wheels.

FYI: I am not suggesting that anyone else go down the Gazebo path. Maybe if I get something usable...

GitHub
GitLab
👍 Al Jones
Juan Eduardo Riva
2021-02-04 12:05:32

Nice

Juan Eduardo Riva
2021-02-04 12:06:04

Throu cmdvel..?

JeffS
2021-02-04 12:27:14

That is not using cmdvel. It is using ackermanncmd. (as shown in the image.)

👍 Juan Eduardo Riva
JeffS
2021-02-05 14:31:43

BTW, if you try to run roslawntractor/lawntractornavigation/launch/sendgoals.launch you will find that the file "followgps_waypoints" is missing. I searched the original Slack channel and did not find it.

JeffS
2021-02-05 14:35:44

*Thread Reply:* I thought maybe the docker image did not match the main repository, but they do match and it is missing in both places.

I did not try to upgrade the docker. I see there is a page that suggests that may be possible: https://hub.docker.com/u/rosagriculture

I don't know if it is newer or not.

Juan Eduardo Riva
2021-02-05 14:43:21

*Thread Reply:* I'm not sure it's going to work but I'm uploading everything I have so you can see it.

JeffS
2021-02-05 18:35:15

*Thread Reply:* Maybe I found the solution. This video says to gpsgoalserver: https://www.youtube.com/watch?v=lTqUMAUM1cc https://github.com/ros-agriculture/gps_goal_server I'll check it out...

YouTube
} ROS Agriculture (https://www.youtube.com/channel/UCnr6AObsHnHSGPge0HVlBpA)
GitHub
JeffS
2021-02-05 18:38:50

*Thread Reply:* Hey, this a perfect time to use my video index I am creating: 12052020 Lawn tractor meeting https://www.youtube.com/watch?v=lTqUMAUM1cc 00:00 Juan discusses documentation 12:30 Al talking about adding satellite image to RVIZ. 15:20 Johanthan announces a video presentation 20:20 Doug has a new Oculus Quest 2 headset. Mentions microcontrollers. 23:55 Matt asks if people are having problems with Docker networking. Lots of discussion about Docker and the simulator. 41:10 Al requests a model for an Ackermann vehicle. 45:50 Jeff asks about Matt's drone.

JeffS
2021-02-05 19:19:38

*Thread Reply:* I didn't hear a mention of gpsgoalserver in the video. But there is a link in the comments below the video.

Al Jones
2021-02-05 16:26:00

Might be some interesting code here: https://hackaday.io/project/25406-wild-thumper-based-ros-robot I cannot open the git repository referenced from work.

hackaday.io
JeffS
2021-02-05 16:55:58

*Thread Reply:* This does look interesting. Worth a look.

JeffS
2021-02-05 17:12:39

*Thread Reply:* He does have a gpsfollowwaypoints.py script. Looks like it reads waypoints from a file, sends them to move_base and waits for each one to complete.

Al Jones
2021-02-05 18:16:35

*Thread Reply:* Looks like he has a movebase (not movebase_flex) version of a gps waypoint module.

Al Jones
2021-02-05 18:18:13

*Thread Reply:* $ git clone <https://defiant.homedns.org/git/ros_wild_thumper.git>

JeffS
2021-02-05 23:11:53

Al, are any of these towns close to you in Texas?

jeff@jeff-hp-pavilion:~$ grep -i tx rtk2gosourcetable.txt STR;AUSDUVAL;Austin, TX;RTCM 3.2;1005(1),1074(1),1084(1),1124(1),1230(1);0;GPS+GLO+BDS;SNIP;USA;30.30;-97.73;1;0;sNTRIP;none;N;N;0;none; STR;AUSLOFTTX;Austin, Tx;RTCM 3.2;1005(1),1074(1),1077(1),1084(1),1087(1),1094(1),1097(1),1124(1),1127(1),1230(1),4072(1);;GPS+GLO+GAL+BDS;SNIP;USA;30.28;-97.69;1;0;sNTRIP;none;N;N;10860;none; STR;EPCWID-Fabens;Fabens, TX;RTCM 3.1;1004(1),1006(10),1008(10),1012(1),1033(10),4091(10);2;GPS+GLO;SNIP;USA;31.50;-106.16;1;0;sNTRIP;none;N;N;1940;none; STR;PROVEN;Wichita Falls, Tx;RTCM 3.1;1004(1),1006(10),1008(10),1012(1),1033(10),4091(10);2;GPS+GLO;SNIP;USA;33.89;-98.53;1;0;sNTRIP;none;N;N;2540;; STR;VN1-legacy;Dallas, Tx;RTCM 3.2;1004(1),1005(1),1012(1),1033(1),1230(1);2;GPS+GLO;SNIP;USA;32.89;-96.70;1;0;sNTRIP;none;N;N;3140;none; STR;VN1;Dallas, Tx;RTCM 3.2;1005(1),1077(1),1087(1),1097(1),1127(1),1230(1);;GPS+GLO+GAL+BDS;SNIP;USA;32.89;-96.70;1;0;sNTRIP;none;N;N;7120;; STR;VN1v2;Dallas, Tx;RTCM 2;;0;;SNIP;USA;32.89;-96.70;1;0;sNTRIP;none;N;N;0;none; STR;ZUPT6818;Houston, Tx;RTCM 3.2;1005(1),1077(1),1087(1),1097(1),1127(1);0;GPS+GLO+GAL+BDS;SNIP;USA;29.94;-95.53;1;0;sNTRIP;none;N;N;0;none;

I pasted the sourcetable from here into a file and did grep. http://www.rtk2go.com:2101/

Nothing seems to show up in PA or OH.

Al Jones
2021-02-06 12:37:17

*Thread Reply:* Checking now....trying to figure out the distance. Austin will be West and Houston will be East. (link)

google.com
Al Jones
2021-02-06 12:41:39

*Thread Reply:* Looks like 60 miles

Al Jones
2021-02-06 12:44:22

*Thread Reply:* Or 73 miles from Austin

Al Jones
2021-02-06 12:46:16

*Thread Reply:* It is fascinating that I was just looking at RTK reviews of the ublox devices:

  1. https://blog.adafruit.com/2020/06/08/eye-on-npi-u-blox-c099-f9p-application-board-for[…]f9p-gnss-rtk-module-eyeonnpi-adafruit-digikey-digikey-ublox/
  2. https://deepsouthrobotics.com/2019/06/03/the-taming-of-the-u-blox-zed-f9p/
Adafruit Industries - Makers, hackers, artists, designers and engineers!
JeffS
2021-02-06 13:30:10

*Thread Reply:* Since I don't know how the position degrades with distance from a base station, I always think it would be good to experiment with that. But I don't have a convenient way to do that. But it just occured to me that I could tell the CORS system that I am by any random base station and it might send me the data from that location. I might try that if I get around to it. I can just dump the binary data to my screen and it has a few readable messages in it. One message is the name/location of the base station. So I could verify that I can actually pick and choose base station sites.

👍 Al Jones
JeffS
2021-02-06 15:54:32

*Thread Reply:* This does seem to work. I can get data from Cologne, MN (32.5 miles) or Hollywood, MN (37.2 miles) or Brownton, MN (57.5 miles). So I can click on the map and it tells me where the base station is. I'll have to figure out how to test this. I'm using this map: http://mncors.dot.state.mn.us/Map/SensorMap.aspx

🙌 Juan Eduardo Riva
JeffS
2021-02-05 23:22:32

Oh, if you put in "penn" it shows a couple in Pennsylvania. Are those close to you.

jeff@jeff-hp-pavilion:~$ grep -i penn rtk2gosourcetable.txt STR;Base9557;Is near: Doylestown, Pennsylvania;RTCM 3;PENDING;;;SNIP;USA;0.00;0.00;1;0;sNTRIP;none;N;N;0;none; STR;MAMCCMR1;Is near: Doylestown, Pennsylvania;RTCM 3;PENDING;;;SNIP;USA;0.00;0.00;1;0;sNTRIP;none;N;N;0;none;

JeffS
2021-02-10 02:54:42

I found the path generator code. It is under Juan's files. https://github.com/rje1974/Proyecto-Pochito/blob/master/software/base/tractor/catkin_ws/src/pochito/scripts/path_generator.py I t was referenced in this video: https://www.youtube.com/watch?v=wnXnZdxiRt8 At around 23:50

GitHub
YouTube
} ROS Agriculture (https://www.youtube.com/channel/UCnr6AObsHnHSGPge0HVlBpA)
💩 Juan Eduardo Riva
Juan Eduardo Riva
2021-02-10 13:44:26

*Thread Reply:* My files are a real mess..

JeffS
2021-02-10 14:10:11

*Thread Reply:* I just got "path_planner.py" to run. And it does work.

I loaded it and ran it under python3, so it does work under python3 also.

I copied it into my home directory. I had to load "dubins". pip3 install dubins I had to change the path for the "waypoint.txt" input file. I just made up a random waypoint file. And ran it. I was surprised that it created a graph for me.

It also created a "generated_points.txt" output file.

So, @Al Jones you can modify paths all you want...

JeffS
2021-02-10 14:12:39

*Thread Reply:* This is the output file. jeff@jeff-hp-pavilion:~$ cat generated_points.txt 100.0 0.0 0.0 101.0 0.0 0.0 102.0 0.0 0.0 103.0 0.0 0.0 104.0 0.0 0.0 105.0 0.0 0.0 106.0 0.0 0.0 107.0 0.0 0.0 108.0 0.0 0.0 109.0 0.0 0.0 110.0 0.0 0.0 110.95885107720841 -0.24483487621925448 5.783185307179586 111.78366617911476 -0.8053070937595033 5.836654403443426 112.75423179462344 -0.9985475938345956 0.05346909626383933 113.6986276847929 -0.7028181439855021 0.5534690962638393 114.38563279875153 0.009476372539585998 1.0534690962638393 114.64704432446128 0.963941415955595 1.5534690962638393 114.4188596033827 1.9268906555021608 2.0534690962638393 113.75694621345619 2.662560533309475 2.5534690962638393 112.8233636375723 2.990833405906349 3.0534690962638393 111.84668545013798 2.831336625164389 3.5534690962638393 111.01861614211509 2.2769477785279775 3.6741235767316827 110.06823567732195 2.00105563109248 3.1741235767316827 110.0 2.0 3.14 109.00000000134673 2.000002030529716 3.141593161222221 108.00000000134688 2.000001522897288 3.141593161222221 107.000000001347 2.0000010152648597 3.141593161222221 106.00000000134713 2.000000507632432 3.141593161222221 105.00000000134726 2.000000000000004 3.141593161222221 104.00000000134739 1.999999492367576 3.141593161222221 103.00000000134752 1.999998984735148 3.141593161222221 102.00000000134764 1.99999847710272 3.141593161222221 101.00000000134777 1.999997969470292 3.141593161222221 100.0000000026945 1.999999999995715 3.1400000013472558 jeff@jeff-hp-pavilion:~$

Juan Eduardo Riva
2021-02-10 14:16:02

*Thread Reply:* nice, I am a bit lost. When I try to go back to all this, it got complicated .. Today I am going to try again .. I would like to get to Friday with this ready and a small text where I explain what my goals with the robot are. It left me wondering the question you asked about what we thought we were going to achieve and if we were confused with the goals that matt had said were possible

Al Jones
2021-02-11 07:06:46

*Thread Reply:* Looking forward to working on it with you guys on Friday.

Juan Eduardo Riva
2021-02-11 11:19:00

*Thread Reply:* Al and Jeff, I'm for the meeting, unless it gets complicated with my sister-in-law, who is ill and I have to help my brother.

I think last week the meeting was very good although we got complicated with jitsy .. How about extending the meeting a little and let's work a little with the simulators together ..?

With all this Spanish translations I am with a lot of work and I have not been able to dedicate myself to simulators. I'm also going to start reporting in slack when I'm working in the simulator in case anyone wants to do something together.

Juan Eduardo Riva
2021-02-12 10:58:56

*Thread Reply:* My idea is that the robot travels a path, where it stops several times, each time that happens it takes a variable and continues its journey until it ends where it started. With the improvement of these steps, I plan to advance to a robot that does recognition over long distances and on large surfaces autonomously. For those goals I need to bring the following points to the robot that I achieve in the simulator.

  1. A simple navigation between two gps points.
  2. The value of a variable provided by a sensor when it reaches the selected point.

Those things I achieved in the simulator and if it weren't because my tractor is broken, I could be trying to reproduce them. As I can't solve the tractor break for now. The points that I am looking to work on are those in the worksheet that we shared with Al, to which last week I added making movements by commander akermann.

Al Jones
2021-02-20 17:12:57

*Thread Reply:* @JeffS will recognize this as the output from path_generator.py. I have been able to replicate what he did. Yea!

🙌 Juan Eduardo Riva
Al Jones
2021-02-20 17:15:24

*Thread Reply:* Instructions are in the folder "waypoint publisher"

Al Jones
2021-02-20 17:20:59

*Thread Reply:*

Al Jones
2021-02-27 16:46:57

*Thread Reply:* @JeffS Running the generated waypoints in the simulator failed. I'm going to try and increase the number of waypoints.

Al Jones
2021-02-27 16:48:11

*Thread Reply:*

Al Jones
2021-02-27 17:24:53

*Thread Reply:* I adjusted the path starting at 0,0 and only went 10 meters, and it ran the course in the simulator. Will now try a larger square path.

JeffS
2021-02-27 17:34:46

*Thread Reply:* Keep in mind this expects your tracotr to be at the starting location and pointed in the right direction. Also the point spacing may need to match the speed of the vehicle. So 1 meter spacing may be too far for it to keep up.

Al Jones
2021-02-27 17:41:21

*Thread Reply:* Yeah the simulator does not end very elegantly so I have to restart it each time; It always starts at that same spot

🤷‍♂️ Juan Eduardo Riva
JeffS
2021-02-27 17:46:04

*Thread Reply:* I don't know what you mean by "simulator does not end very elegantly". I would think it should stop at the end of the path you defined.

But after it stops you can do a 2D Nav Goal to have it drive back to the start. But I don't think the "2D Nav Goal Rotational Tolerance" is set to a reasonable value. So it is not pointing in the correct direction when it stops.

Al Jones
2021-02-27 18:16:58

*Thread Reply:* re: not ending elegantly, I can't just run another set of waypoints

Al Jones
2021-02-27 18:17:38

*Thread Reply:* This set of waypoints sort of drives a square

Juan Eduardo Riva
2021-02-27 18:23:01

*Thread Reply:* I also have the same problem with needing to restart the sim after each time

JeffS
2021-02-27 18:23:44

*Thread Reply:* Doesn't Move Base Flex have a "cancel navigation" function? I don't recall it if is a topic or a service. But I think that would reset the statemachine so you can send it the next path.

Al Jones
2021-03-01 18:48:03

*Thread Reply:* I have an instruction file in the Google folder called, "Creating a waypoint plan using path_generator.py". It has a few different path images created by a few different waypoint files. Worth checking out IMO.

JeffS
2021-03-02 00:27:01

*Thread Reply:* I have some thoughts on this, I will get back to you...

JeffS
2021-03-02 15:19:27

*Thread Reply:* This is one way to do a square:

JeffS
2021-03-02 19:00:53

*Thread Reply:* Another way to do a turn on a square is to pick a point early. Then specify the next point the same distance up the next line. I thought it would be one "radius" distance. But it looks that may not be completely right. But the first image looks like it did and arc, a line and another arc. But it works. If you push it too far it throws in an extra circle. So someone would have to figure out the "magic number. Plus I am pushing back to the main messages, since it is buried in a thread from 21 days ago.

👍 Al Jones
Juan Eduardo Riva
2021-02-16 09:15:05

THis is really random..

The other day we were talking about how to see the folders of the files we were looking for .. It is a problem that I had several times .. This is a form .. You search and when you mark it with the mouse you see a bar with the address where it is the file, you click on the directory and it takes you there.

JeffS
2021-02-17 20:46:25

This tells how to display the stage simulator screen when running the simulator: @16:00 https://www.youtube.com/watch?v=-JQ77rXgAoc

YouTube
} ROS Agriculture (https://www.youtube.com/channel/UCnr6AObsHnHSGPge0HVlBpA)
Al Jones
2021-02-20 17:33:22

Sharing my electronics layout in pdf format. I have this in Powerpoint if anyone wants the source document. @JeffS Based on this I am getting power to the RPi from one of the power only ports on the usb hub going into the RPi's, what is it a micro-usb port.

Juan Eduardo Riva
2021-02-21 16:09:27

Nice, when you say left-right speed.. It's the wheel enconder..?

Al Jones
2021-02-25 13:13:52

*Thread Reply:* Is your question about this?

Al Jones
2021-02-25 13:14:47

*Thread Reply:* Yes, these are the sensors to detect speed mounted by the rear wheel axle.

Juan Eduardo Riva
2021-02-25 15:09:49

*Thread Reply:* Yeah.. thanks..

Al Jones
2021-02-25 13:12:12

On a webinar with these guys

👍 Juan Eduardo Riva
JeffS
2021-02-26 00:48:52

@Al Jones Sorry, but in my drunken stuper I let on that people have moved beyond the ROS Agriculture lawn tractor meetings... But I could not help myself...

Al Jones
2021-02-26 09:27:53

*Thread Reply:* I'm happy for anyone to join. I updated the meeting notice. Feel free to forward it.

Juan Eduardo Riva
2021-02-26 10:16:23

*Thread Reply:* 💩 Nice...

JeffS
2021-02-26 01:07:19

So if get requests for this, should I forward them on. In particular I am thinking of Jono (Jonathan, and his brother) and Doug and Bob (who are both local to Minneapolis

JeffS
2021-02-26 01:08:46

Sorry, I can barely type at this point...

🙌 Juan Eduardo Riva
Al Jones
2021-02-27 09:11:00

fyi, catkin_ws uploaded from laptop

👍 Juan Eduardo Riva
JeffS
2021-03-02 00:45:54

So, today, I had a burst of energy. During last Tuesday's HBRobotics Zoom meeting I started thinking about my Lawn Tractor power steering unit The first problem was I could not find my power steering motor. Later I found it in my garage. I gave it random attention. I was thinking I would make a chain drive to run my existing steering wheel shaft. I was going to add a 2:1 or 4:1 reduction between my power steering motor and my steering shaft. After adding a "flag" to the steering motor (a ty-warp) and connecting to a 12v battery, I decided I would be better off with a 1:1 connection. (like everybody else has done) I thought I should just put my steering motor on top, replacing my steering wheel (like Juan did). I found that I has an aluminum tube that will press fit onto the splined shaft on the power steering motor. The outside of the tube is 3/4". So I could either put a sprocket on that, or couple that directly to my steering shaft. I had to remove my steering wheel to determine the shaft diameter. The existing steering shaft is also 3/4". So if I get a pipe that has an inside diameter of 3/4" I can directly connect the steering motor in place of the steering wheel. I don't have a pipe with 3/4" I.D. But I found that 3/4" electrical conduit is close enough. That is what I am using to hold up my "green screen" for my Zoom videos. So I can cut about 3" from that. I may do that tomorrow and see how far I get. If that works then I can have a steering motor attached like Juan has. Then I will have to make a bracket to hold the motor in place. It is supposed to warm up in the next week or two. If it stays above the freezing point I may be able to get something done.

🦾 Juan Eduardo Riva
Al Jones
2021-03-02 06:11:57

*Thread Reply:* I applaud your efforts. Steering control stumped me forever. Kills me guys like this sell a kit for $750 and you still have to figure out how to connect it.

vinny ruia
2021-03-02 12:52:42

@vinny ruia has joined the channel

Doug Thorpe
2021-03-02 17:59:57

@Doug Thorpe has joined the channel

JeffS
2021-03-02 19:10:50

So if I stop 1 "radius" early (I.e., 10 meters - 1 radius = 8 meters). Radius is defined in the python program. Then I picked a point 1 radius plus a small fudge factor up the next line. That looks pretty close to a single arc. Probably close enough that you lawn tractor won't notice.

JeffS
2021-03-02 19:35:19

Now if you don't care if the vehicle follows a particular vertical path, you just define the horizontal rows. The Dubins planner automatically generates a connecting path through your headland area. But the actual row path is from 0 to 10 and 10 to 0.

JeffS
2021-03-02 19:37:36

To take advantage of that , here is a slightly more elaborate path. This is just defining the end points of the rows. And notice that the varied vertical distance it taken care of by the Dubins planner.

JeffS
2021-03-02 20:04:09

If anyone is interested, the Home Brew Robotics ROS discussion groups starts in one hour:

What: This is an open discussion of all things ROS. When: Tuesday Mar 2 @ 7:00PM PST Where: Zoom https://zoom.us/j/92376743464  Why: Homebrewed Robots!   Beginner or expert, if you're interested in ROS please join us.   Thanks, Camp

JeffS
2021-03-02 20:21:19

I poked at the "one radius" a little more. I thought maybe the heading value in radians needed more precision. That didn't fix it. But if I specify exactly 1 radius short of the corner and around the corner just a hair more than 1 radius distance on the next line. It works. And you can see I added 0.001 to the radius value. The resulting curve looks good and appears to be a single arc.

Al Jones
2021-03-02 20:24:24

*Thread Reply:* I'm trying to get a reducing square (i.e. like cutting hay). Still struggling 0.0 0.0 0.0 10.0 0.0 0.0 10.0 10.0 3.14 0.0 10.0 3.14 2.0 2.0 0.785

JeffS
2021-03-02 21:31:41

*Thread Reply:* I'll give it some thought (maybe not a whole lot). Seems like eventually you will want to have a program or a script that will cycle through and generate corner points. (Oh, I forgot to send this...)

JeffS
2021-03-02 21:34:02

*Thread Reply:* So I came up with this: 0.0 0.0 0.0 10.0 0.0 0.0 10.0 10.0 3.14 0.0 10.0 3.14 0 2 0 8 2 0 8 8 3.14 2 8 3.14 2 4 0 6 4 0 6 6 3.14 4 6 3.14 But without controlling the vertical lines I think you won't have enough control. You can see as it gets smaller that the end coverage isn't ideal, And the turn degraded to a "light bulb" turn.

JeffS
2021-03-02 21:39:56

*Thread Reply:* No matter, it is going to get funny as your area tightens up at the end.

🤣 Juan Eduardo Riva
JeffS
2021-03-02 21:42:14

*Thread Reply:* Al, do you know what the turning radius of your lawn tractor is? And do you know what turning the radius of your full size tractor will be when running in the hay field? You can change the radius inside of the path_planner.py.

JeffS
2021-03-05 01:47:31

*Thread Reply:* I played with this again. If you are doing a large area it behaves fairly well. (by just defining the horizontal rows) As long as you want your two spacing to match your turning radius. So the row spacing is 2 meters and the turning radius is set to 2 meters. You could set your radius to 3 meters but then you have to space your horizontal rows by 3 meters. Otherwise you would have to define both horizontal and vertical rows and use the more complex "stop short by 1 radius" method. 0.0 0.0 0.0 20.0 0.0 0.0 20.0 20.0 3.14 0 20 3.14 0 2 0 18 2 0 18 18 3.14 2 18 3.14 2 4 0 16 4 0 16 16 3.14 4 16 3.14

JeffS
2021-03-05 01:37:32

@Al Jones, I was watching this video: 04172020 Lawn Tractor Meeting <https://www.youtube.com/watch?v=jsqcQD7W01M> This was one of the many times that you seemed confused about getting the correct TF tree for your physical lawn tractor as opposed to the simulator. Do you want to go through this sometime? I think I have seen this come up enough times that I know how to explain the difference and how to fix it.

Bob Hassett
2021-03-05 08:25:35

@Bob Hassett has joined the channel

Bob Hassett
2021-03-05 08:31:12

Thanks Al for the invite.

👍 Al Jones
vinny ruia
2021-03-05 08:37:30

What are the time of the meetings?

Juan Eduardo Riva
2021-03-05 08:39:14

*Thread Reply:* Hi Vinny..

vinny ruia
2021-03-05 08:40:46

*Thread Reply:* That link does not seem to work

vinny ruia
2021-03-05 08:41:09

*Thread Reply:* Just say it in your timezone, I will convert 🙂

Juan Eduardo Riva
2021-03-05 08:42:22

*Thread Reply:* https://www.worldtimebuddy.com/?qm=1&lid=5128581,3435910,3117735,5368361&h=3435910&date=2021-3-5&sln=14-15&hf=2

Worldtime Buddy
vinny ruia
2021-03-05 08:43:00

*Thread Reply:* Thank you Juan

vinny ruia
2021-03-05 08:43:36

*Thread Reply:* Unfortunately, won't be there this week but have fun all 🙂

👍 Al Jones
Juan Eduardo Riva
2021-03-05 15:19:17

Thanks Jeffs..

VUELTAS LOCAS - crazy turns

-14 0 0 0 0 0 40 0 0 40 2.5 3.1415 0 2.5 3.1415 0 5 0 40 5 0 40 7.5 3.1415 0 7.5 3.1415 0 10 0 40 10 0 40 12.5 3.1415 0 12.5 3.1415 0 15 0 40 15 0 40 17.5 3.1415 0 17.5 3.1415 0 20 0 40 20 0 40 22.5 3.1415 0 22.5 3.1415 0 25 0 40 25 0 40 27.5 3.1415 0 27.5 3.1415 0 30 0 40 30 0 40 32.5 3.1415 0 32.5 3.1415 0 35 0 40 35 0 40 37.5 3.1415 0 37.5 3.1415 0 40 0 40 40 0 47 40 4.7123 47 1.25 4.7123 43.5 -2.25 3.1415 -2.5 -2.25 3.1415 -5 0 1.57075 -5 40 1.57075 0 42.5 0 40 42.5 0 42.25 40 4.7123 42.25 1.25 4.7123

Al Jones
2021-03-06 01:36:40

*Thread Reply:* Wow. I'm impressed.

🤷‍♂️ Juan Eduardo Riva
Juan Eduardo Riva
2021-03-06 11:54:52

*Thread Reply:* Nahhhh, @JeffS explained very well this subject and the rest is practice..

Al Jones
2021-03-06 13:58:03

Where is cmdvel linear x coming from? I ran this path, captured the bag file and noticed cmdvel linear vel.x varies from ~1.6 to ~1.9. @vinny ruia I will keep searching, but I'm wondering if you know off hand where "lawntractorsim lawntractorsim.launch" determines the speed to tell the tractor to run if waypoints are sent to it using pathpublisher.py and pathfollowernode.py which use /movebaseflex/exepath? I'm only giving it x,y coordinates in the waypoint planning process.

vinny ruia
2021-03-06 14:06:58

*Thread Reply:* standby, pulling up the bag now

Al Jones
2021-03-06 14:09:27

*Thread Reply:* thanks. We need to basically work through how to program the speeds we want to program the tractor to travel. Knowing where the default is set seems to be a good place to start.

vinny ruia
2021-03-06 14:12:07

*Thread Reply:* I believe it is being set by the local planner. On the develop branch, you can see that the config file for teb_local_planner_params_carlike.yaml has the max_vel_x set to 2.0

https://github.com/ros-agriculture/lawn_tractor/blob/develop/lawn_tractor_navigation/config/teb_local_planner_params_carlike.yaml

GitHub
👍 Al Jones
vinny ruia
2021-03-06 14:20:50

*Thread Reply:* yeah I just pulled up the bag and I am confident that is the relevant parameter

Al Jones
2021-03-06 14:46:13

*Thread Reply:* I set the param to 0.75; checking out the bagfile now...

Al Jones
2021-03-06 15:09:01

*Thread Reply:* hmmm, does not seem to have influenced cmd_vel. It is much greater (1.88) than the max I set (0.75). 😞

vinny ruia
2021-03-06 15:14:49

*Thread Reply:* send over the new bag file please?

vinny ruia
2021-03-06 15:16:47

*Thread Reply:* and, if not too much effort, can you tell me how to recreate? (how are you generating this bag file)

Al Jones
2021-03-06 15:20:06

*Thread Reply:* uploading now, same folder as above; using command al@al-ThinkPad-W530:~/bagfiles$ rosbag record -a

vinny ruia
2021-03-06 15:20:59

*Thread Reply:* sorry, I meant — what are you going to get the robot to drive that path?

Al Jones
2021-03-06 15:21:26

*Thread Reply:* @vinny ruia re: recreate, do you want to start from the very beginning and create the waypoint file?

Al Jones
2021-03-06 15:23:01

*Thread Reply:* Instructions are here

vinny ruia
2021-03-06 15:32:02

*Thread Reply:* Ok got these, no I didn't need to create the waypoint file

Al Jones
2021-03-06 15:32:10

*Thread Reply:* This is also an important piece to the overall puzzle if you want the full picture. The python source is referenced in that link.

vinny ruia
2021-03-06 15:36:04

*Thread Reply:* ok, trying to recreate now. Standby

👍 Al Jones
vinny ruia
2021-03-06 15:51:58

*Thread Reply:* sorry it is taking a bit longer than expected to get sset up

vinny ruia
2021-03-06 16:08:38

*Thread Reply:* not sure if path_publisher is working correctly,

I keep on getting the message Sending Path when I run it, but when I echo the topic it is publishing on /drive_path, it is just empty poses:

^Croot@pop-os:~/tractor_ws# rostopic echo /drive_path WARNING: no messages received and simulated time is active. Is /clock being published? header: seq: 28 stamp: secs: 0 nsecs: 0 frame_id: "map" poses: []

vinny ruia
2021-03-06 16:13:08

*Thread Reply:* looks like path_publisher is looking for a message on a topic called got_path .. not sure where that is supposed to be coming from

Al Jones
2021-03-06 16:20:56

*Thread Reply:* yeah, good question. Not the author, so a bit of a challenge; Any other basic path publishing routines around you know of?

vinny ruia
2021-03-06 16:21:19

*Thread Reply:* I am digging into it and trying to delete reference to got_path

vinny ruia
2021-03-06 16:21:46

*Thread Reply:* I am surprised you got it working without modification .. maybe there is something going on I am missing

vinny ruia
2021-03-06 16:25:13

*Thread Reply:* ok I got it working

vinny ruia
2021-03-06 16:30:25

*Thread Reply:* Do you notice the following warnings on the stdout of the window that you called the lawn_tractor_sim lawn_tractor_sim.launch

```[ WARN] [1615069628.314063033, 18.700000000]: TebLocalPlannerROS: trajectory is not feasible. Resetting planner...

Al Jones
2021-03-06 16:33:04

*Thread Reply:*

Al Jones
2021-03-06 16:33:58

*Thread Reply:* Similar

vinny ruia
2021-03-06 16:37:10

*Thread Reply:* I wonderr what that is about

🤷‍♂️ Al Jones
Al Jones
2021-03-06 16:39:38

*Thread Reply:* If it were an 8 cylinder engine I think we would be firing on about 5 1/2.

vinny ruia
2021-03-06 16:40:43

*Thread Reply:* Re: Your orignal question: • I was able to recreate and limit the speed by changing the parameter in the config file I mentioned above

vinny ruia
2021-03-06 16:42:18

*Thread Reply:* Remember that you have to edit the config file and catkin build &amp;&amp; source devel/setup.bash in the container or window that calls roslaunch lawn_tractor_sim lawn_tractor_sim.launch

vinny ruia
2021-03-06 16:42:48

*Thread Reply:* Also, note that the above warning messages disapearred when the I made max_vel_x: 0.0

Al Jones
2021-03-06 16:42:55

*Thread Reply:* So you changed /movebaseflex/TebLocalPlannerROS/maxvelx and the vehicle did not exceed the value you set?

vinny ruia
2021-03-06 16:43:29

*Thread Reply:* let me confirm with a bg ... but the robot was visually alot slower

Al Jones
2021-03-06 16:43:57

*Thread Reply:* I used $ rosparam set /movebaseflex/TebLocalPlannerROS/maxvelx 0.75

Al Jones
2021-03-06 16:44:32

*Thread Reply:* and then verified with $ rosparam get /movebaseflex/TebLocalPlannerROS/maxvelx

vinny ruia
2021-03-06 16:44:44

*Thread Reply:* Ah.... I am not sure if that parameter can be changed at runtime

Al Jones
2021-03-06 16:45:20

*Thread Reply:* I was not clear how to changed a param like that in Docker

vinny ruia
2021-03-06 16:46:17

*Thread Reply:* there are a few ways, you can use nano or vim to edit the file in the container... or you can use the vscode docker extention to remote into the container

vinny ruia
2021-03-06 16:46:55

*Thread Reply:* you might have to CTRL^C out of the launch of that container before you do these edits

vinny ruia
2021-03-06 16:47:09

*Thread Reply:* and then as always, remember to build your workspace and source your setups

Al Jones
2021-03-06 16:47:14

*Thread Reply:* When I rerun the bag file the param certainly looks like it "took".

vinny ruia
2021-03-06 16:47:59

*Thread Reply:* I believe you that the paramater "takes", I just have the funny feeling that the underlying planner will not "listen" to parameter changes

vinny ruia
2021-03-06 16:49:08

*Thread Reply:* here is a rosbag that is proof that the maxvelx set to 0.5 worked

vinny ruia
2021-03-06 16:53:01

*Thread Reply:* in the lawn_tractor container, the full path to the parent dir is /root/tractor_ws/src/lawn_tractor_navigation/config

Al Jones
2021-03-06 16:55:59

*Thread Reply:* See if I have the same as you /root/tractor_ws/src/lawn_tractor/lawn_tractor_navigation/config

Al Jones
2021-03-06 16:56:26

*Thread Reply:* yep, looks the same

vinny ruia
2021-03-06 16:56:43

*Thread Reply:* here is my yaml ```# file: teblocalplanner_params.yaml TebLocalPlannerROS:

# Trajectory tebautosize: True dtref: 0.3 dthysteresis: 0.1 globalplanoverwriteorientation: True allowinitwithbackwardsmotion: False maxglobalplanlookaheaddist: 3.0 feasibilitycheckno_poses: 5

# Robot maxvelx: 0.50 minvelx: 0.0 maxvelxbackwards: 1.0 maxveltheta: 2.0 acclimx: 2.5 acclimtheta: 2.5 minturningradius: 1.0 # diff-drive robot (can turn in place wheelbase: 0.4 cmdangleinsteadrotvel: True weightkinematicsturningradius: 1.5 # increase of minturningradius is not enough footprintmodel: type: "line" # include robot radius in minobstacledist linestart: [0.0, 0.0] # include robot expanse in minobsticaldist lineend: [0.4, 0.0]

# Goal Tolerance xygoaltolerance: 0.4 yawgoaltolerance: 0.2

# Obstacles minobstacledist: 0.25 costmapobstaclesbehindrobotdist: 1.0 obstacleposesaffected: 10

# Optimization noinneriterations: 5 noouteriterations: 4 optimizationactivate: True optimizationverbose: False```

vinny ruia
2021-03-06 16:57:28

*Thread Reply:* I agree that it is confusing that setting the rosparam didn't work, but I am sure that setting that parameter at run time is not something the developers imagined people would ever do

vinny ruia
2021-03-06 16:57:57

*Thread Reply:* so I bet they probably just take the value of that parameter when the planner first initializes, and sticks with it.

vinny ruia
2021-03-06 16:58:34

*Thread Reply:* I am going to have to sign off soon, any other doubts I can help with?

Al Jones
2021-03-06 17:00:14

*Thread Reply:* bash: nano: command not found

vinny ruia
2021-03-06 17:00:34

*Thread Reply:* sudo apt-get update &amp;&amp; sudo apt-get install nano

Al Jones
2021-03-06 17:01:52

*Thread Reply:* vim is installed

vinny ruia
2021-03-06 17:02:10

*Thread Reply:* if you are comfortable with vim go for it 🙂

vinny ruia
2021-03-06 17:02:32

*Thread Reply:* I just wasn't sure of your experience

Al Jones
2021-03-06 17:06:31

*Thread Reply:* I'm good; thanks for your help; Have a great evening

vinny ruia
2021-03-06 17:07:35

*Thread Reply:* You too :)

Al Jones
2021-03-06 17:08:16

*Thread Reply:* btw, what did you change in path-publisher.py?

vinny ruia
2021-03-11 08:22:25

*Thread Reply:* @Al Jones I am sorry I just noticed this

vinny ruia
2021-03-11 08:22:35

*Thread Reply:* I don't think anything was changed in path_publisher

vinny ruia
2021-03-11 08:23:10

*Thread Reply:* oh sorry, yes I did

vinny ruia
2021-03-11 08:26:16

*Thread Reply:* https://github.com/ros-agriculture/lawn_tractor/tree/feature/add-path-publisher

GitHub
vinny ruia
2021-03-11 08:26:59

*Thread Reply:* the latest is on that branch, I am PR-ing it with Matt as reviewer... but not sure if he is available.

In that case who shall I assign to review?

Al Jones
2021-03-12 12:21:48

*Thread Reply:* @vinny ruia Can you assign 3 names with "or's"? Meaning any of @JeffS, @Juan Eduardo Riva or @Al Jones could approve?

vinny ruia
2021-03-12 12:23:01

*Thread Reply:* i gave it to @Juan Eduardo Riva but next time I wiull do that

👍 Al Jones
JeffS
2021-03-10 22:39:40

I have my first group of meetings indexed. I have 100 of 250 done. At various times I will just overwrite the file as I get more done. This is just a temporary location. Eventually I will find a permanent home for it. I may try to figure out how to get the actual links for the "Chat:" sections. I may figure out a way to convert to a different format so the links are actually clickable. I will put a README file in the same directory explaining what I did and how to use it. Eventually that type of stuff should be merged into the index file. This seems to be accessible with Ubuntu 20.04/Firefox and on Windows 10/Google Chrome. sampson-jeff.com/RosAgriculture

It turns out if I create a file named README or README.txt that the browser does not see it. But if I call it readme.txt then it shows up in the browser. So there is a readme.txt file in the same directory.

Bob Hassett
2021-03-11 22:04:32

I experimented by copying your long text file in to my iPad. Then I pasted that into my iPad’s word processor called PAGES. So far so good. Next I tried high lighting a couple of the http addresses and made them links. It worked. Reading thru your document, I’ll be able to click on the new http link and go right to the YouTube meeting. Guess I know what I’ll be doing in my free time. Thanks Jeff for making it possible.

JeffS
2021-03-11 22:30:03

If you are modifying the file, keep in mind I will totally replace it when I do updates. So give some thought as to how much work you plan to put into that.

Bob Hassett
2021-03-12 06:59:44

I think I’ll wait. Thanks for the heads up.

JeffS
2021-03-12 21:48:46

This message about Docker showed up on the HBRobotics group. I don't know anything about Docker and I don't plan to learn it.... But this may mean something to people that use Docker.

In this meeting, during this Docker discussion the issue was raised as the what happens if changes are made in a Docker Containing while it is running, such a revising script in the ROS workspace src or sudo update, then shutting down and restarting. Are the changes persistent? In answer to that, Steve referred to a dos.docker.com/bind-mounts document that described using the -v flag, which the docker run in this case uses. Following up with the developer, Raffaello sent me the following reference that seems to further address the question. "You need to terminal from the nanosaur host to store the changes", https://phoenixnap.com/kb/how-to-commit-changes-to-docker-image. "If you want share part of the code between volumes, you need to run the Container with a volume, in this case you will able to move files inside and outside the container". I haven't tried this but its on my ToDo list. Ross

Knowledge Base by phoenixNAP
Written by
Sofija Simic
Est. reading time
3 minutes
Juan Eduardo Riva
2021-03-13 04:23:29

*Thread Reply:* yep, it's a pretty clear document on how to deal with Docker. I'm going to translate it into Spanish to have it handy for the ROS wiki tutorials. Thank you very much

JeffS
2021-03-12 22:02:27

In the last few days I was indexing an old meeting video and we were talking about Al's absolute sensor which is single turn. Yet it has to turn 1-1/2 to 2 turns in normal operation. It was suggested to add an additional multi-turn pot to determine what the overall absolute position is. I thought of another way that may work. Use those magnetic sensors like Matt is using on his back wheels. Strategically mount them above the "half moon" gear. If it is centered then neither sensor is on. If turned some amount to the right them the right senosr will turn on. If turned some amount to the left then the left sensor will turn on. If neither sensor is on then you know you are in the center section. But I can't visualize from memory if you would be able to mount them properly.

I: 06122020 Lawn Tractor Meeting https://www.youtube.com/watch?v=OED92oZw9ts At the very begining of the video is where we are talking about this.

YouTube
} ROS Agriculture (https://www.youtube.com/channel/UCnr6AObsHnHSGPge0HVlBpA)
Al Jones
2021-03-13 07:23:59

*Thread Reply:* @JeffS Let me pull up the video of the motor mount

Al Jones
2021-03-13 07:31:50

*Thread Reply:* For me, the problem statement is I need to know the wheels are pointing straight before engaging the magnetic sensor since the magnetic sensor does not retain its position data on reboot. The solution has been a "low resolution" analog encoder and some code to test if the angle is within the "straight zone". btw, I'm still not sure having a "high resolution" magnetic sensor is worth the effort yet. Below is a photo clipped from the video.

Al Jones
2021-03-13 18:32:04

*Thread Reply:* @JeffS Came across this...https://youtu.be/JyIkXSQGX_8?t=162

YouTube
} Michael Rechtin (https://www.youtube.com/channel/UCHS55yDvORmCpbM_3vNQQsQ)
JeffS
2021-03-13 19:11:41

*Thread Reply:* I did see this this, even though it was buried in a thread, since you put my name on it. I see part two is talking about the electronics and remote control.

Al Jones
2021-03-14 08:05:52

*Thread Reply:* @JeffS Yes, "@'ing" people does help.

JeffS
2021-03-12 22:18:33

I though of a new concept. "Words of Wisdom"...

Words of wisdom: "Try some something quick and cheap to verify that is what you want to do". Words of wisdom: "You are going to need a bigger box than you think".

😂 Al Jones
Juan Eduardo Riva
2021-03-13 04:21:22

*Thread Reply:* "You are going to need a bigger box than you think", that happened to me becouse I'm cheap..

and..

"Try some something quick and cheap to verify that is what you want to do". THis is a MOD in life.. but this one has a sister.. I don't know how to put this in a way that is well understood; But we are going to try: "accept when you buy I buy bad things because they are miserable and not waste time trying to resuscitate them", also here in Argentina it happens that we buy "what there is" and not "what we should" so working with things that are not optimal..

JeffS
2021-03-12 22:47:00

I was watching another video and I was remined that we should go over A/D conversion sometime. Which reminds me I need to find an op-amp that will run on either 3.3V or 5V and correctly give the correct output.

Juan Eduardo Riva
2021-03-15 09:40:54

*Thread Reply:* Thanks.. I'm looking this two options..

🦾

Bob Hassett
2021-03-15 10:47:12

*Thread Reply:* Very nice!

Al Jones
2021-03-16 20:55:05

I copied my catkin_ws and a few files from my root directory on my RPi to the Google drive.

JeffS
2021-03-16 21:11:10

I'll go look at it later. It is time for the Home Brew Robotics Group meeting. Or I may look at it while that meetig is going on...

Bob Hassett
2021-03-17 09:03:27

*Thread Reply:* Anything interesting at Home Brew?

JeffS
2021-03-16 21:45:18

Okay, so I am looking at Al's RPi catkin_ws. I can see files. If I click on one it goes down that path of "what do you want to open it with... I say text editor... It wants me to agree to endless questions if I want to sign away my life..." About 3 steps into I gave up. I can download the file. Then force it to open. Is there an quick way to view a file?

Al Jones
2021-03-19 10:55:04

*Thread Reply:* @JeffS If I right click .bashrc and open with TextEditor it just opens. I'm not sure what you are being presented with.

JeffS
2021-03-17 11:13:40

Just the usual making ROS2 work.

Juan Eduardo Riva
2021-03-19 11:25:58

Hi Jeff, here is the tool to mount the google drive directories on your computer and use the editor you want https://support.google.com/a/answer/7491144?hl=en#zippy=%2Cwindows

support.google.com
Bob Hassett
2021-03-19 16:58:53

Is there a link for today’s lawn tractor meeting?

Juan Eduardo Riva
2021-03-19 17:28:05

*Thread Reply:* I was about five minutes late for the meeting and some of Jeff's news may be missing; but if I did not understand something wrong or I forget anything, things were this way ...

Jeff showed the model that he is assembling in conglomerate wood on which he is going to mount the steering of the vehicle and the other accessories and electronics, as if to start his tests. I found it very interesting and I'm sure I'll copy it shortly. He explained to us how he is going to compose the entire steering column and he showed us his gear where he is going to connect the steering motor and the potentiometer. We were talking a little about the files that are in google drive and how to use them better, to which google drive opens a program to see the code of the python files. I told them that if you mount the directories in the root with the specific app for w10 you can use vscode. Then Al showed us his new 3D impressions for the wheel magnetometer sensor from which he receives odometry. It was very good and super neat. It will be necessary to see how long these gears last with a little dirt and the other elements but clearly enough to test in the field. The meeting lasted about 25 minutes, because Al was about to catch a plane. I said that: a boy began to help me, take me to fix the tractor (they give it to me on Monday) and that I began to present the electronics again with my assistant.

Bob Hassett
2021-03-20 11:37:59

*Thread Reply:* Jeff, any chance you could post pics of your model Juan is talking about?

Al Jones
2021-03-20 12:24:29

*Thread Reply:* @Bob Hassett To get @JeffS’s attention you want to put "@" in front of his name.

JeffS
2021-03-20 14:14:10

*Thread Reply:* Bob doesn't have to add my name to flag me. If he posts in a thread then he clicks button that says "Also send to #..." and it gets pushed back to the main channel. That does a several things. It keeps people happy that want messages organied into threads. It posts to a main channel so everyone sees it. When it gets posted to a main channel then it is flagged as a new message. And if I get notified that a new message was posted then I am happy. But I'd rather not see a thread of 60 messsges as a thread and as separate messages in a main channel. But since Slack doesn't work very well, it is up to each individual to use their own discretion on how to do it. (Here, I'll send it to the main channel as well...)

JeffS
2021-03-20 14:21:17

*Thread Reply:* And I see I can't reply to a reply in a thread... Bob, no I can't (conveniently) post a pic of what Juan was talking about. I did show it at both the ROS Agriculture meeting Friday morning and at the TCRobots meeting the night before. Both of which you belong to. As lazy as I am I will probably not get the motor mounted before next Friday's meeting, so I may show it again there.

vinny ruia
2021-03-21 14:28:43

*Thread Reply:* ok if we don't like the thread idea we can scrap it... I won't be offended 🙂

JeffS
2021-03-21 14:35:52

*Thread Reply:* I'm not saying it should not be done. I am just saying that Bob has founsda way around it.

JeffS
2021-03-19 17:27:35

No, we could not figure out a reasonable way to record it and it lasted 30 minutes.

Bob Hassett
2021-03-26 10:24:31

Can someone provide a link to today’s meeting? Will it be recorded?

Juan Eduardo Riva
2021-03-26 10:28:02

https://us02web.zoom.us/j/82088036016?pwd=K2lLc1FiWm9MU0dzRStxM2J2b3dpQT09 Bob, we will try this one, if it does not work we will use other one and i will send it here.. It's ok..?

Juan Eduardo Riva
2021-03-26 10:59:09
Bob Hassett
2021-03-26 21:45:44

*Thread Reply:* I had to leave the meeting early to get my second COVID shot. I left shortly after Jeff finished talking about his steering motor. Juan was about to show something on his phone. What did I miss?

Juan Eduardo Riva
2021-03-28 17:03:16

*Thread Reply:* Not much.. Hope you are ok.. Bye..

Bob Hassett
2021-03-28 17:20:02

*Thread Reply:* Thanks for asking Juan. First few hours I was a little dizzy with flu like symptoms. Saturday morning woke up like nothing happened. Back to my ditzy self ;-)

👍 Juan Eduardo Riva
JeffS
2021-03-26 17:58:48

This is the page that inspired me to make my steering motor frame for my lawn tractor. https://www.sparkfun.com/news/3329

sparkfun.com
👍 Al Jones, Bob Hassett, JeffS
Juan Eduardo Riva
2021-03-30 15:44:29

Young victim..

👍 Al Jones
JeffS
2021-03-31 00:50:37

I watched a video about the Bosch BMO055 IMU module: https://www.youtube.com/watch?v=2AO_Gmh5K3Q I was inspired. I had two sensors that were cheap crap that I bought on eBay or Amazon. I wired one up and could not figure out how to get the Adafruit libraries to work. So I tried this library: https://github.com/kriswiner/BNO055 I spent hours trying to get anything out of it. After switching to a second board and soldering two jumper pads it seems to be working. I think the first board has a short. the regulator got hot enough to burn my finger... Once it was running the yaw appeared to be stable. But it did not come up the same orientation each time I started it. And this particular code had me wave the board around like an idiot. It seems like it would be hard to convince your robot to wave it around when it starts up. Maybe I can figure out how to store the calibration values so it does not need to be done each time.

But it is running. I need to read about it and see what can be done to make it usable.

YouTube
} Paul McWhorter (https://www.youtube.com/user/mcwhorpj)
GitHub
🙌 Juan Eduardo Riva
JeffS
2021-04-01 01:07:41

I got a "Tindie" IMU board to run on a Teensy 3.2. It took forever... https://www.tindie.com/products/onehorse/ultimate-sensor-fusion-solution-lsm6dsm-lis2md/ Now I have to decide which IMU to waste my time on. I need to figure out one of the two so I can get one that runs correctly.

Tindie
Al Jones
2021-04-02 10:59:45

Started working on tractor 2 in Texas. Starting with the steering motor mount.

Bob Hassett
2021-04-02 11:02:27

A link for the meeting?

Al Jones
2021-04-02 12:42:38

$15K https://directedmachines.com/index.html

directedmachines.com
JeffS
2021-04-02 13:26:52

This is the write-up I follwed to get the "Tindie" IMU to work on a Raspberry Pi: https://github.com/droter/em7180_imu

GitHub
JeffS
2021-04-02 13:42:29

Here is a random series on Cub Cadet mowers. https://www.youtube.com/watch?v=KopYghpcjIk

YouTube
} HAXMAN (https://www.youtube.com/c/HAXMAN)
JeffS
2021-04-02 15:31:23

Here is a video about sensors on cell phones: https://www.youtube.com/watch?v=C7JQ7Rpwn2k A couple more that may be related: https://www.youtube.com/watch?v=nOQxq2YpEjQ https://www.youtube.com/watch?v=OPsVr44uCb8

YouTube
} Google TechTalks (https://www.youtube.com/user/GoogleTechTalks)
YouTube
} WorkLearnShareDevelop (https://www.youtube.com/channel/UCDm91EH9sO_t1Xiuwtlciqw)
YouTube
} Richvale Consulting (https://www.youtube.com/channel/UCsfKM52q6KXOoHh9FowborQ)
👍 Al Jones
Bob Hassett
2021-04-03 07:10:43

Thanks for all the links.

Juan Eduardo Riva
2021-04-04 07:56:16

nice links.. learning more American accents.. 🦾

Al Jones
2021-04-09 09:35:19

Guys I need to be with my son at his school at Noon so will be unable to be on the call today. I am hoping to get my tractor out this weekend (Pittsburgh) and test a fully planned mission. I was in Texas last week and worked on installing the steering motor and transmission control servo on Tractor II. Something new I did was wire an LED and reset button to the Nano that I install inside the SuperServo for the transmission.

Juan Eduardo Riva
2021-04-10 06:48:47

*Thread Reply:* Al, the super servo is for the steering wheel..?

Al Jones
2021-04-11 11:29:05

*Thread Reply:* Transmission control

Al Jones
2021-04-10 06:47:41

I have not "looked under the hood", pun intended, but thought I would share... https://github.com/udacity/self-driving-car/tree/master/steering-models/steering-node

GitHub
Al Jones
2021-04-11 11:27:37

In the real world where should the Teb Planner Run? I'm trying to run a simple path. I'm thinking I need to update my RPI on the tractor with the latest version that matches the code running in the Docker container and continue to use "export ROSMASTERURI=http://tractor_aj:11311" or set "export ROSMASTERURI=http://localhost:11311" and have the RPI just be a slave. Any thoughts?

Al Jones
2021-04-11 11:50:08

*Thread Reply:* Not good. Updated the RPI bashrc with ROSMASTERURI=http://localhost:11311. The result is a "rostopic list" command does not return the topics running in the Docker container. I can ping the laptop (aka controller_aj) from the RPI.

Al Jones
2021-04-11 11:51:54

*Thread Reply:* $rostopic list on the physical laptop returns all the topics running in Docker.

Al Jones
2021-04-11 11:56:55

*Thread Reply:* reviewing: https://answers.ros.org/question/298602/how-to-have-topics-publish-and-subscribe-both-ways-between-host-and-docker-container/

answers.ros.org
Al Jones
2021-04-11 12:32:12

*Thread Reply:* Seems the Docker container/simulator is not exposing an IP Address:

JeffS
2021-04-11 12:39:48

*Thread Reply:* I don't use Docker so I can't help you...

Al Jones
2021-04-11 15:10:10

*Thread Reply:* @JeffS Do you launch the "develop" branch of lawntractor? How do you do that in a roslaunch lawntractorsim lawntractorsimreal_world.launch command? The reason I ask is because I think there are changes in develop that are needed that are not in master.

JeffS
2021-04-11 19:12:12

*Thread Reply:* @Al Jones I don't run anything. I don't know what you are asking here: "How do you do that in a roslaunch lawntractorsim lawntractorsimrealworld.launch command?" I can see changes on this page: https://github.com/ros-agriculture/lawn_tractor/compare/develop What are the errors you are getting? Vinny's name is on the "develop" branch. He probably knows how this works.

GitHub
Al Jones
2021-04-12 07:10:48

*Thread Reply:* @JeffS Thanks. Re: error messages, I'm not getting any. My problem statement at the moment is the RPi (192.168.193.95) is not seeing the topics published by the ROSMASTER which is the instance of ROS running in the Docker container on my Ubuntu laptop (192.168.193.96). I think my next step will be to add the IP address of the laptop to the ROSMASTER statement on the RPI. If that does not work I will try and run the simple mission on my native laptop without Docker. I have forgotten why that did not work the last time.

Al Jones
2021-04-12 17:30:10

*Thread Reply:* On Laptop: export ROSMASTERURI=http://localhost:11311; on RPi: export ROSMASTERURI=http://controller_aj:11311 seems to do the trick.

Al Jones
2021-04-12 07:23:17

I updated the instructions a bit on using the waypoint publisher. Mostly adding samples and reference to the video where Jeff spoke about creating his model.

Bob Hassett
2021-04-13 16:35:43
Bob Hassett
2021-04-13 16:36:11

Had a minor setback last night. I spent so much time making sure my control box was wired correctly but I for got to set my go no go toggle properly. I blew one channel of my motor controller. so I guess I need to order a new board.

Bob Hassett
2021-04-13 16:39:04

DPDT on off on was in the wrong position. It fed 25 volts back into the controller when I pressed the test button on the board.

JeffS
2021-04-13 16:51:48

I don't see a problem. Your schematic isn't quite complete, but I get the idea. I don't see any combination that could blow anything out. I think you have a wiring error. Which ever side blew out, I think the switch it is connected to is wired wrong.

Bob Hassett
2021-04-13 16:56:43

I’ll go thru the wiring again and use a test light as I go. Thanks for the feed back.

Bob Hassett
2021-04-13 19:23:32

Every thing working as it should be. Switches where ok, so I must have mixed up the primary power lines some how. Reminded to always use a test light first and assume NOTHING. Still need to replace the driver.

🦾 Juan Eduardo Riva
Bob Hassett
2021-04-15 08:03:17

I’m all for robotics in agriculture BUT it @should not be used to promote gigantic destructive monoculture farming systems. Robotics should be used to create “a revolution in farming practices”. Just saying. https://www.geekwire.com/2021/isilon-founder-lifts-hood-farming-startup-carbon-robotics-weed-zapping-machine/?fbclid=IwAR3wT7-fPhT9pPhPYbATmXiS4U8LgCpZuxsVtNht7HFYECJLpHEsDa7ctf4

GeekWire
Juan Eduardo Riva
2021-04-15 17:27:15

*Thread Reply:* I can be wrong but what I see that the robots are going to generate is a virtuous consociation of crops that is otherwise impossible. Today agriculture already has very modern techniques such as the integrated management of insects that with robots can be taken to another level. All these techniques are of processes and for the taking of decisions a lot of information that is gathered in the field is made flat, unfortunately the path that was chosen for development was wrong at first; but fortunately that is being rectified

Bob Hassett
2021-04-15 18:31:05

*Thread Reply:* Thank you Juan for restoring positive thinking! I can really get resentful of big corporate farming some times. I’d like to see more affordable robotics for the small farmer. Maybe small farmers can get a chance to “look under the hood” of the expensive machines for inspiration and adaptability? Btw can you help me see the “otherwise impossible”? On another note, If I remember correctly, it seemed that Universities in Europe are a hot bed of ag robot development. I’ll have to converse with Dr. Google about it!

Juan Eduardo Riva
2021-04-15 18:40:49

*Thread Reply:* I think we have to wait a little longer, the issue goes through the artificial intelligence that is being developed .. You have to look at that .. the robots will only be the means for the execution of that artificial intelligence. Look at the new data sets, none of them are from the big companies and most of them are free. For example, the only case of a useful robot in the agricultural sector of Argentina is one that does plant physiology.

Bob Hassett
2021-04-15 18:45:36

*Thread Reply:* I like free! How can I learn more? Not that I am anywhere near competent enough to implement. But one can drool.

Bob Hassett
2021-04-16 10:42:27

Is there a meeting today? A link?

Al Jones
2021-04-16 10:43:39

Yes, link is at the top of the General channel and I will email you an invite.

JeffS
2021-04-16 10:44:02

I assume there may be a meeting today. Unless people start canceling. As always, the link is still in the pinned message at the top of the General channel, same place it was the last two times you asked.

Al Jones
2021-04-16 10:44:07

I need your email address

JeffS
2021-04-16 10:44:34

Who's email address?

JeffS
2021-04-16 10:46:50

Oh, I see, you were asking Bob (due to multiple messages Slack confused me again).

JeffS
2021-04-16 10:49:06

Everyone should consider that you can send a private message to someone. In case you don't want your email address (or anything else) to be public. When Al sends you the invite you can go back and delete your message if you don't want it to be public...

Bob Hassett
2021-04-16 10:52:49

So to understand the link in General? I just click on the link and wait?

Bob Hassett
2021-04-16 10:55:02

Ok I’ll do that.

Bob Hassett
2021-04-16 13:12:32

This is my first control box from last year. Biggest problem was I used heavy primary wire so it was difficult to close up the box.

Bob Hassett
2021-04-16 13:18:36

Using the control box to drive backwards while operating a snowblower on the 3 pt hitch.

Bob Hassett
2021-04-16 13:30:10

This year’s control box. Black momentary switch from left to right...steering, forward/reverse, throttle, 3 pt hitch.

Bob Hassett
2021-04-16 13:30:11
JeffS
2021-04-16 13:56:08

Here is an article on Farmhand robot: https://www.sparkfun.com/news/3780

sparkfun.com
Bob Hassett
2021-04-17 11:47:18

So the spark fun extended range they are talking about is up to 100 ft of wire?

JeffS
2021-04-17 12:05:10

Why do you ask? What do you think they are trying to do?

Bob Hassett
2021-04-17 12:34:12

The term “extended range”? I’m not sure what they are trying to do? Just use a distributed system for a mobile machine? So they are using Ethernet wire on a single “tractor” ? Instead of using usb and a hub?

JeffS
2021-04-17 13:50:46

It all comes down to the fact they are trying to inappropriately use a communication bus for the wrong thing. It goes back to the fact that I2C was designed as a bus between two or more chips on a single printed circuit board. But it is real handy to get a sensor that uses I2C and connect it to a microcontroller over a length of wire. The I2C bus drive the bus low and pulls to an inactive state using pull up resistors. Which works fine if the chips are close together on a printed circuit board. But when you separate them with wire, you re adding inductance and capacitance which will affect the signal propagation. If the wire gets too long the signal degrades and you will start getting random errors. If the wire gets too long it won't work at all. If you try this (connecting I2c devices on medium to long wires) on a vehicle (or any other electrically noisy environment) then you are introducing electrical noise to you bus which it was never designed to handle.

To further complicate matters. The I2C has two wires. A clock line and a data line. I think the clock is always driven by the master. The data line is bidirectional. So if you want to add line drivers/receivers to the existing signals you have to account for which device is in control. And I2C used some clever (foolish) tricks to to make it work (basically "clock stretching" was added as an afterthought for accommodate newer slower parts. And they watch the state of the bus to decide it they are allowed to transmit or not. And to decide if the bus is hung So Basically, none of this was designed to run over an extended length of wire.

So I didn't realize until I saw this article that someone (Philips?) designed a chip to get around (some/maybe all) of these problems. The PCA9615 is designed to be I2C on one side and has differential driver/receivers on the other side. It apparently has all kinds of magic designed inside the chip to make it all work. So they have provide a method to get an I2C signal to work over an arbitrary distance.

To relate a similar story, at Cray they were building Super Computers. Not the old vector processors, but new "lots of CPU core in a box" concept. One on the latest cabintes I was associated with (from memory) had 96 nodes. Each node was a dual processor SMP (symmetrical multiple processing) configuration using AMD Athalon server CPUs. So that meant it had 192 AMD server class CPUs in a single cabinet. Each node was basically a full dual CPU desktop or server computer, minus about half of the circuitry because you don't need keyboard/monitor/disk/USB/networking. But they had their own big networking for each node. It had big power supplies, redundant power supplies. I think each cabinet drew about 54KW when it was thinking hard. And the cooling fan took 5KW to keep it from melting down. Well, with big 3-phase cooling fans and huge power supplies it was relatively electrically noisy. So someone decided to put a microntroller in the bottom of the cabinet. Then run a cable to the top of the cabinet to connect to a random I2C sensor (I think it was a temperature sensor). Guess what? It didn't work well. So here was real world example of a solid brick about the size of a refrigerator drawing 50KW and it had some of the same problems you will have on a lawn tractor...

Bottom line, I don't use I2C unless I have to, A reason I would have to use it is if I buy a sensor that has that interface. But if have to use it I would put the sensor and the microcontroller as close together as possible and only add a length of wire if I need to. An example of that would be if I have a magatometer that I don't want close to anything which would affect the magent field. If that becomes a problem then you could put a microcontroller next to each sensor and connect everything together with USB, which is what Al has done.

But basically, I2C started as a cute/simple/elegant solution to put multiple slave peripherals on a single two-wire bus on a localized circuit board. Then it grew wildly ouf of control. Not people are trying to bastardize it even further by trying to create a long range general purpose communication bus...

To answer your other question "So they are using Ethernet wire on a single “tractor” ? Instead of using usb and a hub?" Yes, Sparkfun gave them QwicBus (a big hammer) so everything else looks like a big nail. So rather than switching to a more appropriate method to connect distant nodes together the are going to extend their QwicBus and live it. In my opinion they are trying to force something they shouldn't. Although I now know about the PCA9615 chips that will allow more reasonable solutions in real world solutions. I will have to see if I can find that chip on a simple/cheap breakout board. Because in some cases it would be useful.

[I'm tired of proof reading, here you go.]

JeffS
2021-04-17 14:06:54

If anyone thinks about going down this path, keep in mind the "differential" board (BOB-14589) is different than the "endpoint" board (COM-16988). So make sure you understand the difference before you order anything. https://www.sparkfun.com/search/results?term=pca9615

Bob Hassett
2021-04-17 16:17:48

Not for me. I’ll go with the usb connections. Not knowing anything I really appreciate the explanation! Thanks for taking the time to explain stuff Jeff!

Al Jones
2021-04-17 17:28:40

Getting MoveBaseFlex to run on RPi... with tremendous help from @vinny ruia I have cloned the development branch of LawnTractor to my RPi and ran catkin_make cleanly. I have ver. 0 of an RPi launch file (attached). I am getting this error, but will continue to try and figure this out. The rough steps I followed are here.

🦾 Juan Eduardo Riva
vinny ruia
2021-04-17 17:29:55

*Thread Reply:* sudo apt-get install ros-kinetic-mbf-costmap-nav

vinny ruia
2021-04-17 17:30:09

*Thread Reply:* sudo apt get install ros-kinetic-map-server

vinny ruia
2021-04-17 17:30:20

*Thread Reply:* try both those installs, and try again

👍 Al Jones
Al Jones
2021-04-17 17:44:53

*Thread Reply:*

vinny ruia
2021-04-17 17:47:36

*Thread Reply:* yeah this would have been faster if we had gotten rosdep update to work

vinny ruia
2021-04-17 17:48:08

*Thread Reply:* sudo apt-get install ros-kinetic-teb-local-planner

vinny ruia
2021-04-17 17:49:16

*Thread Reply:* sudo apt-get install ros-kinetic-mbf-costmap-core

vinny ruia
2021-04-17 17:49:49

*Thread Reply:* sudo apt-get install ros-kinetic-global-planner

vinny ruia
2021-04-17 17:50:42

*Thread Reply:* remember the patterns I described when you get package failures like that , it’s always ros-<distro>-pkg

Al Jones
2021-04-17 17:53:53

*Thread Reply:* I can run rosdep update now

Al Jones
2021-04-17 17:53:59

*Thread Reply:* should I do that?

vinny ruia
2021-04-17 17:54:25

*Thread Reply:* yes. that might be easier than manually installing like we are

👍 Al Jones
vinny ruia
2021-04-17 17:55:10

*Thread Reply:* rosdep install --from-paths src --ignore-src

vinny ruia
2021-04-17 17:55:34

*Thread Reply:* this is done at the root of the workspace, after a “rosdep update”

Al Jones
2021-04-17 18:00:56

*Thread Reply:*

👍 vinny ruia
vinny ruia
2021-04-17 18:01:30

*Thread Reply:* ok now try the rosdep install command from a few messages up

👍 Al Jones
Al Jones
2021-04-17 18:02:24

*Thread Reply:* this one: rosdep install --from-paths src --ignore-src

👍 vinny ruia
vinny ruia
2021-04-17 18:02:43

*Thread Reply:* yup

vinny ruia
2021-04-17 18:03:36

*Thread Reply:* rosdep update updates the internal sources list , and install goes and installs the dependencies that you want (takes it from the package.xml in your workspace )

Al Jones
2021-04-17 18:08:35

*Thread Reply:* bucket load of updates....still running...

🙂 vinny ruia
Al Jones
2021-04-17 18:17:52

*Thread Reply:*

🙌 vinny ruia
Al Jones
2021-04-17 18:27:04

*Thread Reply:* looking better...

🙌 vinny ruia
Al Jones
2021-04-17 18:42:52

*Thread Reply:* current problem statement: I issue a 2d nav goal in RVIS, but I do not get any output on cmd_vel and the State Machine says it is still waiting for a Goal. ...for another day

Al Jones
2021-04-17 18:43:32

*Thread Reply:*

vinny ruia
2021-04-17 18:44:10

*Thread Reply:* Oh for some reason you have the old state machine getting launched

vinny ruia
2021-04-17 18:44:52

*Thread Reply:* &lt;node pkg="lawn_tractor_navigation" name="mbf_behavior_tree" type="movebaseflex_bt_node" respawn="false" output="screen" /&gt;

vinny ruia
2021-04-17 18:45:32

*Thread Reply:* You can reference this (this is for SIM)

https://github.com/ros-agriculture/lawntractor/blob/develop/lawntractorsim/launch/lawntractor_sim.launch

GitHub
Al Jones
2021-04-17 18:46:40

*Thread Reply:* So you are saying line 29 in my launch file is incorrect? <node pkg="lawntractornavigation" name="mbfstatemachine" type="mbfstatemachine.py" respawn="false" output="screen"/>

vinny ruia
2021-04-17 18:47:18

*Thread Reply:* Yeah. I am not sure if that will fix the problem., but it is a good place to start.

Al Jones
2021-04-17 18:48:10

*Thread Reply:* This is better?

<node pkg="lawntractornavigation" name="mbfbehaviortree" type="movebaseflexbtnode" respawn="false" output="screen" />

vinny ruia
2021-04-17 18:48:18

*Thread Reply:* Yeah try that

Al Jones
2021-04-17 18:48:23

*Thread Reply:* roger that

Al Jones
2021-04-17 18:49:47

*Thread Reply:* What about this? Need it?

<!-- ******** Global Parameters ********** --> <param name="/usesimtime" value="true"/>

vinny ruia
2021-04-17 18:50:13

*Thread Reply:* No, do not set that parameter either

Al Jones
2021-04-17 18:56:13

*Thread Reply:* Now this looks like serious progress.....

🙂 vinny ruia
Al Jones
2021-04-17 18:56:30

*Thread Reply:* something on cmd_vel and a path planned

🙂 vinny ruia
Al Jones
2021-04-17 18:58:44

*Thread Reply:* @vinny ruia Thank you again...no way would I have made any of this progress without your help; My promise is to write it down and share it with others....

🙂 vinny ruia
Bob Hassett
2021-04-17 19:59:53

Trying to startup an old raspberry image...buster but when asked for a password the default...raspberry...doesn’t work. I’ve tried holding down the sift key as well as trying shift alt delete. Looked on google and the pi forums but no help. I suppose I’ll have to reflash it? I would lose two other programs on it...Python and openCV

Juan Eduardo Riva
2021-04-17 20:44:56

*Thread Reply:* Can you hook it to a monitor..?

Bob Hassett
2021-04-17 21:15:36

*Thread Reply:* Yes it is connected to a monitor...it shows user..pi...then asks for password...I type in the default...raspberry...comes back not correct.

So I gave up, now I’ve switched sd cards to the ubiquity image. Finally found out how to open a terminal..

So now what? I’ve been spoiled using gui. How do I get to the installed stuff...how can I just snoop around? Do I use Linux commands in the terminal or?

JeffS
2021-04-17 21:38:31

*Thread Reply:* Yes, you use Linux commands in the terminal window.

Bob Hassett
2021-04-17 21:46:28

*Thread Reply:* I’m in. Found a lot of applications. Tried exploring ros. I’ll have to dig into the tutorials to get around. First project will be to interface pi with teensy 3.2. I see a lot of late nights after tomorrow!

Al Jones
2021-04-18 18:00:49

*Thread Reply:* @Bob Hassett Another option, if the RPi is on your network is to use FileZilla from another computer to connect to the RPi if you want to review the files that are on the RPi.

Bob Hassett
2021-04-18 19:35:35

*Thread Reply:* Thanks Al!

Pranshu Tople
2021-04-18 00:49:28

@Pranshu Tople has joined the channel

Bob Hassett
2021-04-18 07:27:37

Hello and welcome!

Bob Hassett
2021-04-19 19:58:11

Just for clarity using ubiquity.....I disable their machine.....now I can start going thru the ros tutorials at ros.org? Create a workspace for learning? Create a different workspace for my tractor?

JeffS
2021-04-19 20:31:31

I don't know. What do the tutorials tell you to do? I would just start at the beginning and continue until something conflicts.

Bob Hassett
2021-04-19 20:34:37

Thanks

Bob Hassett
2021-04-20 18:58:35

Just purchased a Lenovo Think Pad X1 Carbon for a robot development work station. It’ll be here in a couple of days. Comes with Windows 10. I’ll be using a raspberry pi in a similar capacity as Lawn Tractor projects. Soooo I’m trying to decide how to set it up.

Partition to go between Windows and Ubuntu?

Dump windows and just do Ubuntu?

Put either of them on a start up thumb drive?

Pros and cons?

Juan Eduardo Riva
2021-04-20 20:03:16

The best is to try to get the dual boot working. Both systems is the best and my favorite conf is Ubuntu and W10 + Ubuntu virtualization..

Bob Hassett
2021-04-23 15:49:16

My Lenovo Think Pad X1 Carbon came this afternoon, a day early. Got it connected to our WiFi and the net using the default Bling. Seems I have 5 G of free ram and 214 G free of disk space. So I’m considering Juan and Jeff’s suggestions for downloading as discussed at the meeting today. Is there a link yet of today’s recording?

Bob Hassett
2021-04-23 20:36:10

Found the recording.

Al Jones
2021-04-24 13:29:01

First Attempt at 2D Nav Goal....had to kill the tractor, cmd_vel is still sending a reverse signal....I have a bagfile, but will test in a more open space

🙌 vinny ruia, Javier
Al Jones
2021-04-24 15:49:11

*Thread Reply:* I moved to a bit more open space, gave the tractor a simple 2D nav goal, but it was not able to navigate straight, forward about 5 meters. After a few minutes I stopped it. It would move back and forth and in a circle, but not straight to the goal. Bagfile is here.

Al Jones
2021-04-24 16:18:05

*Thread Reply:* • rostopic echo /movebaseflex/getpath/goal • rostopic echo /movebasesimple/goal • rostopic echo /movebaseflex/currentgoal All return the same goal of pose: position: x: 21.1926879883 y: -1.35362887383 z: 0.0 orientation: x: 0.0 y: 0.0 z: 0.0124892463647 w: 0.999922006321

Juan Eduardo Riva
2021-04-25 07:26:56

*Thread Reply:* Congratulations @Al Jones. Maybe you want to try in a near future to only let the tractor move forward from the teb planner as a test..

JeffS
2021-04-24 13:36:16

Congratulations! You have advanced to the point where you are dangerous! 🙂

💩 Juan Eduardo Riva
Juan Eduardo Riva
2021-04-25 07:23:41

*Thread Reply:* You are right and here is where all the talking about security begins to have a meaning. As we all move forward I hope that we talk a lot this issue this 2021, but mainly I think that the best approach is not to build something that you can't kick and stop it, it's faster than a one year old kid and weight more than 25 kilos.. 🤷‍♂️:skintone4:💩

Javier
2021-04-26 07:05:08

*Thread Reply:* For security i¿m starting the navigation test in gazebo first, and next with a small robot with the same hardware (electronics).

Javier
2021-04-24 14:25:16

@Javier has joined the channel

JPonpon
2021-04-25 04:22:42

@JPonpon has joined the channel

Behzad Samadi
2021-04-25 17:01:27

@Behzad Samadi has joined the channel

JeffS
2021-04-25 21:31:14

I just stumbled on something interesting. I was just playing with my power steering motor and the Cytron 30A power driver board. I realized the trim pot on the board controls BOTH the speed when you push the "jog" pushbuttons and also the speed when you apply an external PWM signal. I'll see if I can track down some documentation on it.

JeffS
2021-04-25 21:52:22

Here is some documentation: https://www.amazon.com/Cytron-30A-Motor-Driver-MD30C/dp/B07L6HGFWY https://www.cytron.io/p-30amp-5v-30v-dc-motor-driver A manual here: https://docs.google.com/document/d/178uDa3dmoG0ZX859rWUOS2Xyafkd8hSsSET5-ZLXMYQ/view#

I still don't see anything saying the pot also controls the external PWM input, but it does. I'll continue playing with it... But this is a really fabulous and affordable motor driver board.

Cytron Technologies
Juan Eduardo Riva
2021-04-26 17:05:19

*Thread Reply:* Jeff, I think this is what I was talking about the other day at the meeting about the issue of potenciometer, the motor and force, or are you talking about something different ..?

JeffS
2021-04-26 18:07:32

*Thread Reply:* I'll have to re-watch the video to see what exactly we were talking about.

JeffS
2021-04-26 20:39:26

*Thread Reply:* I watched the video. I'm not sure how this compares. You stated that you need to verify that the actual mechanical system is correct. This is exactly right. Various people tried to co fuse the issue. (Including me)

But yes, adjusting the pot on the driver board should control how much power (force) is applied to the motor. But controlling the PWM number form the Arduino sent to the motor would also control how much power (force) is applied to the motor.

Maybe we need to document this is more detail.

JeffS
2021-04-26 21:05:59

*Thread Reply:* Let's see if this is going to append this message or start a new message...

Yes, you need to determine correct functionality at a very basic mechanical level. Below ROS on Linux, and below a microcontroller. You need to verify the output voltage of a potentiometer by reading the voltage output. (assuming the potentiometer is wired as a voltage divider) This can be done with a multimeter (I.e., read the voltage) without any conversion using a microcontroller. If the votage is within an acceptable range, then you can move on to a microcontroller and verify the ADC reading that it is presenting. (I don't know how well this is translating to Spanish, Also, I have started drinking already...) But if it passes the voltage readings, then does it pass the the microcontroller ADC readings? Keep on mind that the range has to meet the range that is acceptable for the mechanical left to to right mechanical range. If any of this is does not match the accepted range then you have a problem. And yes, you have to control the applied power so you do not smash anything mechanically as you do your testing...

Tawanda Minya
2021-04-27 03:20:55

@Tawanda Minya has joined the channel

Bob Hassett
2021-04-27 06:34:23

Hello Tawanda!

Tawanda Minya
2021-04-27 06:35:06

Hi Bob

Tawanda Minya
2021-04-27 06:35:16

Thanks for the welcome

JeffS
2021-04-27 23:31:17

I made a slight amount of progress. I am able to control my power steering motor position by turning an extra potentiometer. https://www.youtube.com/watch?v=MHd0v3Arq_g https://www.youtube.com/watch?v=EkU9EA50GnY

YouTube
} jws8675309 (https://www.youtube.com/user/jws8675309)
YouTube
} jws8675309 (https://www.youtube.com/user/jws8675309)
👍 Bob Hassett
JeffS
2021-04-29 22:19:25

The weekly meeting is on Friday at 12:00 (Noon) Eastern time, 9:00AM Pacific time). About 12 hours and 45 minutes from whenever you receive this message. The Zoom meeting link is in the pinned message at the top of the General channel. (If I didn't screw this up...)

JeffS
2021-04-30 10:00:02

#general The ROS Agriculture meeting starts in 1 hour. The ZOOM meeting link is in the pinned message at the top of the General channel.

Juan Eduardo Riva
2021-04-30 10:04:20

*Thread Reply:* @JeffS I'm on the run because it's my youngest son's birthday and I have a few kids on the farm. I think I'll be at the meeting; but I didn't want to go beyond asking .. this is a message that you made automatic ..? Because I'm interested in doing the same in other groups. On the other hand, I'm going to upload to the projects channel and generally what we were working on this week.

JeffS
2021-04-30 10:10:21

*Thread Reply:* This was not automatic. I just sent it at 1 hour before meeting. So people have a time reference. SInce we have several new people and the pinned message has not been updated with the schedule I thought I would post this today only.

Juan Eduardo Riva
2021-04-30 10:12:15

*Thread Reply:* ahh, I was hoping that it could be automated because I have the same problem in the group in Spanish, I will continue to investigate it anyway. Thanks, see you in a bit.

Al Jones
2021-05-01 14:39:34

*Thread Reply:* Recording from yesterday's meeting has been uploaded to the Google drive. The link is at the top of the General channel.

Al Jones
2021-05-01 16:06:57

The diameter of the turning circle measured by the outer wheels of my lawn tractor while making a complete turn is ~13-14 feet. (~4-4.3 meters).  I know this because I executed cmdvel commands linear.x(speed) 0.8, angular.z(steer angle) -1.0 and +1.0 , distance (in meters) 80 and measured the results. Now, is that the "minturningradius" in teblocalplannerparamscarlike.yaml in /home/ubuntu/catkinws/src/lawntractor/lawntractor_navigation/config? Anyone? Ferris? @vinny ruia?

Al Jones
2021-05-01 16:16:33

*Thread Reply:* link

Al Jones
2021-05-01 16:25:23

*Thread Reply:* not able to make a turn less than the value stated... (not a fan of negatives) - so 4.3/2 or minturningradius = 2.15

vinny ruia
2021-05-01 16:29:58

*Thread Reply:* I think you are correct in that interpretation

Al Jones
2021-05-01 16:55:41

*Thread Reply:* I saw that earlier and wondered if it could be used in in the physical world.

vinny ruia
2021-05-01 17:10:11

*Thread Reply:* hmm I don’t see why not (just don’t launch stage)

vinny ruia
2021-05-01 17:10:49

*Thread Reply:* just be careful and keep your hand on the estop if it does some automatic tuning

Al Jones
2021-05-01 20:32:04

*Thread Reply:* I was able to run a simple 2D Nav goal straight ahead. I adjusted teblocalplannerparamscarlike.yaml in /home/ubuntu/catkinws/src/lawntractor/lawntractornavigation/config in the tractor RPi: min_turning_radius: 2.2 # 14 feet diameter wheelbase: 1.27 # 50 inches front axle to rear axle xy_goal_tolerance: 1.0 # from 0.4 , just trying 1.0 yaw_goal_tolerance: 1.0 # from 0.2, just trying 1.0

🙌 vinny ruia
Al Jones
2021-05-01 20:39:09

*Thread Reply:* In other tests it was still doing a whole lot of reversing, so it would still be good to figure out how to reduce the tendency to go into reverse.

vinny ruia
2021-05-01 20:40:58

*Thread Reply:* not certain but you MIGHT be able to prevent the tractor going backwards by setting backwards vel to 0

https://github.com/ros-agriculture/lawntractor/blob/b9efa3345985e2135cf4db40a3e3265b8ad9d5a0/lawntractornavigation/config/teblocalplannerparams_carlike.yaml#L16

GitHub
Al Jones
2021-05-01 20:41:58

*Thread Reply:* cool, I'll give that a try

JeffS
2021-05-03 00:31:06

*Thread Reply:* Here is another thing to try. Section 6 on this page https://mowito-navstack.readthedocs.io/en/latest/step_5c.html says: weight_kinematics_forward_drive number Optimization weight for forcing the robot to choose only forward directions positive transl. velocities). A small weight (e.g. 1.0) still allows driving backwards. A value around 1000 almost prevents backward driving (but cannot be guaranteed).

Al Jones
2021-05-08 14:37:57

*Thread Reply:* Found this which further suggests the weightkinematicsforward_drive setting helps backwards and forwards oscillation. Hoping to test tomorrow.

answers.ros.org
Al Jones
2021-05-08 20:48:12

*Thread Reply:* for future ref: https://medium.com/@subodh.malgonde/building-an-actual-self-driving-car-53f67ca41566

Medium
Reading time
4 min read
JeffS
2021-05-06 17:15:30

I have solved the squealing steering motor problem. The answer is to switch to the TimerOne library instead of using the AnalogWrite() function: https://www.pjrc.com/teensy/td_libs_TimerOne.html Or the TimerThree library would probably also work. The TimerOne says it works on Arduinos and Teensys. But the pin numbers that are available may vary.

It allows you to set the PWM frequency. I attempted to set it it to 20Khz (50us), I haven't verified it with a scope yet. But that frequency is not audible.

The other implication is that the pulse width range is 0-1023 instead of 0-255 on the AnalogWrite() command. I haven't tracked down any other side affects it may have.

I can give a demo between the two methods on the video meeting tomorrow.

👍 Al Jones
🦾 Juan Eduardo Riva
Bob Hassett
2021-05-06 18:00:43

Looking forward to your demo!

Juan Eduardo Riva
2021-05-07 11:30:13

Hi, here it's the gist of my main.cpp code.. https://gist.github.com/rje1974/48f9bc3dc2685634ecaca59a7748b60b

JeffS
2021-05-07 11:41:21

Yes, I can access that,

Juan Eduardo Riva
2021-05-07 13:00:56

A tool to use for what we were talking about organizing the google drive .. This way you mount it on your ubuntu https://linuxhint.com/google_drive_installation_ubuntu/

linuxhint.com
VKuehn
2021-05-09 06:38:08

@VKuehn has joined the channel

JeffS
2021-05-10 16:54:42

Rowbot just sent me an email newsletter. You can see it here: https://mailchi.mp/050aaafc6357/field_report_cover_crop_seeding

Juan Eduardo Riva
2021-05-10 20:42:18

*Thread Reply:* GPS antenna problems and navigation in high crops, I really hope that soon will be a common problem for all of us. Interesting application besides I hate cover crops

Juan Eduardo Riva
2021-05-10 20:43:14

*Thread Reply:* This is something that @Javier has been working

Javier
2021-05-14 09:52:47

*Thread Reply:* Yes Juan, in the case of corn the problem is complex, because when the robot is far fron the base station lost free path

Javier
2021-05-14 09:53:00

*Thread Reply:* in the case of soybean it's most simple

Javier
2021-05-14 09:55:13

*Thread Reply:*

Javier
2021-05-14 09:55:37

*Thread Reply:* i put the gps at 1.5meters and works for soybean

Javier
2021-05-14 09:55:41

*Thread Reply:* not for corn

Javier
2021-05-14 09:59:23

*Thread Reply:* for sorghun is worst

Javier
2021-05-14 09:59:51

*Thread Reply:* and if the day have high humidity is a problem too

JeffS
2021-05-10 17:40:06

I was just reviewing a couple of the original ROS Agriculture videos on YouTube. I see they are now set to "unlisted". So that is why they disappeared from the ROS Agriculture YouTube index page, but they still exist if you know the URL That doesn't answer if they will disappear completely some day.

JeffS
2021-05-11 12:19:22

You are going to have to be more specific...

JeffS
2021-05-11 16:19:24

Let me try this again... (Slack really pisses me off) Okay, I'm not quite sure what your confusion is. By searching my index that I posted: http://sampson-jeff.com/RosAgriculture/ grep ' Meeting ' ros-agriculture-youtube.txt &gt; all_meeting This yields this. Not exactly, because I have more entries than what were posted. But I am going to ignore any further questions or statements from Bob...

I: 11302017 Community Meeting https://www.youtube.com/watch?v=mYeBaRp7DNc 12122017 Community Meeting https://www.youtube.com/watch?v=MSyXIZTZML4 01092018 Community Meeting https://www.youtube.com/watch?v=GrPFrgsnQsk I: 01162018 Community Meeting https://www.youtube.com/watch?v=BlDYHg9DOI4 ...

Oh, it won't let me post that . Because it is tons of information. So you have to do the search yourself.

Bob Hassett
2021-05-11 16:22:27

I’ll be quiet. My apologies.

Javier
2021-05-13 14:24:02

I downloaded few weeks ago all the videos of the ROS Agriculture youtube channel, i'm going to find a way to share the videos. Maybe upload again to youtube

🦾 Juan Eduardo Riva
Juan Eduardo Riva
2021-05-13 20:03:44

*Thread Reply:* Maybe list them as private. Do we know which was the license that they originally had..? Because we really don't know who is the 'rigths owner' of the videos.. coming from an habitant of a country of the third world may be this sounds exaggerated but I don't want others to have problems..

Javier
2021-05-14 06:39:26

*Thread Reply:* maybe in mega.nz

Javier
2021-05-14 06:39:37

*Thread Reply:* have 50gb of free storage

JeffS
2021-05-13 18:51:03

I have a copy of all 250 meeting videos. I sent a copy to Al and to Bob. But it did not include all of the videos. You have a copy of everything.

I haven't decided if these videos should be reposted... Or where.

My videos used 90.1GB. Maybe it depends on which server the videos were downloaded from? Or the time of day?

I keep thinking we should start over. But r=there was lot of good data presented in the last 3 years.

JeffS
2021-05-13 19:17:33

I updated my index here: http://sampson-jeff.com/RosAgriculture/ I just added a new text file with the date 20210513 appended to it. As people have noted, if you view it in a browser you get extra characters. If you download the file and view it with a text editor then the extra characters go away. And view the readme.txt file for extra info...

JeffS
2021-05-13 19:23:53

Oh, I screwed up. I uploaded a bogus file. But I think I have it fixed now.

JeffS
2021-05-13 19:50:58

This was just posted to Home Brew Robotics email list: https://luci.com/wp-content/uploads/2021/05/LUCI-Safety-Report-2021-st.pdf Parts of this probably apply to any autonomous vehicle.

Juan Eduardo Riva
2021-05-14 04:38:34

*Thread Reply:* I found the document very interesting and although I have to read more about the Luci standard, it seems to me that you are right is that it is something valuable and from where we can surely take as a basis for many instances, because being something that is directly related to a human, surely it takes much more into account to this than other products. Thank you very much Jeff ..

JeffS
2021-05-13 20:09:40

Someday I am going to have to figure out how to efficiently edit videos for upload. I have a couple of pictures and three videos from today. I may just upload the videos to YouTube and post the photos here.

I put my lawn tractor up on a jack stand to relieve the torque on the front end. Then I used the push-buttons on the Cytron 30-amp driver board to run the steering back and forth. It takes much more force than I expected when on the ground. And I decided that it requires almost exactly one turn of the steering wheel to go from left to right, These positions were not up against any hard stop, but close to full travel.

Here are photos of the setup: I need to figure out how to edit the size of photos in Linux...

JeffS
2021-05-13 21:05:52

I got my videos uploaded. Here is a hot from the front on low power. A shot from the back on low power. And a shot from the back on higher power. I need to get the frame attached solidly so it can withstand the torque (as opposed to me holding it). https://www.youtube.com/watch?v=hokrLYEN9XQ https://www.youtube.com/watch?v=9OzLPtF8f2k https://www.youtube.com/watch?v=uIF9KCYWabU

YouTube
} jws8675309 (https://www.youtube.com/user/jws8675309)
YouTube
} jws8675309 (https://www.youtube.com/user/jws8675309)
YouTube
} jws8675309 (https://www.youtube.com/user/jws8675309)
🙌 Juan Eduardo Riva, Bob Hassett, Javier
Javier
2021-05-14 06:36:06

Nice!

Al Jones
2021-05-14 15:33:57

Videos from last two weeks are in the Google folder. They should be viewable in a few minutes.

Bob Hassett
2021-05-14 15:34:22

Thanks!

Al Jones
2021-05-16 10:25:47

2D Nav goal testing, tuning has not really helped. Still debugging. Will post video.

Javier
2021-05-16 10:31:40

Hi Al. If you use the wheel odom source only, you have the same result for a rect line in small distance?

Al Jones
2021-05-16 10:40:13

*Thread Reply:* @Javier Although I have wheel odom data I only use it to measure speed. Odom position comes from GPS via a conversion program. I will post the link.

Al Jones
2021-05-16 10:42:22

*Thread Reply:* Juan and I have a sheet that lists our software components.

Al Jones
2021-05-16 10:43:32

*Thread Reply:* I get odom by using this conversion program "gps_odom.py" https://gist.github.com/jones2126/0f98af1cad3ca73df3b0e759cc30dc3f

JeffS
2021-05-16 10:36:10

Did you fix the high publish rate that the URDF devices were publishing? I think they were publishing 10000/second.

Al Jones
2021-05-16 10:38:26

*Thread Reply:* @JeffS Give me a hint, where am I looking for publishing rate? No I have only updated dimensions and tolerance related items.

JeffS
2021-05-16 11:14:01

*Thread Reply:* It was on the transform tree you would show. The devices listed in the URDF said they were publishing 10000/second. I would assume that would be controlled when you launch robotstatepublisher, or it is an entry in the URDF file.

Al Jones
2021-05-16 12:08:37

*Thread Reply:* I am running my bagfile and captured this

Al Jones
2021-05-16 12:16:30

*Thread Reply:* Here is the launch file where two of the tf's are set up: https://gist.github.com/jones2126/e6334ce6d4fa1dbc79e83940216bc6b6

JeffS
2021-05-16 12:42:11

*Thread Reply:* Just a quick observation. Maybe you didn't notice the qx,qy,qz,qw fields. That is specifying a quaternion. I "think" if you supply 3 values it treats it as x,y,z. (or whatever the order of values to get pitch, roll, yaw). Then you won't have to figure a quaternion.

JeffS
2021-05-16 12:49:18

*Thread Reply:* I see in your launch file that the rate for robotstatepublisher is 30 (30 hz). But your transform tree says a rate of 10000hz. I'm guessing you simply have something broken. Possibly your "rate" value is being ignored. (Probably because your names do not match) Or something is just specified incorrectly.

I still haven't figured out why you don't just throw out your URDF and robotstatepublisher and just put the two static transform publishers in your launch file. If you want to kep your URDF, you are going to have to throw out the extraneous crap in the URDF. And figure out why the values from the URDF are not being used.

Al Jones
2021-05-16 12:51:17

*Thread Reply:* This is suggesting 10K is sort of a default. Are you sure it is a problem? https://answers.ros.org/question/357030/problem-with-static-transform-publisher/

Al Jones
2021-05-16 12:55:02

*Thread Reply:* Regarding the qx, qy, etc. there seem to be two formats for node pkg="tf". There also appears to be a node pkg="tf2_ros" which is more modern.

JeffS
2021-05-16 12:57:21

*Thread Reply:* That's true about the two different formats for statictransformpublisher. I just wanted you to be aware in the future when pull up that note that you are not required to supply a quaternion.

👍 Al Jones
Al Jones
2021-05-16 12:59:21

*Thread Reply:* Counting elements in my statement.....seem to be 6 &lt;node pkg="tf" type="static_transform_publisher" name="map_to_odom" args="0.0 0.0 0.0 0 0 0.0 map odom 100"/&gt;

JeffS
2021-05-16 13:30:30

*Thread Reply:* Okay "Bob", do what you want. But you have raised a very valid point. About publish rate, TF vs. TF2, URDF vs. statictransformbroadcasters. I will publish something ion a main channel so Slack doesn't hide it from everyone..,.

Al Jones
2021-05-16 11:22:39

2nd Attempt at running 2D Nav Goal via RVIS

YouTube
} Al Jones (https://www.youtube.com/channel/UC_mdukR45X1FXZXJMlahr_g)
Javier
2021-05-16 11:24:13

I'm start testing teb+move_base with odom from the wheels to debug the software

Javier
2021-05-16 11:28:34

The first problem that i resolve is the accelerations limits. Maybe this parameter cause an oscilation

Al Jones
2021-05-16 11:32:53

*Thread Reply:* Thanks for looking at it. Are you looking at teblocalplannerparamscarlike.yaml?

Javier
2021-05-16 11:34:18

*Thread Reply:* Yes exactly

Javier
2021-05-16 12:31:37

*Thread Reply:* Try reducing acclimtheta=1

Javier
2021-05-16 12:31:58

*Thread Reply:* If doesn'work increase the value

Javier
2021-05-16 12:33:10

*Thread Reply:* And the acclimitx=1.5

👍 Al Jones
Javier
2021-05-16 11:30:00

One test could be reduce the max acceleration

Javier
2021-05-16 11:30:31

Angular first

Al Jones
2021-05-16 11:38:47

1st Attempt at running 2D nav goal (gps, rvis, move base_flex)

YouTube
} Al Jones (https://www.youtube.com/channel/UC_mdukR45X1FXZXJMlahr_g)
Javier
2021-05-16 11:44:28

Oh! i see the videos. Good test

Javier
2021-05-16 11:45:09

The movements are very fast, maybe if the feedback is not too fast cause the problem

👍 Al Jones
Javier
2021-05-16 11:45:44

So... reducing the acceleration could be a possible solution..

Javier
2021-05-16 11:56:52

Test using odom from wheels+tebplanner+rplidar

👍 Al Jones
Javier
2021-05-16 11:59:14

Avoiding obstacles

Al Jones
2021-05-16 14:02:48

Using Plotjuggler to plot pose x, y from odom which is fed by gps. The result appears stable. When sitting for 90 seconds the movement ranges about 10 mm, so I'm thinking the gps signal and the conversion to odom is OK.

🙌 vinny ruia
JeffS
2021-05-16 14:17:42

[Just to clarify. Slack bit me again and this will be a continuation of what I started...] [Again, Slack is fighting me with everything I type. So I will edit this in a text file and post it...] [I will post this in a main thread as opposed to a thread, so it is not hidden.]

Al has raised a very valid point. I see his transform tree says the values defined in his URDF file are publishing at 10000/second. That looked wrong to me. But he posted a link stating that it is normal if you are running TF2. https://answers.ros.org/question/357030/problem-with-static-transform-publisher/ (Point of order - TF2 was adopted with the introduction of Hydro (8 YEARS AGO!!!!)

They posted a couple of links (which is left up to the user to track down) that talk about using TF2 as opposed to TF.) So they are saying that you should not use: <node pkg="tf" type="statictransformpublisher" name="maptoodom" args="0.0 0.0 0.0 0 0 0.0 map odom 100"/> (which is TF) But instead you should use: <node pkg="tf2ros" type="statictransformpublisher" name="link1broadcaster" args="1 0 0 0 0 0 1 link1parent link1" /> The first method uses TF, which hasn't been used used (supported) for 8 YEARS!!!.... The second method uses TF2, which is the modern standard. Which has been the prefered (supported) method for the last 8 YEARS!!! It uses the "statictransform_broadcaster" from the TF2 package as opposed to the orignal one from the TF package. It also does not use the publish rate anymore. [this also has the format for quaternion as opposed to picth.roll.yaw, but that is different issue that you are supposed to inherently know].

So bottom line, don't use the original method any more for commnand line (or launch file) specification. Use the "new" method. (which may result in all of your topics indicating they are being published at 10000/second).

The second point, if you are going to use a URDF file for a physical vehicle, know it and understand it. The lines:

<!-- define base footprint (virtual link) --> <link name="base_footprint" />

Are broken. For two reasons. The URDF file uses XML formatting. A "<link" tag rerquires a terminating "</link" to terminate the block. So that breaks it. Secondly these is no code associated with the "<link name="base_footprint" />" block. So that breaks it. I don't know what the implications of these are in Al's case are, but it is wrong.

I assume you have to have a "link" and a "joint" for each object in a URDF file. And maybe other thing are required, but I don't use a URDF for a physical vehicle so I don't know the requirements.

I see some of the blocks are commented out (which was not immediately obvious). So I don't know if that particular URDF file is valid. (There is probably some form of "check this URDF file" avaialble, but I don't know what it is called.

answers.ros.org
JeffS
2021-05-16 14:20:01

I will go back to what I should be doing, making sure my taxes go out tomorrow. I can do a Zoom meeting or other direct interaction. But this random text interchanges on Slack are killing me...

JeffS
2021-05-16 14:20:55

[Oh, Slack bit me again by appending these togher...]

vinny ruia
2021-05-16 15:11:30

I think &lt;link name=“base_footprint”/&gt; is perfectly valid

vinny ruia
2021-05-16 15:13:27

And base footprint is connected to base link by L72 : https://github.com/ros-agriculture/lawntractor/blob/b9efa3345985e2135cf4db40a3e3265b8ad9d5a0/lawntractorsim/urdf/lawntractor.urdf.xacro#L72

GitHub
vinny ruia
2021-05-16 15:13:50

I do agree that likely using the tf2 static transform publisher is a good idea

JeffS
2021-05-16 15:21:12

Oh... It is because it is: <link name="basefootprint" /> Instead of: <link name="basefootprint" > which would require: </link> But as I said, I don't use URDF. So pardon my ignorance.

👍 vinny ruia
Bob Hassett
2021-05-17 18:36:54

Not exactly ROS robotics, yet. My son has a bad back and can not twist around and open the seed gate of a tow behind broadcaster while driving his lawntractor. So I used a programmable remote FOB. I tried to follow the instructions but had problems. Seems one has to wait 25 seconds for the programming function to time out before it saves the selections. Any way it works. Now to mount everything on the tow behind spreader. I’ll order another fob unit for a kill switch on my project. Reason being that it can connect to other devices byway of I2C. I might need more auto shut down commands from future sensors?

Juan Eduardo Riva
2021-05-17 20:32:11

*Thread Reply:* I understand that it would not be recommended for security reasons. any automated process that you cannot stop is dangerous

Bob Hassett
2021-05-17 20:59:29

'Driverless tractors are indeed dangerous. So I’ll limit my current tractor augmentation to just using switches while I’m in the drivers seat,for now. I found a good candidate to act as my “crash dummy” while developing the necessary electronics. Ugly now, but who knows?

Bob Hassett
2021-05-17 20:59:29
🙌 Juan Eduardo Riva
Bob Hassett
2021-05-17 20:59:29
Bob Hassett
2021-05-17 20:59:29
👀 Juan Eduardo Riva, Bob Hassett
Bob Hassett
2021-05-21 05:50:29

https://apple.news/Aq3518LVzTSuykX1HH2KE-g

apple.news
Al Jones
2021-05-21 10:40:22

Anyone looked at this? https://docs.github.com/en/codespaces/about-codespaces I have tractor specific configurations I would like to easily share. I also have code that run on the Teensy's on the tractor. At the moment I have been using gist to share that and although that works I'm wondering if "codespaces" would be better. Hence the question, has anyone looked at this?

docs.github.com
Bob Hassett
2021-05-21 13:18:48

There was a question during the meeting today. What about steering?

Bob Hassett
2021-05-22 14:30:26

Not ROS control but hey, gotta start somewhere. A programmable FOB activates the actuator which is connected to the seed gate/fertilizer gate. Pressing A on the FOB opens the gate. Pressing B closes the gate. The sliding limit switch more or less sets the application rate. BTW this is son Nate’s tow behind broadcaster spreader. Battery is behind the aluminum plate.

Juan Eduardo Riva
2021-05-23 13:36:41

Nice video about something i thiink a lot and is about geting more from car parts especialy of the steering power motor.. https://www.youtube.com/watch?v=R6vzCr-iPoQ

YouTube
} Kevin Roscom (https://www.youtube.com/user/kevinroscom)
Bob Hassett
2021-05-23 13:43:53

Thanks Juan for the heads up! Nice video and very interesting. I’ll have to review it a couple of times in slow motion.

JeffS
2021-05-25 23:45:19

If you are up, there is a lunar eclipse in 4 hours: https://www.timeanddate.com/live/eclipse-lunar-2021-may-26

timeanddate.com
JeffS
2021-05-25 23:53:05

[Will this get appended to my previous message?] I attended the Home Brew Robotics ROS Zoom meeting tonight. They went through converting a ROS1 Python program to ROS2. It was interesting to see what changes were needed. Mainly it was replacing rospy with rclpy. And each call to rclpy needed to be converted to the new new format.

Bob Hassett
2021-05-26 10:14:43

*Thread Reply:* Did that group discuss which text editors they use? Sublime or pycharm or? Which editors do people here use?

JeffS
2021-05-26 13:58:12

*Thread Reply:* They didn't discuss editors... Camp was using vi and he made it work most of the time. Michael suggested several times that Camp should look into VS Code. I use gedit.

Javier
2021-05-26 15:12:43

i use mcedit

Javier
2021-05-26 15:13:23

https://midnight-commander.org/ the mc have the mcedit editor

Juan Eduardo Riva
2021-05-26 19:11:32

vscode and micro

Bob Hassett
2021-05-26 20:47:09

Thanks guys!

Javier
2021-05-27 06:43:11

Pods detection on soybean. Model trained using yoloV5. https://github.com/ultralytics/yolov5

Juan Eduardo Riva
2021-05-27 08:25:01

https://discourse.ros.org/t/first-beta-of-ros1-integration-for-farming-simulator19/20625

ROS Discourse
Reading time
1 mins 🕑
Likes
3 ❤️
Bob Hassett
2021-05-27 18:56:04

My FOB kill switch works. Once it’s on the Jeep I’ll use bigger wires. The fob relay controls a heavy duty relay. The toy motor is there temporarily to test the concept. It will be replace by the Jeep’s drive motors.

Javier
2021-05-28 12:22:17

This is the library that i'm using to control the motors of the wheels and the steering. Works very well and stable using an arduino UNO board connected using the USB to a computer with ROS. In my case like as said in the meeting i used an odroid board with 4GB of RAM

Bob Hassett
2021-05-28 15:14:34

*Thread Reply:* Always nice to see different boards! Makes one think.

JeffS
2021-05-28 13:23:10

This is the tutorial I followed to get the Blue Pill to work like any other Arduino. I didn't test it alot, but I can directly upload code from the Arduino IDE over USB, and I could do a print statement and it would show up in the Arduino terminal screen. I didn't check to see how many Arduino libraries are available. https://www.youtube.com/watch?v=Myon8H111PQ

YouTube
} Caleb Marting (https://www.youtube.com/c/CalebMarting)
👍 Javier, Bob Hassett, Juan Eduardo Riva
Bob Hassett
2021-05-28 15:35:56

Here is a simplified diagram of what I was trying to explain during the meeting. This phase sole purpose is to determine the FOB control range.

Juan Eduardo Riva
2021-05-29 14:22:59

thanks

Bob Hassett
2021-05-29 21:51:06

@JeffS , did your Dan Foss tractor have its kill switch before or after the on/off key?

JeffS
2021-05-29 22:05:00

I'm not sure exactly what your question is, or how it relates to your Jeep. But we put our relay between the battery and the ignition switch, If the relay opens it was like turning the key off. So the engine would die and all of the auxilliary electronics on the tractor shut down.

Bob Hassett
2021-05-30 06:49:48

*Thread Reply:* Thanks for the suggestion about moving the kill cuircut. Also thanks for Camp’s link.

JeffS
2021-05-30 14:21:53

*Thread Reply:* I don't recall any suggestions about moving eStop circuits. I just told you what we did on the eStop circuit on the Danfoss project.

Bob Hassett
2021-05-30 14:28:55

*Thread Reply:* I should have been more accurate. I should have said, I’m going to borrow that Dan Foss idea.

JeffS
2021-05-30 14:45:37

*Thread Reply:* I have noticed a disconnect about "eStop" There are actually several layers to interupting your robot. One level level is to say "pause". Another level is to say "cancel the current navigation attempt". Anther level is to say "totally shut down any physical movement and cancel all naviagtion attempts" (maybe even killing the control software completely). It depends what you want to do.

I was watching these videos and that is where I noticed his statement that a button on his remote was an eStop. It wasn't it simply interrupted navigation and came to an orderly halt. In my opinion, an eStop kills any movement, and hopefully kills the navigation process (and maybe all software) so when you release your "eStop" it does not not resume motion. https://www.youtube.com/playlist?list=PLmb0WjGtyZZTXYqRmrmorwfBD2mkl4XiM

So for everybody to consider... Don't assume a word or phrase is all encompassing. You have several levels; eStop (stops it completely to prevent death), kill navigation (because you changed your mind or because it can't make the navigation goal), or a simple pause (that will cause the software to sit and wait until you release it, maybe someone was in the path). Also consider a simple pause may cause other complications, I.e., it may start recovery behaviors since it can not continue forward.

I will push this to the main channel since this is a concept that everybody needs to be aware of. Not all interruptions are eStop. But preventing death (to yourself or others) is definately an eStop condition. A pause is a convenience.

YouTube
Bob Hassett
2021-05-30 16:38:10

*Thread Reply:* Thanks for the clarification. I’ve relabeled my circuit as “ interrupt circuit” the FOB toggles on....or toggles off ...the rear axle motors, at this point.

JeffS
2021-05-30 01:57:06

Camp Peavy is starting a robot similar to Bob's new jeep. Here is a link to his description. https://groups.google.com/g/hbrobotics/c/jiGSzRuWG-U/m/9TOaWjmBAwAJ

Al Jones
2021-05-30 10:30:07

You guys are likely better linux admins than me so maybe you know this, but thought I would pass along I was trying to update something on my RPi ($ sudo apt-get update); I had the error, "...signatures were invalid: KEYEXPIRED 1622248854..."; After running $ apt-key list I found an Open Robotics key had expired causing an issue with http://packages.ros.org/ros/ubuntu xenilease

pub   4096R/AB17C654 2019-05-30 [expired: _**2021-05-29**_] uid                  Open Robotics &lt;<a href="mailto:info@osrfoundation.org">info@osrfoundation.org</a>&gt;

After research, the fix was $ sudo apt-key adv --keyserver <a href="http://keys.gnupg.net">keys.gnupg.net</a> --recv-keys AB17C654

I'm assuming your key will be different than AB17C654

Javier
2021-05-30 10:42:48

Try running apt-get install -f

Javier
2021-05-30 10:44:21

sudo apt-get install -f

Al Jones
2021-05-30 12:41:25

*Thread Reply:* Now looking in to how to solve this....

Javier
2021-05-30 12:44:21

*Thread Reply:* sudo dpkg-reconfigure -a

Al Jones
2021-05-30 12:46:21

*Thread Reply:* Did you mean --force?

Javier
2021-05-30 12:51:00

*Thread Reply:* Sorry yes with then force argument

Javier
2021-05-30 12:51:44

*Thread Reply:* Its a very powerfull command i solved a lot of problems with dpkg

Javier
2021-05-30 12:52:43

*Thread Reply:* Then run again sudo apt-get install -f

Javier
2021-05-30 12:53:02

*Thread Reply:* sudo apt-get update

JeffS
2021-05-30 14:18:08

*Thread Reply:* Maybe this applies: https://groups.google.com/g/hbrobotics/c/uWisDR7quYE/m/pjxrbyB1AwAJ

👍 Al Jones
Bob Hassett
2021-05-30 16:52:41

I got the fob interrupt working. It has a range of 300 + feet BUT the slightest blade of grass will interfere. So my lesson is to be careful, it may not work when I need it. I have to have the FOB receiver high AND totally unobstructed, if possible. I am satisfied at this point. All I wanted at this point is some control within a few feet.

👍 Al Jones
Bob Hassett
2021-06-01 11:04:40

https://youtu.be/j7CzFeHqf0s

YouTube
} FS Farmer (https://www.youtube.com/channel/UCBd6VvmjakD4yfAgpOoYHNA)
Javier
2021-06-02 20:52:08

Simulating crops in gazebo

🙌 Juan Eduardo Riva
Juan Eduardo Riva
2021-06-03 06:39:21

*Thread Reply:* This is a development for the project you are working on ..?

Javier
2021-06-03 06:40:47

Hi Juan, yes. We working to build another robot, the simulation helps in the design and we testing all using gazebo before build

Juan Eduardo Riva
2021-06-03 06:46:12

*Thread Reply:* NICE, I really think it is a very good business model.

Bob Hassett
2021-06-06 11:02:11

Was last FRIDAY’s meeting recorded?

Al Jones
2021-06-06 12:20:37

*Thread Reply:* Yes, I have to convert it and upload it still.

Bob Hassett
2021-06-06 13:44:05

*Thread Reply:* Thank you! I was afraid I was going to miss out.

JeffS
2021-06-07 19:46:03

It has been really hot the last few days. So I decided to move downstairs and play with some YouTube publishing software. Here is a test result from today: https://youtu.be/4fW7nESS6BQ I am fighting with the audio. Is it usable? Too loud? Too soft?

YouTube
} jws8675309 (https://www.youtube.com/user/jws8675309)
Bob Hassett
2021-06-08 06:01:17

Looks and sounds good here!

JeffS
2021-06-08 15:20:30

I have come to the conclusion that the green screen in Zoom is FAR superior to OBS software. In Zoom, you just turn it on and it works. In OBS there are many parameters you can change, and none of them work very well. Maybe I will hang a neutral back drop and not worry about it.

JeffS
2021-06-08 21:49:12

This description at the top of this page may fix your expired keys, if people are still having problems... https://discourse.ros.org/ This was just mentioned in the Home Brew Robotics ROS meeting...

discourse.ros.org
Juan Eduardo Riva
2021-06-09 09:15:06

*Thread Reply:* Hi Jeff, broken links..

JeffS
2021-06-09 13:06:47

*Thread Reply:* Which links are broken? I can get to https://discourse.ros.org/ I can execute curl -s <https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc> | sudo apt-key add -

Juan Eduardo Riva
2021-06-09 13:13:30

*Thread Reply:* ahhhh ok

JeffS
2021-06-09 13:18:27

*Thread Reply:* FYI: I didn't actually read it. Somebody said it fixed their problem. When I just skimmed through it now, it sounds like they may have it fixed anyway.

Bob Hassett
2021-06-09 14:02:00

Finished the 4 teensy tutorials using 3.2 board. In tutorial 4 https://www.pjrc.com/teensy/tutorial4.html they used a simple 10k pot.

So now I want to experiment with maybe 2 joy sticks like these https://www.adafruit.com/product/3102?gclid=Cj0KCQjwzYGGBhCTARIsAHdMTQyrLOql8cxIEMF175jRD8JHfWouM4K57wC9q97ZjztEN5-bEvc124aAoZkEALwwcBf

JoyStick #1 would control forward/reverse ...up/down on the stick And control steering left/right on the stick

Anyone using these? Any recommendations for a different product?

I’ll go from analog to pwm into my cytron motor controller. I’ll have to figure out how change the directional on the motor controller.

adafruit.com
PRICE
$19.95 USD
STOCK
33 IN STOCK
JeffS
2021-06-09 14:43:22

Those joysticks are almost identical to the ones I used.

Al points out that you may want to disable the spring-return-to-center (for one or both axis). Some joysticks have a small lever that enables or disables the spring. Or, on the lager ones, you can probably use small needle nose pliers to pop the spring off and that disables it. (Or maybe not...) But don't create a situation where you may leave a dangerous situation if you take your hand off the joystick. I.E., you probably want forward speed to always return to zero if you take your hand off. The steering axis can be your preference.

If you are just experimenting, you can get cheaper/smaller joysticks. https://www.adafruit.com/product/512 https://www.adafruit.com/product/245 https://www.amazon.com/s?k=thumb+joystick+arduino&ref=nb_sb_noss_1 https://www.mpja.com/Mini-X-Y-Joystick-10K-with-Mushroom-Knob/productinfo/34792+MI/ https://www.ebay.com/sch/i.html?_from=R40&_trksid=p2380057.m570.l1313&_nkw=joystick+arduino&_sacat=0 If you get a small one, you want one soldered to board. It will be be easier to mount and easier to connect.

Another option is a 3 axis joystick: https://www.mpja.com/X-Y-Z-Axis-Motion-Control-Joystick-10K-Resistance/productinfo/34791+MI/ But to me those look like they would be hard to use.

JeffS
2021-06-09 14:54:31

And of course the other approach is to use a USB joystick through your ROS computer. You can get hardwired joystick/gamepad or get a wireless gamepad to connect to your ROS computer. Al switched over to a wireless gamepad directly into his ROS computer on his lawntractor.

That has the advantage that you are running through the same path that the autonomous path will be using. The disadvantage is that you have to have the ROS computer booted up and running ROS to get this to work.

The main advantage to connecting a joystick directly to your Teensy is that you can drive you vehicle directly with ROS not running or even without a ROS computer connected. My remote control bypasses ROS completely so I can turn on the main power switch on the robot and then turn on the remote and start driving. I find that very handy. But I have less incentive to get my ROS based control working... 🙂

In the long run, it would be handy to have both types of joystick available. So that is something to think about in the future.

Bob Hassett
2021-06-09 15:05:53

For now I want to bypass ROS. I decided against the Bluetooth controllers because eventually I want to use RF with the joysticks. I like the alternatives you suggested for the small size. I just don’t know how long they would last with repeated use out side.

JeffS
2021-06-09 15:16:39

Another thing to consider with any joystick control...

Have a way to qualify the control. Have a physical switch to switch between manual control or automatic control. (Which doesn't solve the real problem.)

The real problem is that you may accidentally bump a joystick and your machine will move unexpectedly.

So you can add a "dead man" function. Typically an extra puch button on your remote control device. You must hold down the pushbutton for the joysticks to be honored. If you are not purposely pressing the dead man button the the machine can't move unexpectedly.

Or another approach is to put a gaurd around your joysticks. (or recess them down into your box so you have to reach inside with your thumbs to push the joysticks. Which is what I did because I was copying someone else's product.)

Or combine two or three of these methods...

Here Kyler demontrates what happens if you bump a joystck and you did not implement a dead man button: https://youtu.be/TatrSXJiq0I?t=390 You can watch that video from the beginning to see if first attempt at a remote control.

YouTube
} Kyler Laird (https://www.youtube.com/c/KylerLaird)
Javier
2021-06-09 17:26:29

https://link.medium.com/paJfJnSwXgb

Medium
Reading time
7 min read
👍 Al Jones
Javier
2021-06-09 17:29:58

If you want to use ROS with ps3 joystick I wrote an article about how connect to ROS with a raspberry pi 4. I have an image of the sd card with ubuntu and the ROS packages installed and ready to use to share.

Bob Hassett
2021-06-09 17:50:44

Thanks Jeff and Javier for the suggestions ! I will remember them.

Javier
2021-06-09 18:03:40

https://agrirobotics.wordpress.com/

Agricultural Robotics
} fkuelbel (https://agrirobotics.wordpress.com/author/fkuelbel/)
👍 Juan Eduardo Riva
JeffS
2021-06-10 14:52:17

I hate to impose my bias here. But if you were just bitten by Microsoft's latest update non-sense (Microsoft News Feed), here is a way to fix it... https://www.youtube.com/watch?v=_CpCkFa5Gi0

YouTube
} hirudov (https://www.youtube.com/c/Hirudov)
JeffS
2021-06-11 01:25:13

My power is fluctuating. So I may not make the meeting tomorrow (later today). Either because my alarm clock may not go off or simply becuase I may not have power. We'll see...

Juan Eduardo Riva
2021-06-11 11:20:23

Hello, I stopped by the meeting and I see that it was complicated for everyone .. I leave you my update of the week ..

  1. After a lot of turning I realized that the USB of my rpi burned or something like that. I didn't feed my teensy and it drove me crazy. So new rpi. I understand that I can possibly rescue her by pulling a fuse.
  2. We end up with something similar to the system control script from arduino. It is still missing but let's say this could be a very bad first version, I went back to work with my "apprentice" after like four weeks.
  3. I've been thinking a lot about Jeff's comments on how the ROS systems, Al's and mine are structured. He is right in several respects but mainly that it is a mistake to go around calling things from base stations. I'm going to see how much I can go from my base to the robot and simplify ..
  4. I've been looking at my main.cpp and seeing how I can comment on it better
JeffS
2021-06-11 11:23:40

Al said he is going to be late. So Bob and I are waiting for the meeting to start.

JeffS
2021-06-11 11:53:55

I'm done waiting. I'll see people next week.

Bob Hassett
2021-06-11 11:55:43

I got stuff to do outside before the humidity gets bad. C u next week.

Al Jones
2021-06-12 10:17:01

So trying to figure out my steering more than just sending -1 to 1 in cmd_vel.

Al Jones
2021-06-12 10:30:22

*Thread Reply:* I have two sensors to detect the steering angle. One is analog and one is a magnetic sensor. Readings for full left, straight and full right are

Al Jones
2021-06-12 11:21:33

*Thread Reply:* So if I use a protractor on the angles it looks like

Al Jones
2021-06-12 11:40:08

*Thread Reply:* @vinny ruia or @Javier or anyone that wants to comment about movebaseflex.... When movebaseflex sends cmdvel twist message, what basic instruction is it asking the low level steering controller to execute? At the moment, a cmdvel angular z of -1 would equate to a right turn at 156 degrees and cmd_vel angular z = +1 would equate to a  left turn at 162 degrees on my tractor

Al Jones
2021-06-12 12:46:33

*Thread Reply:* I guess I should add, it appears the lawntractor package is expecting movebase/cmdvel to send values between -0.3 and 0.3 and then remaps those values to -1 and 1, but the basic question is still the same, when movebase/cmdvel sends values between -0.3 and 0.3, what physical behavior is it expecting the low level steering controller to deliver? (e.g. If movebase/cmd_vel sends -0.3 is that an expectation the physical steering controller turn right 0.3 radians/second?)

GitHub
👍 vinny ruia
JeffS
2021-06-12 12:53:22

*Thread Reply:* It seems a little fishy to me that you have 156+162=318 degrees of steering. From you protractor photos, may you have 30 degrees one direction and 25 degrees the other direction. But I don't know what that is you are measuring there.

By definition, ROS planners output rotational velocity for steering.

But... if you are using the TEB local planner, and you set the parameter to use steering angle instead of rotation velocity, then it will be an angle.

Al Jones
2021-06-12 13:12:12

*Thread Reply:* Technically I've used the wrong language. Ai would be 162-90 or 72.

JeffS
2021-06-12 13:20:39

*Thread Reply:* You may want to be skeptical about the existing code. To me it looks like a hack. Probably to get the Stage simulator to work.

The code in the in the command velocity mux you are using is articially limiting the output of the TEB planner to +/-0.3. SInce you told the TEB planner to out an angle instead of rotational velocity then the value is interpretted as an angle of +/-0.3 radians. One radian * 0.3 (573. degrees * 0.3 = 17.19 degrees) So right off you are artifically limiting the output of the TEB planner to +/-17 degrees. That seems like an awfully small angle to me. It should work if you are only attempting to drive straight lines.

Then the code blatantly multiplies that by 3 (the 0.3 to 1.0 translation). So the value that was clipped at +/-17 degrees is scaled to your full value. Seems to me that will cause massive oversteer.

But the bottom line is. You have to know if you want your controller wants to see an angle or it wants to see rotational velocity. (Hint: you told it to expect an dangle because the Teb planner was told to output angles.

So, by definition, you want your low level controller to expect and input as an angle (in radians) and scale that to your actual steering angle.

Currently you code is scaling an input of +/-1.0 to -14003 to 13683. (Or maybe you are doing +/-1.0 to 1013 to 17.) Instead scale the actual measured angle to your sensor value. Let's assume you have a more realistic value like +/-30 degrees (0.5236 radians). So scale +/-0.5236 to -14000 to 13683. [Regardless of what your your panner is putting out or what your joystick is putting out. Because by definition, the input value is a an agnle that should match your physical steering.]

If you get that working, then the TEB planner is happy, it just outputs angles and expects your vehicle to listen and do it. You may have to recscale the joystick, either hack the joystick node, which was probably hacked already to get +/-1.0 (which is probably based on teleop_joystick) [It may have input parameters to do scaling for you.]

Or hack the command velocity mux to scale it. Or create a node that goes between the joystick node and the command velocity mux node.

Now I will stop and look at what you just posted...

JeffS
2021-06-12 13:27:03

*Thread Reply:* Al said "Ai would be 162-90 or 72." Can you define that a little harder. Do you mean steering of 0 is 0? And fulll left is -90? And full right is 72?

Al Jones
2021-06-12 14:12:19

*Thread Reply:* My protractor measurement of 162 for a full left turn is an obtuse angle best represented in this diagram as Ai +90 degrees

Al Jones
2021-06-12 14:13:20

*Thread Reply:* I never tried to calculate an Ackerman steering angle.

JeffS
2021-06-12 14:27:08

*Thread Reply:* Another issue is that Ackermann is not linear. Sometimes in descriptions people will talk about "an imaginary center wheel". That center wheel is the actual angle you request. But both the left wheel and right wheel will be different angles. The inside wheel turns sharper and the outside wheel will be less that the center wheel. I am sure there is a transfer function for that, but I don't what it is. Maybe I will go look for it.

JeffS
2021-06-12 14:34:07

*Thread Reply:* I think somebody is still confused on your measured angles (maybe me). I am assuming you have a bars on the ground. One reresents the centered line and the other is parallel to your tire. (I.e., the two lines defining Ai above.) Looking at your protractor for the left side the protractor says either 30 degrees or 152 degrees. (And 180-152=28) What does 90 have to do with it?

Al Jones
2021-06-12 14:40:05

*Thread Reply:* @vinny ruia I have two questions.

  1. Should I add to my low level steering controller reading the current speed of the tractor in order to be able to calculate the angle to achieve the correct radians per second expectation from move_base? I think Jeff is pointing out we need to steer to a radians/second target. At the moment, speed is not an input to my lowest level steering controller.
  2. There is what I will call a clamp in cmdvelmux.py to limit cmdangle.z +/- 0.3. Do you know why? My tractor has a turning radius of ~2.15m. At 1.5 m/s I think that gets me to 0.7 rad/s. I'm going to assume since I set minturningradius in the yaml file that movebase will call for steering up to that point.
Javier
2021-06-13 06:33:24

*Thread Reply:* HI Al, in my case I calculated in the controller the turning radio of the wheels. If the move_base package sent an angular velocity of 0.3 means 0.3 radians per second and depend of the geometry of your robot you need to calculated the ICC to respond to the requirements of the move base.

Javier
2021-06-13 06:33:28

*Thread Reply:*

JeffS
2021-06-12 16:18:40

What is the quickest way to read data from a USB/serial port and publish as a ROS topic?

I want to plug in a Sparkfun Razor IMU (probably with the Sparkfun code). Set it to put out (at least) the raw (degrees/sec) values from the gyroscopes. Then I want something quick and dirty to read the strings of data and publish them as a ROS topic so I can record them in a bagfile.

Yes, I could setup a full ROS driver for an IMU. It does publish rotational rates in the IMU message. But I don't know if those are raw unadulterated values, or if somebody played with those (in their infinite wisdom). And my experience is that it would take days to get REAL values from any IMU.

Juan Eduardo Riva
2021-06-13 04:23:31

*Thread Reply:* Jeff, good morning.. Nice sensor.. Did you see this video..? https://www.youtube.com/watch?v=we5FBjllVn0 and this driver.. https://github.com/mitll-ros-pkg/razor_imu_m0_driver

YouTube
} JetsonHacks (https://www.youtube.com/c/JetsonHacks)
GitHub
JeffS
2021-06-13 14:58:49

*Thread Reply:* Well, yes and no. The video is for an old board, with old software, that may or may not work adequately.

Back story... Sparkfun made an IMU board with a random processor and random IMU components. Then over the years the repeatedly changed the design and continued to keep the name "Sparkfun Razor MU". So you will find code which they have hacked on for years to account for the change of processors and change of IMU components. And of the hundreds of firmware and ROS packages that are available, I haven't found one yet that I have been able to get good results.

Although, that second link you posted looks promising (when I want to spend a week or two playing and experimenting to verify it works). I'll look at that one when I get back to IMUs.

But at this point I just want a rotational reference that has been factory calibrated. So I just want the raw yaw rotational rate from a 3-axis gyroscope and hopefully I can trust that. I don't want full IMU results or AHRS results. Because then I would have to figure out what they have done to mask the actual results that I am looking for...

Juan Eduardo Riva
2021-06-13 16:34:33

*Thread Reply:* Ok

JeffS
2021-06-12 21:05:30

I didn't find a quick/easy way to publish a serial stream. So I hacked one together. It creates a topic like this:

```data: "11126903, -0.85, 0.37, 0.00"

data: "11127003, 0.61, -0.12, 0.43"

data: "11127103, -3.17, -0.37, -0.55"

data: "11127203, -0.61, 0.37, 1.40"

data: "11127304, 0.79, 1.10, 4.57"

data: "11127403, -8.72, 0.37, 20.06"

data: "11127503, -2.99, -4.76, 32.07"

data: "11127603, 14.45, -2.62, 39.57"```

JeffS
2021-06-13 22:51:02

I assume most people aren't subscribed to Home Brew Robotics Group and probably won't be. So here is a quick update on Camp Peavy's plastic car robot: https://groups.google.com/g/hbrobotics/c/jiGSzRuWG-U/m/9TOaWjmBAwAJ https://photos.app.goo.gl/Qh9i4nj63wHx3d1R8 https://youtu.be/NhnkrQyU0Us https://photos.app.goo.gl/rze1biRVWu3W39vQA https://youtu.be/AdPY_YmWC3k https://photos.app.goo.gl/FNE3WCXTYx44phgr8 https://youtu.be/xhwEK7FCC-8 This leaves out a lot of the commetary, but if you want more info you can go track it down. I probably won't post any more updates on this.

JeffS
2021-06-13 23:10:22

The weather is supposed to cool off in the future. So I was planning to configure my robot today so I can take it outside and do some steering angle verification. But my Internet provider decided to make my life a living hell the last couple days, so I haven't gotten anything done. But I need to configure the wheel odometry, the dual GPS and the gyroscope rotational velocity so I can verify if I know what I am doing with steering angle...

But instead I have been fighting with the decision of DSL, cable, wireless, cell modem in the brief times I have Internet connection... I was was wondering if I can run my whole house Internet on a cell phone modem... So I haven't gotten anything done.

👍 Juan Eduardo Riva
Bob Hassett
2021-06-18 09:52:25

Can’t make it today. Got grandparent duty this weekend.

JeffS
2021-06-18 22:38:40

I tried to get uBlox ucenter to run under Wine on Linux. It wasn't obvious how to translate the COM port names to make it work.

I reverted back to ucenter under an actual Windows laptop. I was able to load both configuration files. (one for the main RTK receiver and the one for the "moving base line" "rover" receiver on the robot. So the main receiver generates the precision Lat/Lon position and the second receiver gives me a static heading (if I am moving or not). I need to get it put back on the robot to verify it works there.

I need to take it outside and verify I can get GPS data, IMU data and wheel odometry data and log the data. Then I need to verify I can get "recovered" "rotational velocity" from IMU, wheel odometry and from GPS. If I can get all three sensor to agree, then I have a way to verify the actual path/rotation of the vehicle. Then I can attempt to give it a steering command (either steering angle or rotational velocity) and verify I can get the input to match the recovered output.

Maybe I can try that tomorrow...

JeffS
2021-06-18 22:40:09

But due to my laziness, I may not do anything tomorrow...

JeffS
2021-06-19 18:48:01

So I got things configured and I went outside to make a sample bag file. I wanted to know where it puts trhe bag files, is the data useable and what other problems I will have to fix.

I found out a cable was in the way and I couldn't easily wedge my laptop into place. With my GPS receivers inside of a box I have no idea what the status is. But I drove around anyway. So now I have a bag file.

For some reason rqt_plot will not work on my kinetic laptop. Plotjuggler will not load on my kinetic laptop.

I copied my bagfile over to the noetic laptop. I loaded Plotjuggler. I can't figure out how to do an X/Y plot. It just doesn't seem to work.

My topics that are just a string of numbers are not recognized. So I have to decide how to fix that.

So now I have several things to look at and try to fix...

JeffS
2021-06-19 20:26:24

So out of desperation,,, I shutdown my Ubuntu 20.04/Noetic laptop and restarted it. Now I can do X/Y plots...

After starting Plot Juggler multiple times, I have gotten 3 different initial screens. Now it has settled down now. I am able to plot the topics that have individual fields. Here is in an X/Y plot of odometry and GPS. The odometry is rotated since I didn't think to align my vehicle before I started ROS. The only thing I could get rotation velocity was odomentry. Looks like I am getting 0.8 radians/second when driving in the tight circle. I need to work on the other two sensors to present rotational velocity. (Or I can hack on the strings to separate them...) 3 files

JeffS
2021-06-20 12:50:07

I looked at my numbers some more. Rotational velocity from RTK GPS (I took the change of heading per sample, scaled to degrees/sec, divided by the update rate and conveted to radion/sec.) It says approximately 0.35 rad/sec (full left or full right) I plotted rotational velocity from my wheel odometry message and it is approximately 0.8 rad/sec. One, or both, are wrong. I then plotted the heading from GPS and Odometry (the blue curves). They should look the same but they don't. The one from GPS is probably correct. The one from odometry is obviously wrong. (But I looked at an old plot of heading from odometry and it looks right.) Maybe it is in my interface node where I take values from the microcontroller and build/publish and odometry topic.

I didn't plot the rotational velocity from my IMU. It appeared to die shortly after I started the bag file. I think the cable was pulled loose.

JeffS
2021-06-20 12:55:17

Looking at the path from odometry I can measure the circle created as I drive in a circle. This is the path that base_link is moving. It is approximately 2.0 meters diameter driving in either direction. I can measure the GPS, but it is in Lat/Lon and I haven't converted it to meters.

JeffS
2021-06-20 19:21:58

I think I solved the mystery of the odometry heading value not looking like the GPS heading value (in the plot above). It looks like my ROS node which takes raw data from the microcontroller and builds the odometry message is wrong. I am simply pulling input fields and plugging them into output fileds. I probably picked a value for the quaternion and plugged into an inappropriate field in the new odometery message. So I can probably fix that.

I still haven't figured out why odometry say a rotational velocity of 0.8 and GPS says 0.35. Maybe if I run again with the IMU I can see it matched either one. If so I will know which one is wrong. It it doesn't match either of them then I am totally baffled for the moment. But it raining now so I may try the IMU tomorrow.

Javier
2021-06-21 00:24:47

*Thread Reply:* Good work Jeff!!

Javier
2021-06-21 00:36:01

*Thread Reply:* Perhaps the difference between the gps and odometry from wheels are related to the calculation to translate the ticks from the encoders to odom.

JeffS
2021-06-21 01:01:20

*Thread Reply:* Hey, that is a good point. I can plot odometry linear speed against the GPS linear speed. I'll go try that.

JeffS
2021-06-20 19:24:14

Oh, I forgot to send that about two hours ago. I ran my IMU it looks fairly clean it thinks my rotation velocity is about 60 degrees/second. The GPS currently thinks that was about 20 degrees/second. I'm tired of playing with it today...

JeffS
2021-06-21 01:26:32

So here is the speed check between GPS and wheel odometry. The ground speed from navpvt is mm/s. The linear x in odometry is m/s. So they both look approximately the same speed.

JeffS
2021-06-21 02:42:17

Maybe things aren't off as far as I thought. The odometry is indicating about 1 radian/sec. The IMU indicates about 60 degrees/sec.

60 degrees/sec is approximately 1 radian/sec. So maybe they are close.

But... the GPS is still telling me 20 degrees/sec. So I have to figure out the GPS scaling.

JeffS
2021-06-22 14:33:57

I modified my gyro ROS logging to output a single Float32 instead of 3 values in a string. So I can now plot that directly in Plot Juggler. I also scaled it by converting from degrees/sec to radians/sec and multiplied by -1 to flip it. My first run today was baffling. I drove in a circle one direction and then drove the other direction. And the second circle was at a much faster forward speed. Only the first circle looked right. When I plotted the rortational velocity and forward speed, I see the bad circle had a forward speed of around 2 m/s. That is way too fast. And apparently the tires were slipping on my dry grass.

JeffS
2021-06-22 14:42:17

Then I drove around again at a more controlled speed. And this time I drove in several size different diameter circles. These plots look much better. The odometry path looks close to the GPS path. But one is rotated and maybe flipped. The GPS has at least one jump... The rotational velocity from the odometry matches the rotational velocity from the gyroscope. It tracks well enough to give me confidence that I did it right. And it also tells me that I should not go above 1 m/s forward speed...

Now I have to figure out how to convert the GPS lat/lon to offset in meters in real time. Then I can plot those two on top of each other in Plot Juggler.

JeffS
2021-06-22 14:47:54

At one time we discussed how you know if your tires are slipping. The fact that my two rotational velocities don't match above indicates that something something is wrong. You could have a separate node to watch for these things. Then you have to think what to do about it once you detect it.

Javier
2021-06-22 14:57:39

Amazing work Jeff!!

Bob Hassett
2021-06-22 15:13:17

Nice job!

Al Jones
2021-06-22 15:45:12

Really great

Juan Eduardo Riva
2021-06-22 16:48:21

Wohhhh

JeffS
2021-06-23 14:42:17

I'm getting closer at converting my GPS heading to rotational velocity. My biggest problem was I was dividing by 10000 instead of 100000. I take the heading output and find the delta from current sample to last sample: Delta=Heading(T1)-Heading(T0) Then divide by large number to scale to actual degrees: Degrees=Delta/100000 Then convert degrees to radians by dividing by 180/PI: Radians=Degrees/(180/PI) Then account for time units by dividing by 5 samples/second. But that is off by a factor of 2. So I divided by 10 instead. Then threw in a * -1 to flip it to match the gyroscope put. Rotational Velocity=Radians/10*-1

So I still have a "off by 2 times error". I don't know why. Maybe the GPS is not sampling at 5 Hz, like I thought I was. Maybe the GPS has multiple sample rates internally? So I have to track that down.

Javier
2021-06-24 05:59:48

*Thread Reply:* Hi Jeff, can you record a bag file with all the topics? The command is rosbag record -a. Then you can use rqt_bag to upload the recorded file and see the topics at the same time. It's a good way to see if there are a problem with the sampling. If you share the bag i can check it

Javier
2021-06-24 06:03:36

*Thread Reply:* Great work Jeff!

Javier
2021-06-24 06:31:52

*Thread Reply:* When you obtain the heading from the GPS, the Delta is represented by two measurements (T0, T1), perhaps the problem come from there . I'm not sure...

JeffS
2021-06-24 12:44:42

*Thread Reply:* I am recording all topics to a bagfile. I can plot the topics directly from the bagfile with Plot Juggler (the screen shot above on the left). I can also use either of two different programs to break the bagfile up into individual CSV files. Then I can load CSV files into Open Office Calc (or Excel) and do calculations and plots. (the screen shot above on the right)

I can't figure out how to get Plot Juggler to plot bagfile values AND additional CSV data at the same time. (That may cause an issue of sample rate of the CSV vs. bagfile topics.)

Apparently I can do extra calculations in Plot Juggler. But I haven't tried to understand that yet. It looks like it uses LUA.

Another problem is that I have to use two computers to make this work. I record the original bag file on the robot computer. That computer will run the bagfiletocsv programs. But I can only get Plot Juggler to run on the other computer. So I am always copying files back and forth. It gets tedious...

After doing about 6 steps to convert heading to rotational velocity, it could be any step. I'm just missing a scale factor of 2:1 somewhere. If I just ignore the fact that I don't understand, it is giving me the correct data. Eventually it may become obvious.

Bob Hassett
2021-06-24 20:25:34

I’m having trouble centering my joystick to zero. I’ve fiddled with rotating the pot And my numbers in software. Any ideas?

Bob Hassett
2021-06-24 20:25:34
Bob Hassett
2021-06-24 20:27:15

I’m just focusing on the forward/reverse. Btw the pots are 10k.

JeffS
2021-06-24 23:01:07

Could you be a little more specific about what expect out of your joystick or what you are expecting it do.

Bob Hassett
2021-06-25 06:48:26

*Thread Reply:* The joystick controls 2 motors. I’m focused on the forward/reverse motor pot. When the stick is relaxed sitting in the neutral position I’d like no movement on a motor. Using a vom I set the wiper at about the midpoint of the pot. I’ll copy then paste the code. I’m using write statements and delays (5000) for troubleshooting.

🙌 Juan Eduardo Riva
JeffS
2021-06-24 23:08:13

After a couple of days of fighting with Python I have a ROS node that subscribes to the uBlox F9P /gps1/navrelposned message and converts the static heading into a rotational velocity as it runs. I plotted the gpsrotvel with gyrorotvel and they appear to track each other. I would have plotted the wheel odometry rotational velocity, but my robot failed to log any data for it when I drove it around. I have to do some playing around to eliminate those spikes. They are caused by the rollover between 0 and 360 degrees.

Javier
2021-06-25 16:26:34

*Thread Reply:* Excellent result Jeff. So your rotational velocity from the gps heading match with the measurements of your gyrocope.

Javier
2021-06-25 16:32:15

*Thread Reply:* did you test the navigation stack?, for example: if you graph the angular and linear velocity from ROS in the topic cmd_vel, and then graph the angular and linear velocity from the gps, comparing the two graph it's a way to test the response of the robot to the requirements of the navigation stack

Javier
2021-06-25 16:34:44

*Thread Reply:* i'm do that to test the response of my robot

Javier
2021-06-25 16:39:49

*Thread Reply:* if you put the two graphs at the same axis (time) you will see a delay between the sent w and v, and the final w and v of the robot. If these delay are too high, the navigation stack could not work propely

Javier
2021-06-25 16:50:13

*Thread Reply:* this delay can be reduced with acclimx: acclimtheta: from the teblocalplanner_params.yaml

Javier
2021-06-25 16:51:31

*Thread Reply:* and depends of the configuration of your low level controller too

Javier
2021-06-25 16:52:28

*Thread Reply:* the PID parameters

JeffS
2021-06-25 17:38:59

*Thread Reply:* I haven't compared it to any inputs yet. I have been driving this with the joystick. One of the next experiments may be to load the cmd_vel to angle converter: https://github.com/rst-tu-dortmund/teb_local_planner/blob/0d242c0aff4f81b4ff5d67d7e4f970a8f454ad4a/scripts/cmd_vel_to_ackermann_drive.py Then I can specify an input rotational velocity and scale the angle out so my vehicle turns at the same rate.

Javier
2021-06-25 21:43:42

*Thread Reply:* Ok!

Bob Hassett
2021-06-25 06:56:20

[code] /*Example code for * testing the Cytron Technologies 10A Rev 2.0 Motor Driver *The code uses only two pins, one for the motor direction (Pin 9) * and one for the motor speed (pin 9). The speed is set using PWM. * This code also uses a potentiometer connected to pin A0 in order to control speed and direction * This code is meant to be run on the Arduino Uno hardware. **/

//Pins used to control direction and speed of the motor. Speed pin should be a pwm pin.

define FRMotorDirection 9

define FRMotorSpeed 10

define FRPotPin A0

define LRMotorDirection 11

define LRMotorSpeed 12

define LRPotPin A1

int FRSpeedVal = 0; int LRSpeedVal = 0;

void setup() { //Declaration for the pins used, both should be outputs. pinMode(FRMotorDirection, OUTPUT); pinMode(FRMotorSpeed, OUTPUT); pinMode(LRMotorDirection, OUTPUT); pinMode(LRMotorSpeed, OUTPUT);

Serial.begin(9600); }

void loop(){

FRSpeedVal = analogRead(FRPotPin); //Reads the position of the Move Forward or Reverse potentiometer LRSpeedVal = analogRead(LRPotPin); //Reads the position of the Steer Left or Right potentiometer

//Makes the forward reverse motor rotate in the clockwise direction.

// Go forward

if(FRSpeedVal > 550){ digitalWrite(FRMotorDirection, LOW); FRSpeedVal = map(FRSpeedVal, 550, 1024, 0, 255); analogWrite(FRMotorSpeed,FRSpeedVal); Serial.print("Moving Forward -- Motor speed = "); Serial.println(FRSpeedVal); delay (5000); }

// // Makes the forward reverse motor rotate in the counter clockwise direction.

// Go in Reverse

else if(FRSpeedVal < 499){ digitalWrite(FRMotorDirection, HIGH); FRSpeedVal = map(FRSpeedVal, 498, 0, 0, 255); analogWrite(FRMotorSpeed,FRSpeedVal); Serial.print("Moving in Reverse -- Motor Speed = "); Serial.println(FRSpeedVal); delay(5000); }

// Makes the Left Right Steering motor rotate in clockwise direction.

if(LRSpeedVal > 500){ digitalWrite(LRMotorDirection, LOW); LRSpeedVal = map(LRSpeedVal, 501, 1024, 0, 255); analogWrite(LRMotorSpeed,LRSpeedVal); Serial.print("Steering Left -- Motor speed = "); Serial.println(LRSpeedVal); delay (5000); } // Makes the left right steering motor rotate in the counter clockwise direction.

else if(LRSpeedVal &lt; 500){
  digitalWrite(LRMotorDirection, HIGH);
  LRSpeedVal = map(LRSpeedVal, 498, 0, 0, 255);
  analogWrite(LRMotorSpeed,LRSpeedVal);
  Serial.print("Steering Right-- Motor speed = ");
  Serial.println(LRSpeedVal);

delay (5000);}}
Bob Hassett
2021-06-25 07:07:02

BTW here are my software numbers, the left column is the setting in software. The right column is the write statement for “speed”. The signal that goes to the cytron motor controller.

Juan Eduardo Riva
2021-06-25 08:03:07

*Thread Reply:* You can try this one..

Bob Hassett
2021-06-25 08:19:10

*Thread Reply:* Thank you! I’ll try it tonight!

JeffS
2021-06-25 20:40:14

There is a wealth of information in stored rosbag files. I was getting ready to attempt to figure out the relationship between turning diameter/curvature/steer angle/rotational velocity... I know the diameter of the circle that baselink is tracking. (Because I can measure it on the plots.) But it occurred to me that the front of the vehicle traces out a different path than the baselink in the back. Do I know what that is? Oh, I have a GPS on the back AND a GPS on the front. Would that tell me anything? I plotted the back ground plot vs. the front ground plot. It does!!!! What is the distance between the back antenna and the front antenna? I could go get a tape measure and check... Or plot the moving baseline distance to see what it thinks.

The top plot is back GPS vs. front GPS. The bottom plot is the moving baseline distance between antennas. It thinks they are 75cm apart.

Al Jones
2021-06-26 06:25:49

Found this Adafruit IMU BNO085 IMU's in my IMU "one of these days I'm gonna get around to using it days" shelf; Any suggestions on the better connection approach (I2C or UART)? https://learn.adafruit.com/adafruit-9-dof-orientation-imu-fusion-breakout-bno085/arduino

Adafruit Learning System
Al Jones
2021-06-26 10:41:44

How do you get angular velocity? Simple....Not

JeffS
2021-06-26 14:35:19

*Thread Reply:* @Al Jones What does this have to do with anything? Just read read the rotational rate value out of the gyroscope and use it.

Javier
2021-06-26 10:56:30

Hi Al. I used I2C connection to an arduino

Javier
2021-06-26 10:59:56

Tonight i going to post the code to upload to the arduino and the ros node to obtain the heading

JeffS
2021-06-29 12:47:59

*Thread Reply:* @Javier I didn't see your post for the Arduino and ROS node. I have a BNO085 module (from eBay) wired to a Teensy 3.2. I would like to try your code since it is working for you.

Al Jones
2021-06-26 11:10:39

I used a JST connector to connect the IMU to an ESP32 and loaded the Adafruit library without any issue.

JeffS
2021-06-26 14:34:08

*Thread Reply:* @Al Jones If you are talking to your sensor with the Adafruit libraries, run the example named read_all_data and see what you get.

Javier
2021-06-28 06:17:58

*Thread Reply:* you can print Serial.println(orientationData.orientation.x) and get the heading

Javier
2021-06-28 06:18:23

*Thread Reply:* then with a basic node take the value of the heading to insert into odom

Javier
2021-06-28 06:19:46

*Thread Reply:* #!/usr/bin/env python

import roslib;

import rospy from std_msgs.msg import String import serial

ser = serial.Serial('/dev/ttyACM1', 115200)

def talker(): while not rospy.isshutdown(): data= ser.readline() decodedbytes = (data[0:len(data)-2].decode("utf-8")) rospy.loginfo(decodedbytes) pub.publish(String(decodedbytes)) rospy.sleep(0.1)

if name == 'main': try: pub = rospy.Publisher('heading', String) rospy.init_node('imu') talker() except rospy.ROSInterruptException: pass

👀 Juan Eduardo Riva
Javier
2021-06-28 06:20:58

*Thread Reply:* This is my basic heading node, i'm used a string message to sent the heading, pretty basic but works

🙌 Juan Eduardo Riva
Javier
2021-06-26 11:31:45

Good!

Javier
2021-06-26 11:32:19

The measurements are very stable.

JeffS
2021-06-29 12:43:34

My free cell modem account finally caught up to me. They said several months ago that my current account was being upgraded and I had to buy a new sim card. I ignored it and it continued working the same way at $0. I just got billed for $3.99. I looked at the account and my limit is raised from 200MB to 350MB, but it will cost me $3.99/month. And for the moment it is still working with the old sim card...

JeffS
2021-06-29 13:05:39

Is anyone else here using the uBlox F9P GPS receivers? I had problems with massive serial port log errors using the hacked ublox driver that I posted to ros-agriculture github. I switched over to the official driver http://wiki.ros.org/ublox The official one appears to work.

I was also digging through the documentation for other features. It looks like it "may" be capable of publishing an IMU message (I assume they convert internal data to look like an IMU). But it is not obvious if I need a different receiver model or if it generates data from the "moving baseline" mode. I will have to attempt to enable that and go outside and try it...

Javier
2021-06-29 20:49:53

*Thread Reply:* I jeff i used ardusimple that have a f9p gps and i used the official drivers too.

JeffS
2021-06-29 17:35:54

I played with the "publish IMU data" option, it looks like it is based on receiver type. So it currently doesn't work. Maybeif I dig through the source I can find a way to enable it...

Javier
2021-06-29 17:41:50

Hi, this is the node that publish the head using the bmo055 connected to an arduino uno board

Javier
2021-06-29 17:44:02

This is the arduino code to read the orientation

Javier
2021-06-29 17:45:18

in my case I connected the arduino board with the BMO055 (using i2c) to an Odroid board (similar to raspberry Pi 4) and works

Javier
2021-06-29 17:46:44

watch the serial port, in my case /dev/ttyACM1

JeffS
2021-06-29 18:31:47

I previously tried to compile Adafruit code for the BNO085. I can't figure out how to change the I2C pins. The example program I had said to wire to pins 4 and 5. The I2C on the Teensy 3.2 are on different pins. I assume the definition is buried deep down, bit I can't find it...

JeffS
2021-06-29 18:37:41

I had something running before. Maybe I went down this path: https://forums.adafruit.com/viewtopic.php?t=92153 I will look down this path...

JeffS
2021-06-29 18:58:05

Or maybe I was using this code: https://github.com/kriswiner/BNO055 This looks real familiar. I now have something to search for in my Arduino IDE to find my original attempt...

GitHub
Javier
2021-06-29 20:06:39

Look in the arduino code that i only send orientation.x

Javier
2021-06-29 20:08:06

This is the value that i read with the heading node to transform into a ros topic

Javier
2021-06-29 20:15:50

So basically from the arduino+BMO055 i obtained the orientation.x and with the head_read.py i transform this value onto ros topic using string message type

Javier
2021-06-29 20:16:05

Basic but works...

Al Jones
2021-06-30 06:11:49

I found this code the author refers to as "rock bottom" to extract data from the Adafruit BNO085. The code is small enough to run on a small Nano. At the moment it is reading the rotation vector "report" (page 64 of the reference manual). I'm thinking I need to pull Linear Acceleration (0x04).

JeffS
2021-06-30 11:11:33

Ah Hah!!! He says. I did lots of searching on how to change I2C pins when using Arduino code on Teensy boards. Turns out... The I2C interface definition is fixed for the board type. If you just use the correct pins then it works. I had it wired to pins 16,17 for previous software (probably the i2ct3 that is specifically for Teensy). I moved the wires to 18,19 and now it works! So I can now run any random Arduino code that is for the BNO085. Running readall_data I get this: ```Orient: x= 330.06 | y= 7.38 | z= 2.38 Rot: x= -0.13 | y= -0.06 | z= -0.06 Linear: x= -0.03 | y= 0.02 | z= -0.04 Mag: x= -5.88 | y= 40.00 | z= -43.00 Accl: x= 1.22 | y= -0.38 | z= 9.66 Accl: x= 1.26 | y= -0.40 | z= 9.71

temperature: 30

Calibration: Sys=0 Gyro=3 Accel=1 Mag=0```

JeffS
2021-06-30 12:17:51

This is worth looking at... This section of code that Al just posted says you can disable background calibration. Up to this point everybody has said you can't disable it, which may randomly bite you. Or maybe I am thinking of something else... ```//********************************************************************************************** /* This code disables the calibration running in the background of the accelerometer gyro and magnetometer.
*
sensors can be set individually on and off (chapter 6.4.7.1) * P0 = accelerometer, P1 = gyro; P2 =magnetometer; P4 = planar accelerometer (without Z axis) * 0 = disable; 1 = enable **/

void MEcal(uint8t P0, uint8t P1, uint8t P2, uint8t P4){ uint8t mecal[15] = {0,2,0,0xF2,0,0x07,P0,P1,P2,0,P4,0,0,0,0};
I2c.write(BNO
ADDRESS, sizeof(mecal)+1, mecal, sizeof(me_cal)); }

//**********************************************************************************************```

Bob Hassett
2021-07-01 11:56:18

Out of town for 2weeks. Very poor internet access. I’ll have to wait for the recording :-(

JeffS
2021-07-02 14:28:47

I figured out how to scale a plot in Plot Juggler. You right-click on the plot and select "Apply Filter". One of the options is "Scale/Offset". My static heading has a range of 0-36000000 and if I multiply it by 0.00001 I get the 0-360 that the new IMU puts out.

This is a plot of the static heading vs. the BNO055 module (it is not a BNO085 module, which I claimed before). I didn't do any extra calibration and the IMU probably needs rotated slightly so they both line up initially. (Or I could just add a rotation offset to correct for it.) But in general they track very closely.

You can see a further explanation when the Zoom video from today gets posted.

JeffS
2021-07-02 16:13:40

It just occured to me that I can add an offset in Plot Juggler (instead of re-running everything). After it stopped the red line (BNO055 IMU) says 2.000 degress. The blue line (uBlox moving baseline) says 8.554 degrees. So I told Plot juggler to add an offest to the red line of 6.554 degrees. Now the plots are generally on top of each other. Of course it would be better to go back and mechanically align everything...

👍 Javier
JeffS
2021-07-02 17:18:00

I see Al has today's video uploaded already if anyone wants more background on what I have been doing. https://drive.google.com/drive/folders/1H_Jyx46SWu0-FB8WD-7FELhuQ3a3OBSh

JeffS
2021-07-02 23:54:00

This can be of use for debugging an Arduino connected to ROS. It inputs a string from the Arduino (that is a list of comma separated numbers) and breaks it into fields. One example selects a single field and publishes it as a float32. The other example publishes all the fields as an array of float32. This array can be opened and plotted with Plot Juggler. ```#!/usr/bin/env python

bno055_node.py

You can create the Float32List message by following this: http://wiki.ros.org/ROS/Tutorials/CreatingMsgAndSrv

The message file "under jeff/msg" is named Float32List.msg

It contains a single line:

float32[] data

import serial import rospy from std_msgs.msg import Float32 from jeff.msg import Float32List

def talker(): # ser = serial.Serial('/dev/ttyACM0') ser = serial.Serial('/dev/ttyBNO055') # Port was renamed with udev rules ser.flushInput() pub = rospy.Publisher('bno055heading', Float32, queuesize=1) pubList = rospy.Publisher('bno055array', Float32List, queuesize=1)

rospy.init_node('bno055_node', anonymous=True)
while not rospy.is_shutdown():
    ser_bytes = ser.readline() # Wait for a line to be received
    # rospy.loginfo(len(ser_bytes))
    # rospy.loginfo(ser_bytes)
    ser_bytes = ser_bytes.strip() # Get rid of extra characters
    parts = ser_bytes.split(",") # Split the string into a list using comma separator

    # publish a single field from the list as a float32
    heading = float(parts[0])
    pub.publish(heading)

    # Now publish entire list as float32 array
a = Float32List()
    a.data = [float(i) for i in parts]
    pubList.publish(a)

if name == 'main': try: talker() except rospy.ROSInterruptException: pass

References

https://makersportal.com/blog/2018/2/25/python-datalogger-reading-the-serial-output-from-arduino-to-analyze-data-using-pyserial

http://wiki.ros.org/ROS/Tutorials/CreatingMsgAndSrv

http://wiki.ros.org/ROS/Tutorials/WritingPublisherSubscriber%28python%29

http://wiki.ros.org/ROS/Tutorials/CustomMessagePublisherSubscriber%28python%29

https://stackoverflow.com/questions/31369934/ros-publishing-array-from-python-node

https://stackoverflow.com/questions/1614236/in-python-how-do-i-convert-all-of-the-items-in-a-list-to-floats```

JeffS
2021-07-03 10:30:41

It occurred to me that if you run the program above (bno055_node.py), and you are running a ttyUSBx type port, then you probably have to specify baud rate somewhere. If it is ttyACMx type port then it doesn't care about baud rate. I am currently using a Teensy 3.2 which creates a ttyACMx port and my udev rule renames it to /dev/ttyBNO055.

Javier's code above (read_head.py) does this on line 6: ser = serial.Serial('/dev/ttyACM1', 115200) So I guess that is all that is required is to append baudrate to the end of the serial open.

Javier
2021-07-05 07:34:55

https://github.com/formatc1702/WireViz

GitHub
JeffS
2021-07-05 17:22:53

More interesting tid-bits... I notice that when I run the BNO055 that it never achieves magnetic calibration. I have it fixed directly to the frame so I have no way to "wave it around." But (if if I start with it pointed North) it does a good job of reporting an accurate heading. I want to experiment with starting out with it pointed in a random "non-North" direction, but I haven't tried that yet. Actually I tried a couple of tests with it pointed in a 'non-North" direction, but I haven't analyzed those yet. But...

I noticed couple of things...

I pointed my vehicle North and drove around two times clock-wise, turned around and drove two times counter-clockwise. The BNO055 did a good job of reporting heading. The dual antenna moving base line did a good job of reporting heading. I noticed the RTK correction dropped out at one point, which did not affect the moving baseline heading (but see below). I also noticed the magnetic calibration level from the BNO055 was either 0 or 1. The data sheet say to "ignore the heading completely if calibration level is 0". So it never did achieve a decent calibration level, but it was giving usable values.

I added an RGB LED to my BNO055/Teensy3.2 board. It will give me a quick indication of what the calibration level is. I haven't driven it yet.

Here are some random plots. (You can look at the the labels to to which plot applies.) One has BNO055 heading (blue), Moving baseline heading (purple), BNO055 calibration level (red), GPS0 RTK status (green), GPS0 number of satellites (yellowish). Notice the RTK drop out did not affect the moving baseline heading. Also notice the BNO055 calibration did not affect the BNO055 , even though I was told to ignore it under those conditions.

The other plot has GPS ground plot and gpsodom.py plot. The green is the RTK status, When the RK dropped out, the gpsodom.py dropped back to 0.0, but the real RTK GPS was unaffected. (I can't highlight his because I am on my Linux machine and I don't have access to Paint...) So there is problem in gps_odm.py, maybe it it is being too cautious?

So the bottom line is, plot out all of your data and see what modules have problems... And what you can trust...

👍 Al Jones
Al Jones
2021-07-05 21:55:01

Regarding BNO085 IMU, some progress to report. I need to test on my tractor and make a ROS node out of it, but I seem to be able to read the IMU and get both heading and rotational velocity. I have the high level code from Sparkfun working, but will try and pull out just what I need. Code link.

JeffS
2021-07-08 14:52:08

I found this video to be informative. And it is quite recent. https://www.youtube.com/watch?v=BQzmCmSijaA

YouTube
} OpenCV AI (https://www.youtube.com/c/OpenCVAI)
JeffS
2021-07-13 14:39:34

A few updates...

On the last Zoom meeting I was telling Al that I screwed up my ESP32-CAM ntrip receiver. I attempted to add security to my SSID that the ESP was broadcasting. After that I couldn't log in anymore. After about a day of fighting with it I was able to reprogram two ESP32-CAM boards and was able to add a lower security level to the SSID. I put it on the robot and configured it to connect to my cell modem hotspot. When I turned everything on I could see the "data used" was incrementing on my hotspot and the F9P indicated it had an RTK fix. So I packed it up to take it outside and drive around the block. (Since I wouldn't be limited to line of site to my living room window for WiFi...

JeffS
2021-07-13 14:57:49

When I got outside and powered everything up, I didn't seem to be getting RTK fix. The cell modem hotspot "data used" was incrementing VERY slowly. So it didn't seem to be supplying correction data. I poked at it for quite awhile but couldn't figure out what was wrong with it. Finally I went in the house and told my laptop to show me correction data. The DOT (Minnesota Department of Transportation) system was down. So in the time it took me to move my robot outside, their system went down. (When you use free correction you can't expect it to work all of the time. Sometimes it comes back in a short time. Sometimes it may be down for days.)

I didn't have correction but I decided to drive around the block anyway. Maybe some things would not work without RTK fix. I plotted both the front and back GPS ground path. You don't see much difference since I am zoomed out so far. But that is what it looks like with no correction data.

On the left, the pink line is the dual antenna moving baseline heading. (It seems to work well even without correction data.) The peach colored line is the heading from the BNO055 IMU. You can see that it drifts over that long distance. (Someone is going to ask... I think that is 311 or 318 meters all the way around.) I didn't do any initial calibration on the BNO055. The blue line across the bottom (value of 0) and it stays at 0 the entire run. Adafruit says if you bolt down the BNO055 and drive around it will automatically calibrate itself. It didn't. I will have to experiment...

JeffS
2021-07-13 15:22:56

I added an RGB LED to my Teensy/BNO055 board which gives real time magnetic calibration status. So I decided to test it. I decided I would try various manual maneuvers to see if the IMU magnetic would calibrate. Then I could drive around, after it thought it was calibrated. The blue plot is the heading from the BNO055.

So I pointed the robot North and started up the launch file. The first plot shows the entire ground path. The green plot is the GPS moving baseline heading. The next plot has several line, but the blue line is the pitch value from the BNO055. You can see the pitch change as I pick up the front end and set it down. Then I thought I may be able to get pitch from the dual antenna GPS. I found the relPosD field in the navrelposned message. It is comparing the height of the front anttena to the back antenna and calculating pitch. It is inverted, but it follows the IMU pitch. It appears to be in degrees.

So to sum up, I pointed the vehicle North and moved it around until the magnetic calibration was at 3 (best). Then I drove around. It dropped to 2, then dropped to 1, then went back to 2, popped up to 3 and dropped back to 2. I will have to figure out what that is telling me... But once calibrated, it does not stay calibrated....

Javier
2021-07-14 07:48:25

*Thread Reply:* Impressive work Jeff. I believe that the final solution is fusing the data of the heading from the GPS, the BMO055 and wheel odometry to obtain a good accuracy over the time. Now i'm working on that.

JeffS
2021-07-13 15:28:03

This is a zoomed in view of the initial calibration experiment. You can see the interaction of the top blue plot (heading/yaw) and the 4th blue plot which is the pitch. You can see when I picked up the front end and then see the heading change as I walk it around in circles around the back wheels. I didn't have a plan when I started, I just wanted to see what I had to do to get it to calibrate.

JeffS
2021-07-13 15:36:57

Since I had a lot of information recorded, I plotted some other things. The top plot is vehicle speed. The teal line is from the wheel odometry. The yellowish line is ground speed from the GPS.

The bottom plot is rotational velocities. Blue - wheel odometry, red - Razor IMU gyroscope Z velocity, teal - BNO055 gyroscope Z velocity. The GPS recovered rotational velocity is turned off since it has big spikes.

JeffS
2021-07-13 15:39:39

This is a zoomed in version of the same rotational velocities with the GPS plot also enabled.

JeffS
2021-07-13 15:41:44

I notice that I don't get an output from gps_odom.py since I didn't have RTK correction data. Matt chose to ignore everything if the solution value is not 2 (RTK fix). I have patched that but I haven't tested it yet.

JeffS
2021-07-13 15:51:11

I connected an Arduino Nano to the position pot in the Open Frame Giant R/C servo. It just outputs the raw value from AD0. Then I have a simple ROS node to publish that as a float32. It is quite clean (to my surprise). It has something weird. It is suppoesed to go from about 250 to about 750 (from manual measurements). But there is a big spike below 250 that I don't think should be there. I will have to look at that. I also added a 10K resistor in series with the AD0 input. Because I knew that if I power down the Arduino that it would drag down the pot voltage in the servo. Which would cause it violently smash my steering into a hard stop and break something. With the 10K resistor it moves 5-10 degrees to the right when I power down the Arduino, but it doesn't break anything. It is close enough for testing...

JeffS
2021-07-13 15:58:53

PS: My correction data came back Monday morning when I checked it. I have one more major thing that I want to do before I run another test. I need to have my STM32F4Discovery board driver publish its mass of data as an array instead of a string. Plot Juggler will understand the float array but it does understand the single string. That data has the 5 values I need to publish the odometry message. Plus I blatantly added a bunch of debug data to that message. Things like... left encoder value, right encoder value, total linear distance traveled, the PWM value being sent to the steering servo. And more stuff I don't remember right now. So I have to go do that...

Other than the things I listed, I haven't been doing anything... 🙂

Javier
2021-07-14 09:11:08

https://github.com/felias-fogg/SoftI2CMaster

GitHub
JeffS
2021-07-15 18:20:13

This was just posted to the Home Brew Robotics group email server. I'm not sure exactly what it is, but it looks interesting. ```Hi everyone,

I'm the author of ROSshow (https://github.com/dheera/rosshow/), which lets you visualize ROS topics with ASCII art.

I wanted to introduce ROSboard: https://github.com/dheera/rosboard/ which simply runs on your robot as a ROS node, and serves up live-streamed visualizations on https://your-robot-ip:8888/. It already supports most common types, including Image, CompressedImage, time-series data of all std_msgs types, NavSatFix, /rosout, LaserScan, and even lets you stream the output of 'dmesg'.

This has been a long-running project of mine (I started working on it before WebViz) but I've been looking to pick it up again due to various inadequacies in WebViz.

A couple of the most important things I'm hoping to achieve with this:

ROS1/ROS2 compatible – it should work in both ROS versions! Tested in noetic, foxy, galactic, it should work in kinetic and melodic as long as you pip3 install rospkg. By the way, it makes use of my library "rospy2" which allows for the same code to work in ROS1 and ROS2.

Mobile-friendly – one of my preferred ways of debugging (especially outdoor) robots is to walk around with the robot and a phone. Being able to answer questions like "how much does the motor current jump if I put a load on top of the robot" in a few seconds with a phone-based visualization in one hand and a tool in the other.

Easily extensible – creating a custom visualization involves only adding ONE .js file and adding a reference to it in the main .js file.

Happy to hear any experiences / suggestions / what you would like to see in something like this!


Dheera Venkatraman http://dheera.net``` https://github.com/dheera/rosboard/

Al Jones
2021-07-17 11:43:43

@JeffS or @Javier Ever seen non-linear output from an IMU? I'm getting 180 degrees from East->North->West, but from East->South-West the output is not linear. Video

Javier
2021-07-17 12:00:06

I Al i dont see any non linearity... can you share the code that upload to the control board?

Javier
2021-07-17 12:06:54

I saw an offset when i have running a lot of time the imu about 3 degrees

Al Jones
2021-07-17 12:07:09

Non linearity is moving from 270 degrees to ~225 (i.e. 45 degrees) equates to a Yaw reading from 90 to 180

Al Jones
2021-07-17 12:08:54

Sparkfun Yaw = -150 when pointing South; Yaw = 0 (North), -90 (East), +90 (West)

JeffS
2021-07-17 12:22:57

Several things... Are those trash barrels empty? Do those rocks have any magnetic properties? Can you move the laptop further away to see if that affects the heading? Why are you mentioning +90 and -90? Doesn't your IMU put out 0-360 degrees? Have you done any magnetic calibration on the IMU? (Verifiable by reading out the calibration status from the IMU.) If your magnetic calibration is off, or you have extra magentic fields then your heading is very likely to be non-linear. Any reason why you have the IMU mounted at a weird angle on your white board? Why do you mention Sparkfun? Is that where the code came form?

I'll look at your code to see if you are expecting NED or ENU. I'll get back to you after I look at the code.

Al Jones
2021-07-17 12:25:03

barrel empty; put the rocks there after I noticed the issue so the rocks did not seem to cause any variation; I moved the laptop away the distance of the usb cable (~4ft) with no apparent change.

Al Jones
2021-07-17 12:26:27

Regarding yaw, in the Sparkfun library, float yaw = (myIMU.getYaw()) ** 180.0 / PI; Returns Sparkfun Yaw = -150 when pointing South; Yaw = 0 (North), -90 (East), +90 (West)

Al Jones
2021-07-17 12:29:23

The board is mounted that way, to give me a North orientation. I know it seems odd.

JeffS
2021-07-17 12:35:00

AT first glance of your code I see it is from Sparkfun, so that answers my question about Sparkfun. I'll dig into the code. I want to see what myIMU.getYaw is suppose to return. Because it looks like they are converting from radians to degrees. But my biggest question is "have you done any magnetic calibration?"

Without spending the time to change your code to read calibration level, just pick up the IMU and wave it around for 30 seconds or so. If it is going to calibrate then it should do it in that time. Then rerun the test.

👍 Al Jones, Javier
Al Jones
2021-07-17 12:37:51

I can also add the status to the output

JeffS
2021-07-17 12:51:10

Oh, when you get a chance (not a big hurry) can you rename the meeting video form yesterday (zoom_0.mp4) to have the date, to match the other videos. @Javier We were discussing magnetic calibration in the video yesterday, if you are interested.

JeffS
2021-07-17 12:54:37

As something to back up your observations... The test I did driving around the block shows a drift in yaw as I was driving East and West but not driving North and South. The blue line across the bottom indicates the sensor was not calibrated. And the resulting magnetic lack of calibration was causing problems with the yaw output. https://tractorautomation.slack.com/archives/C8X6X6H7D/p1626206269064500

} JeffS (https://tractorautomation.slack.com/team/U01LCR21M8B)
JeffS
2021-07-17 13:09:59

@Javier Oh, so you don't waste a lot of time, we were talking about magnetic calibration at the end of the video. (Let me see if i can find that...) Oh, now I can't get the video to play after it was renamed...

Javier
2021-07-17 13:11:56

Thanks Jeff! sorry the last meetings i can't connect

Javier
2021-07-17 13:12:36

I will try to connect the nexts meetings

JeffS
2021-07-17 13:16:27

Back to Al's immediate problem. It looks like you are getting valid heading values from the Sparkfun library. So I think it comes down to getting a valid magnetic calibration to get consistent heading values.

Al Jones
2021-07-17 13:17:16

*Thread Reply:* I will keep moving it around to see if it changes.

Javier
2021-07-17 13:17:20

I going to see the video about the magnetic calibration i ha e some troubles with that

Javier
2021-07-17 13:18:47
} Javier (https://tractorautomation.slack.com/team/U01VC76M0SX)
JeffS
2021-07-17 13:42:56

I was thinking about putting a push button on my Teensy/BNO055 board. If I push the button it would store the current calibration values internally (or just print it out the serial port so I can write it down). But instead I can just look for an input message on the serial port to do the same thing. So I can connect my Windows laptop, start the Arduino serial monitor, man-handle the robot until my LED indicates it is calibrated, then send it a command saying to store the calibration data.

Maybe I will work on that right now.

JeffS
2021-07-17 13:57:52

I downloaded the renamed video from this week and it plays... At 47:45 I mention a new Sparkfun board that has addressable LEDs. Which is just a more solid version of using the flexible LED strips. (Either would work.) Then use these to display any random real-time status that you want to know about. (Then some no-sense about wire length)

At, 52:00 we start talking about IMU and calibration and storing/retrieving values. (At one point I said "on my BNO085", but I actually have a BNO055.)

Al Jones
2021-07-17 18:31:28

Might be useful some time: https://wiki.ros.org/ros_imu_bno055

👍 Javier
Al Jones
2021-07-21 05:44:23

I found a document on how to calibrate the BNO085. Getting better results now. Video here

Juan Eduardo Riva
2021-09-05 06:21:10

*Thread Reply:* Taco compass

JeffS
2021-07-22 23:38:35

What's everybody up to?

On the meeting tomorrow I may comment on my grass fed beef purchase, my new Internet access, my thoughts on BNO055 IMU calibration. I didn't get much done this week...

Juan Eduardo Riva
2021-07-23 10:11:53

*Thread Reply:* Well, I did not want to bring my hardships here, but the reality is that for work they sent me to the USA (Miami, Atlanta, New York, Houston and Charlotte) supposedly for seven days and I have been trying to return to Argentina for a month. That is why I was not coming to the meetings. Today I am in Paraguay which is a bordering country with Argentina and supposedly next Tuesday I have a private flight to Argentina .. Crazy but it's my reality .. About robots what I was doing adds little to what happens here .. I kept translating into Spanish the ros wiki and I am trying to install a virtualization of the other robot (the little one) that I am building .. I was remembering you Jeff the last weeks because I am stuck in a javascript course in the object-oriented programming part ..

Al Jones
2021-07-23 11:01:03

*Thread Reply:* @Juan Eduardo Riva If you go here, you can walk across the bridge and be home! https://en.wikipedia.org/wiki/Triple_Frontier

} Wikipedia (https://en.wikipedia.org/)
Juan Eduardo Riva
2021-07-25 15:16:21

*Thread Reply:* @Al Jones of course; but i need my passport signed.. The only legal way to acces Argenitina is by plane.. Belive me that I know all the other way

Juan Eduardo Riva
2021-07-25 15:35:41

*Thread Reply:* On Tuesday I test the legal way and if it fails on Wednesday the illegal one. I did not expect to transform myself at 46 into a smuggler. the joys of living in underdeveloped countries 🤷‍♂️

JeffS
2021-07-25 18:30:31

*Thread Reply:* I can't even imagine the situation you are in. My company sent me to Europe twice. But I had no doubt that I would be able to get back home. I can't imagine being in an adjacent country and having to sneak back into my home country.

If you have to sneak in with no signature... I can imagine you getting stopped for an traffic violation in 10 years. They will turn to the "deportation wheel" and give it a spin... It may turn up Siberia, or Antarctica or "United States, Alabama". ( I don't mean to offend Al, but it might turn up "United States, Texas") If you get deported to United States, I will try to clean out some room and you can stay with me...

So I hope you can get back home. Legally or illegally.

(We discussed this on the unrecorded Zoom meeting. I hope you were vacinated before they sent you on a world tour.)

Juan Eduardo Riva
2021-07-30 06:20:41

*Thread Reply:* Yes, I was vacinated.. Thanks, for worring and now it's all ok. See you today

JeffS
2021-07-24 19:26:31

I told Al I may attempt to get my LED status strip to work. It works... I gave a description of the concept here: (@21:00) https://www.youtube.com/watch?v=kZkRv-ihn9o I know I showed the LED status indicator working on a video meeting. But I can't find that. The strip/Arduino accepts a string of 8 comma separated numbers. Each number is a color of that particular LED. Then I created a ROS node that subscribed to whatever I want monitor. It fills in the field for that that LED and sends it out. As a test, I am subcribing to GPS0 and GPS1 and displaying the solution status on two separate LEDs. And I subscribe to the output array from my BNO055 IMU and display the value of the magnetic calibration level on a third LED. It all works, but I need to add a timeout for each topic so it turns the LED off if that topic stops publishing.

YouTube
} Robot Agriculture (https://www.youtube.com/channel/UCnr6AObsHnHSGPge0HVlBpA)
JeffS
2021-07-25 18:34:04

@Al Jones Do you have a bagfile with your back wheel position encoders? I was just looking at my wheel odometry calibration. I realized we can convert your back wheel encoders to wheel odometry. (I would do it in Excel, to verify it works.)

Al Jones
2021-07-27 15:05:58

*Thread Reply:* Unfortunately no. Since I redesigned my back wheel encoder to be enclosed I have only been using one. I have the second one printed, but have not soldered and put it all together and remounted it yet. So much to do. So few hours. :(

JeffS
2021-08-03 13:46:37

I found the YouTube page for OpenCV-AI: https://www.youtube.com/c/OpenCVAI/featured Lots of good info... Did anybody get one of these cameras through the Kick Starter campaigne? If so, have you done anything with it? I got the 3D version of the board (OAK-3D?), but I haven't done anything with it.

YouTube
Al Jones
2021-08-03 16:02:18

*Thread Reply:* Have one, still in the box

JeffS
2021-08-03 20:23:27

While I still have an Internet connection... Someone on Home Brew Robotics Group used the worn out phrase (paraphrasing: GPS is noisy and inaccurate). There was a comment about altitude from GPS being unusable... I decided to plot my altitude. I see with RTK correction (and single antenna) I get a difference in altitude of 1.5 meters from one corner of my area (90 meters x 60 meters) to the opposite corner. (North East corner to South West corner) But I did get a massive jump in altitude 🙂 (0.2 meters) when it switches from "fix" to "float". So I normally don't look at altitude, but I did because of the comment. It looks relatively acceptable to me if you are using a modern, multiband, RTK receiver, with correction data. Now I may have to add the Tindie IMU which has a barometric pressure sensor to see what it thinks about altitude...

On the second plot, the bottom plot (greenish) is the fix status. The top line is "fix", the middle line is "float", the bottom line is "single point". (Single point is equivalent to a cell phone or the cheap $20 modules you can buy on eBay.)

JeffS
2021-08-04 23:08:21

I probably won't be on the meeting Friday. No Internet...

🤷‍♂️ Juan Eduardo Riva
👍 Al Jones
Al Jones
2021-08-06 11:50:29

Chiprobitics IMU

JeffS
2021-08-06 12:07:40

I had another revelation. Since I have no Internet, and there is nothing worth watching on over-the-air television, I can do some more ROS-Agriculture video indexing. One down and I have started on a second one. Only another 112 more to go...

👍 Al Jones, Bob Hassett, Javier
JeffS
2021-08-07 13:31:08

I had my first run-away robot. (Well, not the first one ever. But the first one for this robot.) It is still a mystery.

It was driving forward and the steering was not responding. I hesitated and then pressed the eStop on the remote. The beacon did not change from orange to red. And it was still moving. I started to chase it down, hoping the manual eStop would kill it. It stopped before I got to it.

I assume the processor on the remote control receiver died. But it gives me a list of things to check and improve. Like make sure I have a timeout on the motor drive. So if there is no speed request it will stop. (Like the ROS side does.) I think I will remove the 24-volt boost converter. That will reduce the top speed from 2 m/s to 1 m/s. Easier to catch (and do less damage if I don't catch it).

I need to swap the master/slave. Currently the remote is the master. If it gets a communication it can't do anything about it. If the robot is the naster. Then a timeout can stop the robot. I should also consider adding a watch-dog timer to the remote control receiver. So it will reset the processor if the code dies.

I need to add more debug info so I can better analyze these failures in the future.

JeffS
2021-08-07 13:47:11

I also replaced the eStop switch on my remote control transmitter. It had a fairly large plastic switch. I replaced it with a fancy metal one, like the one on the robot. I haven't run it long enough yo see if it solves the intermittent problem.

JeffS
2021-08-09 09:42:24

My Internet is working again. Apparently it was all screwed up.

I did get 12 more ROS-Agriculture meetings indexed. Only 100 more to go...

I did some more testing. I can post something on the dramatic effects of tire pressure on wheel odometry.

And, driving around the block twice (around 600 meters) the BNO055 IMU was tracking well (better than before). And that was with no magnetic calibration. If I load the calibration data at startup, it won't output any data. So I don't do that anymore.

👍 Al Jones
Al Jones
2021-08-09 10:22:31

I was able to get the BNO085 to publish to the Float32 array. I went to test and was having issues getting my Ubuntu 20 laptop setup with my Tkinter gui. Anyway, I started with what Jeff had provided and added some more notes. Still rough. (link)

JeffS
2021-08-09 18:35:31

In the meeting I mentioned changes your print statements for debug or normal. I was talking about standard C preprocessor directives (here is random documentation on that): https://docs.microsoft.com/en-us/cpp/preprocessor/preprocessor-directives?view=msvc-160 You can mix and match these to do lots of things. Keep in mind this actually controls which lines of code get compiled. So if you change form one format to the other, you have to recompile and download for it to work

The other option is just create a variable. So you can do this: if (debug == 1) { print("Fancy text: %d %d\n", x, y); } else { print("%d,%d\n", x, y); }

Then you can change it on the fly without recompiling.

docs.microsoft.com
JeffS
2021-08-11 11:59:50

As I write this... The Adafruit BNO085 board is currently in stock. Maybe not for long. If you have been tracking these, this would be the time to get one before they are gone again. http://www.adafruit.com/products/4754

adafruit.com
PRICE
$19.95 USD
STOCK
IN STOCK
Al Jones
2021-08-13 09:52:33

Apologies, but I'm unavailable today for a call. My day-job is causing the problem. @Juan Eduardo Riva if you are able to have a Google call with @JeffS can you let him know?

JeffS
2021-08-15 20:51:15

Just a couple of comments. I couldn't sleep last night. So I worked through various concepts. First, I worked through how to mount 3 IMUs on my mini-tractor. (The protoboards are now mounted.) I worked through the whole steering definition that Al keeps agonizing over. (Down to lines of code.)

JeffS
2021-08-15 20:59:25

And a third major concept, which I can't remember... (Maybe it was automatic calibration... Or maybe navigation experiments.) According to my USPS tracking info, my Adafruit BNO085 boards should show up tomorrow. I found a new Teensy 3.2 that I should solder the pins on tonight. If I get far enough, I should download and compile some test software for the BNO085. I have a third (well, fourth, IMU on my mini-tractor, if you count the Sparkfun Razor IMU). So with any luck I can get the BNO055 and BNO085 and EM-7180 IMUs talking some time tomorrow. I may unplug the Razor IMU, if I need the USB port. If I determine that a single IMU will give adequate results then I can remove the other ones. The BNO055 was giving me good heading info the last time I ran it. (It shouldn't have. But it was.)

JeffS
2021-08-15 21:00:17

I was also contemplating some simple navigation experiments. I may step through those...

JeffS
2021-08-15 21:06:26

I think I have another 27 ROS-Agriculture videos indexed. I think that leaves another 81 or so to go.

JeffS
2021-08-16 18:20:08

My BNO085 boards showed up today. The default address is opposite between the Sparkfun board and the Adafruitt board. The direction is 90 degrees from what I wanted, so I will have to rethink the mounting. The examples worked right out of the box (except for the different address). My North angle is off by about 45 degrees. I will have to look into the calibration steps.

JeffS
2021-08-16 18:22:44

Oh, I got two Adafruit boards. And I am using the Sparkfun libraries.

JeffS
2021-08-17 23:36:52

All night I fought with the Adafruit software for "THEIR" BNO085 IMU boards. It will not work. It won't run on a Teensy. It looks like they got cute and added another layer on top of the I2C drivers. I can't figure it out...

The Sparkfun code runs. I will go back to that.

JeffS
2021-08-18 13:49:31

https://www.crn.com/news/components-peripherals/intel-says-it-s-winding-down-realsense-camera-business?itc=refresh

CRN
Juan Eduardo Riva
2021-08-18 15:07:56

*Thread Reply:* Well, Matt was so excited about them.. 🙃

Bob Hassett
2021-08-18 15:30:30

*Thread Reply:* Will prices come down? Seems like there is a lot of support on GitHub

Juan Eduardo Riva
2021-08-18 14:54:07

Back on track

Al Jones
2021-08-20 11:02:46

Trying to get signed in to zoom from another computer. Hang on

Al Jones
2021-08-20 16:17:43

https://www.theguardian.com/environment/2021/aug/14/weedkilling-robots-farming-pesticide-use-sustainable?utm_source=pocket-newtab

the Guardian
JeffS
2021-08-20 22:34:30

https://discourse.ros.org/t/roscon-2021-cancelled-ros-world-2021-announcement/21929

ROS Discourse
Reading time
1 mins 🕑
Likes
59 ❤️
Al Jones
2021-08-21 18:57:52

Some info on my Tkinter gui to help start launch files and display topics on my "operator" laptop https://gist.github.com/jones2126/3460e9a51e1bb943eef714edf1c3eb3b

JeffS
2021-08-22 19:18:51

My first results with the BNO085 IMU. The first image shows the GPS Static heading, BNO055 heading and the BNO085 heading. The BNO085 isn't tracking as well as I hoped, but much better than expected. It is doing a pretty good job considering the half-ass attempt at magnetic calibration. This is driving around the block like I usually do.

The second image shows GPS static heading and BNO085 heading. The middle plot shows the "quaternion accuracy level", whatever that is. It doesn't seem to correspond to anything. The bottom plot is the BNO085 magnetic calibration level (0-3). So it is changing while I am driving around.

Now I have something to look at...

JeffS
2021-08-23 19:51:15

It ocurred to me that I have a second BNO085 sensor. So I added it to my robot. This image shows the BNO055, BNO085, a second BNO085 and the GPS static heading for reference. Now I have to figure out how to do the calibration. It is not real apparent from the available documentation. The bottom plot shows the calibration level as I drive around.

VKuehn
2021-08-24 15:03:29

The bno055 sensor needs to be moved into four or more directions/angles and stay there for 10 seconds. Depending on the library you could save the calibration. Saving didn't work for me through i2c.

JeffS
2021-08-24 15:09:47

I'm afraid to touch the BNO055 at the moment. It is working the best. I don't think the BNO055 saves calibration to the chip. I think you have to store it locally.

I was just playing with a BNO085. I can't get it to calibrate outside. It seems to calibrate indoors. And I can save to the chip. And everyone is happy. If I take it outside the indoor calibration does not work. But I can't get it to calibrate outdoors...

So that is where I am.

I told the BNO085 to not do background calibration, but it was still changing as I was driving around.

JeffS
2021-08-25 19:41:54

I finally got around to measuring a survey marker. I found a converter on a web page that didn't allow me to type in enough digits. Another page took all of my numbers. I had to convert because I get degrees (dd.ddddd....) and the survey report is in degrees, minutes, seconds (dd mm ss.sss...)

I also found two web pages to calculate distance between two points. Neither of them allow enough resolution. According to them the two points are identical.

MNDOT tells me the surveyed point is: 45 00 21.55959 93 14 48.90473 Which converts to: 45.005988775 -93.2469179806 I measure: 45.00598905 -93.24691679 (This was just a random point and not the average.) Difference of 0.000000275 degrees by 0.000001191 degrees Off hand, I don't know how to convert that to millimeters. I am going to stop worrying about my accuracy until I find a better way to calculate the differences.

Javier
2021-08-25 20:02:08

Hi Jeff, 1 degree measured with gps its about 1km.

JeffS
2021-08-25 20:19:25

I searched for "how many meters in 1 degree of latitude" and it turned up this page: https://www.usna.edu/Users/oceano/pguth/md_help/html/approx_equivalents.htm I thought 1 degree = 1 km seemed awfully small. I knew there was more that 180 km from North pole to South pole... 🙂

Javier
2021-08-25 20:24:37

Sorry jeff, yes you are right!

JeffS
2021-08-25 20:43:12

It looks like you can use the latitude directly. Which if the 7th decimal point is 1.1 cm then I think I have 2.75 ** 1.1 = 3.025 cm difference in the latitude direction. I don't have the patience to figure out the longitude difference.

But considering I am using correction data with an unknown baseline length. And the survey pin is bent at about a 45 degree angle. And I eyeballed the placement of the antenna/tripod over the pin. I'm real happy with a 3 cm error.

I was using the newer correction data which has GPS, Glonass and Galileo data. If I switch to the old version it only has GPS and Glonass. It may be worth a test sometime to see if that makes a difference. And if I had thought ahead I probably could have displayed a screen that would have told me the baseline length...

JeffS
2021-08-25 21:02:47

Does anybody know how to get LEDs to show up in digital photographs? If I take a picture or make a movie with my Nikon camera, the LEDs don't show up. Even though they are plenty bright. Do I need filter on my camera? Or a diffuser in front of the LEDs? Just a strip of white paper will diffuse them. Here is an example photo of my status strip:

Bob Hassett
2021-08-26 09:32:43

When I look closer I can see 4 greens, a blank, 2 blue and one red. I don’t have experience trying to photo leds. I do use a temporary backup camera on my tractor and truck. On the tractor, the monitor is hard to see. I’ve had to experiment with monitor angle, elevation and especially providing shade for the images to stand out. The experimental cardboard shade is kinda like a hood. Btw your status led concept is really cool and worth bookmarking for future reference!

Juan Eduardo Riva
2021-08-26 15:05:01

Hi.. Take a look at this.. http://www.mobotsoft.com/#projects

Al Jones
2021-08-30 18:30:27

*Thread Reply:* looks great. do you know him?

Juan Eduardo Riva
2021-08-30 22:51:33

*Thread Reply:* I send him an email and try to connect but lost the opportunity on my side because I was to busy. After that, never reply me again.. 🤷‍♂️

Al Jones
2021-08-29 13:46:45

Was able to get a few minutes in the yard capturing a bag file with the BNO085 running. Now to remind myself how to use Plotjuggler and compare results between IMU and GPS for heading and look at IMU rotational velocity to see if it looks valid....

JeffS
2021-08-29 15:58:52

@Al Jones I have been looking at this steering angle non-sense. I thought I was getting reasonable results with my old bagfiles. So I looked at your numbers... Here are some computations. The diameter of the circle measured on the screen isn't real close to the calculated diameter. 1.587 vs. 2.278. But what I am doing isn't real precise. I picked what looked like the smallest complete circle. My comments:

```@ 13:15:57

Diameter from screen: x1-x2 (@13:15:57) 18.337 - (@13:16:00) 16.059 = 2.278m diameter

gps_forwardvelocity: sqrt(/vel/twist/linear/x ^ 2 + /vel/twist/linear/y ^ 2) = m/s sqrt(0.4925^2 + 0.7140^2) = 0.714 m/s

bno085_rotvel: ~0.9 r/s

Using equations from this page: http://wiki.ros.org/teb_local_planner/Tutorials/Planning%20for%20car-like%20robots

calculated radius: forwardvelocity/rotationalvelocity = radius 0.714 / 0.9 = 0.7933m radius = 1.587m diameter

steerangle: arctan(wheelbase / radius) = steerangle (but i don't know your wheel base...)```

Al Jones
2021-08-29 16:24:30

Interesting. Thanks for looking at the bagfile. Your screen shot made me change my plotjuggler view. I have been looking at these data elements mostly, so far. I can't get my timestamp to match your's though.

Al Jones
2021-08-29 16:26:15

*Thread Reply:* This is the full screen (i.e. summary)

Al Jones
2021-08-29 16:27:21

*Thread Reply:*

Bob Hassett
2021-09-02 17:15:42

Anyone recommend a web camera, usb..wireless.. end of life Realsence cameras

JeffS
2021-09-03 14:58:12

This is where the new Lawn Tractor Automation YouTube channel will be: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ It won't let me change the URL to something reasonable. So we will have this URL for the foreseeable future. The videos are taking forever to upload. I will finish the upload process.

YouTube
JeffS
2021-09-03 15:23:07

I didn't get too far. My second video upload aborted. It ran for about 1 hour and 45minutes. It said it had 3 minutes remaining. Then it aborted and told me it exceeded some arbitrary limit. It told me I could "verfiy my account". That involves supplying them with phone number (because Google and Facebook can make a fortune by linking a phone number to online data). I don't have a phone, I just had it disconnected. For the moment I am done...

JeffS
2021-09-03 15:39:40

Enough people have run into this problem. There are apparently ways to get around it. I'll track those down...

VKuehn
2021-09-04 02:40:53

You mean ways around youtube ?

JeffS
2021-09-04 10:59:45

I have to verify my YouTube account by by phone with either a text message or a voice mail. I don't have a phone. There are web sites for verification, like: https://oksms.org/ But the US numbers don't work, I assume they have been used too many times. I can get it to accept a Canadian phone number, but the text message never shows up. So I am still playing with this.

JeffS
2021-09-04 11:17:59

Hey, I got it work!!! Both my personal account and the new Lawn Tractor Automation channel are now authorized. I can go back to uploading videos...

🦾 Juan Eduardo Riva
Bob Hassett
2021-09-04 11:19:15

HIP HIP!

JeffS
2021-09-04 15:37:25

I got the first actual meeting video uploaded: (actually I have two now) https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/featured I was watching the first one on my TV to make sure it was going to work, and "DOh!!!" I realized I could be indexing it while I was watching it. So I made notes, started over and finished my notes. In the description for the first video you can see how I integrated the chat. And I did the index correctly. So an index entry has a time stamp, the time stamp shows up in the video slider bar. If you click on an index entry it should start playing at that point.

While I was doing that the second video finished. (I took about 1-1/2 hours to upload and another ~1/2 hour to convert.) I can go watch that one now.

@Al Jones The next time you are driving around, can you get a picture of your lawn tractor, in the grass, in front of a soothing background (a hedge or flowers, or just a wall if that is all you have). And an angle that shows that it is a modified lawn tractor with some control electronics on it. I need a photo to replace the "L" icon for Lawn Tractor Automation identity.

YouTube
JeffS
2021-09-04 15:38:52

Oh, I am trying get the play lists figured out too. To make organization work out better.

JeffS
2021-09-04 23:03:58

This is what I am thinking for the channel icon. But with Al's lawn tractor (since he started this whole concept). I just used this image as a test. It should have been zoomed out a little more. Because you can crop it down to a circle when it is published. And it will look like this... https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ

YouTube
JeffS
2021-09-04 23:05:21

Oh, it shows up as a square here. But it is cropped to a circle on the actual page.

JeffS
2021-09-05 21:46:03

It's always somethun... YouTube will not let you put < and > in the description. One guy says to copy the characters from his tutorial video and paste them into your description. That fixes it. Apparently he is using special characters that look like < >. I'll track it down some other day...

JeffS
2021-09-05 23:17:02

Warning!!! If you see comments on the new Lawn Tractor Automation YouTube channel, don't click on any links that may be there.

We seem to have "SPAM Bots" randomly dumping links into the comments. Searching says "Do NOT click on these links!" I may turn off comments completely, if I can figure that out.

JeffS
2021-09-06 00:39:29

I found something in YouTube that says "Hold all comments for review". But setting the global checkbox doesn't affect previous uploads. So I had to change each one separately. And the global setting doesn't seem to work on new uploads. So I will fight with it some more...

JeffS
2021-09-07 14:49:46

I got caught up with the Lawn Tractor Automation videos. The one from last week was on my Windows computer. The Windows computer seems to upload faster than a Linux computer. But while that is running my Roku television refuses to work. I'm not sure why.

I am missing two videos. They were audio only sicne the videos got lost. If I upload an audio only MP4 file, YouTube refuses to process it. I'll have to look at that.

I had another video that did not finish processing the HD video part. Then a SPAM Bot posted a comment to that video. I can't delete that comment. I assume because it did not finish processing. So I just deleted the entire video and I am re-uploading the video.

I am working on indexing the videos.

Juan Eduardo Riva
2021-09-07 15:08:09

*Thread Reply:* Thanks for your work..

Juan Eduardo Riva
2021-09-09 08:34:57

The boards arrived.. @JeffS this is the same as yours..?

Juan Eduardo Riva
2021-09-09 08:36:47

*Thread Reply:*

JeffS
2021-09-09 13:14:50

*Thread Reply:* That is not the board that I have. Your boards looks like this one: https://www.amazon.com/STM32F407VGT6-System-Development-Single-Chip-Learning/dp/B081BCDZ1N/ref=sr113?dchild=1&keywords=stm32f4xx+board&qid=1631210752&sr=8-13|https://www.amazon.com/STM32F407VGT6-System-Development-Single-Chip-Learning/dp/B081[…]113?dchild=1&keywords=stm32f4xx+board&qid=1631210752&sr=8-13 Did you get documentation with this board?

I have this board: https://www.amazon.com/STM32F4DISCOVERY-STM32F407-Discovery-Evaluation-Development/dp/B00CW9AKDY/ref=sr19?dchild=1&keywords=stm32f4xx+board&qid=1631211102&sr=8-9|https://www.amazon.com/STM32F4DISCOVERY-STM32F407-Discovery-Evaluation-Development/d[…]r19?dchild=1&keywords=stm32f4xx+board&qid=1631211102&sr=8-9

Digikey says it is obsolete: https://www.digikey.com/en/products/detail/stmicroelectronics/STM32F4DISCOVERY/2711743?s=N4IgTCBcDaIM4BcC2BmMAzALAEwJZwGMB7ANwFMAnATxAF0BfIA

digikey.com
JeffS
2021-09-10 11:08:02

Try this link for todays meeting. It is working from my second computer. https://us02web.zoom.us/j/82358108849?pwd=aFJ0MmFHdERmZXdtTGRMZWdmaGlVQT09

JeffS
2021-09-11 01:02:36

I was having runaway problems. And I blew a fuse on my main motor drive. (See the last two meeting videos.)

I have added a USB/CAN adapter to monitor the internal CAN bus. And I am putting the velocity and steering values out to my normal ROS topic. So I can see if the remote control receiver is not transmitting CAN messages. Or the main microcontroller is not receiving CAN messages.

And I added a current monitor to my main motor drive. It gets published anlong with my BNO055 values to a ROS topic.

Maybe tomorrow I can drive it around and get some data.

Juan Eduardo Riva
2021-09-11 06:58:57

*Thread Reply:* @JeffS goodmorning.. Later yesterday I was thinking .. You collect the data in a bag file and then reproduce that file and see it plotted. You also have access to the topics and nodes through the console. Is there something I'm not seeing about how you analyze your work and the robot ..? @Al Jones you do the same, don't you ...?

JeffS
2021-09-11 14:44:52

*Thread Reply:* I have been doing three things.

I have a couple of different programs that will break a bagfile into separate CSV files. I can then open those with Excel or Open Office Calc. Or use the CSV values for anything I need.

I can open a bagfile directly with Plotjuggler. Then I can plot any combination of data. I can scale any plot and apply offset to any plot. Two big advantages of Plotjuggler... It lines up all plots in time. Excel won't do that. The other very omportant feature is you can use the slider bar to tun the plots forward and backwards.

I have also used a bagfile playback to get realtime data to play with. I wrote a node to subscribe to /gps/vel. Then started the bagfile playback. It extracted forward velocity, heading and I converted heading to rotational velocity. Then the next I ran the robot it created the new topics as it ran.

I did something I thought was clever. I started a bagfile playback, started another bagfile record, then started my new node I was writing. So when it was done, I had a new bagfile with the original data plus the new data I just created. There are time when that may be handy.

I need to look to see if I can edit a bagfile. I would like to go back and delete the ros_out topic from an existing file.

JeffS
2021-09-11 01:51:23

And if you want to know where to look in the last videos, look in the video index in the description of each video.

Bob Hassett
2021-09-11 12:31:46

*Thread Reply:* Nice job Jeff! I like the individual chapters presentation ability!

Juan Eduardo Riva
2021-09-11 17:34:30

Thanks..

I did something I thought was clever. I started a bagfile playback, started another bagfile record, then started my new node I was writing. So when it was done, I had a new bagfile with the original data plus the new data I just created. There are time when that may be handy. when was that case scenario..?

JeffS
2021-09-11 23:27:34

*Thread Reply:* Well, I started a bagfile playback. My /gps/vel to heading-velocity-rotational_velocity node created new topics and the rosbag record created a new bagfile with the original data and the new topics I created.

👍 Juan Eduardo Riva
JeffS
2021-09-11 23:23:52

I added my current sensor to my main motor. Actually it was between my battery and my 12V to 24V upconvertor. I drove around. The top plot is motor current. The bottom plot is vehicle velocity. The two big spikes on the left are hard acceleration. The first one is forward. The second one is reverse. The big spike on the right is when I drove from my sidewalk up onto the grass. The zoomed in view shows the current maxed out the A/D. When I calculate current that level is 30A. So I guess my 20A fuse had a right to complain. I took my 12V to 24V convertor out and I will try it again tomorrow to see what the numbers are.

I did not get a run-away condition to analyze. But my steering did something stupid, so I have a new thing to look at.

JeffS
2021-09-12 13:31:12

If you have a flux core welder, this video is worth watching: https://www.youtube.com/watch?v=AIWnygcnGBY

YouTube
} NightWrencher (https://www.youtube.com/c/NightWrencher)
🙌 Doug Thorpe, Bob Hassett
Juan Eduardo Riva
2021-09-17 11:10:18

Sorry for missing the meeting..

✅ Al Jones
JeffS
2021-09-17 22:15:49

Here is the Wiki page I was trying to find in the Zoom meeting today. http://wiki.ros.org/teb_local_planner/Tutorials/Planning%20for%20car-like%20robots

It has two key points. First it has a diagram to show the relation ship of velocity, rotational velocity, steer angle, turn radius and wheel base. It also has a version of a program to convert from rotational velocity to steer angle. (This is the same code that is inside of the TEB planner to do the same conversion.) https://www.youtube.com/watch?v=nAHbvCe2bTU

YouTube
} Lawn Tractor Automation (https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ)
Al Jones
2021-09-19 13:04:08

This is a code snippet from gps_odom.py which takes lat/lon and publishes odom:

    `if data.status.status == 2:`
        `#Convert from lat/lon to x/y`
        `_xg, _yg = gc.ll2xy(data.latitude, data.longitude, _GPS_origin_lat, _GPS_origin_lon)`

    `# Build Odometry Message`
    `self.odom_msg.header.stamp = rospy.Time.now()`
    `self.odom_msg.header.frame_id = "odom"`
    `# self.odom_msg.child_frame_id = "base_link"`
    `self.odom_msg.child_frame_id = "base_footprint"`

    `# set the position`
    `self.odom_msg.pose.pose = Pose(Point(_xg, _yg, 0.), Quaternion(**self.odom_quat))`
    `self.odom_msg.pose.covariance[0] = data.position_covariance[0]  # x`
    `self.odom_msg.pose.covariance[4] = data.position_covariance[4]  # y`
    `self.odom_msg.pose.covariance[7] = data.position_covariance[8] # yaw`

    `# Publish Transform between odom and base_link`
    `odom_broadcaster = tf.TransformBroadcaster()`
    `#odom_broadcaster.sendTransform((_xg, _yg, 0.0), self.odom_quat, rospy.Time.now(), "base_link", "odom")`
    `odom_broadcaster.sendTransform((_xg, _yg, 0.0), self.odom_quat, rospy.Time.now(), "base_footprint", "odom")`
  1. I think I'm seeing an issue, there is no offset from the actual position of the GPS and base_footprint included in the code.
  2. And then in my xacro file (/home/ubuntu/catkinws/src/lawntractor/lawntractorsim/urdf/lawntractor.urdf.xacro) I have gpsjoint defined as: &lt;!-- define gps joint --&gt; &lt;joint name="gps_joint" type="fixed"&gt; &lt;parent link="base_link"/&gt; &lt;child link="gps"/&gt; &lt;origin xyz="0.46 0 0.61" rpy="0 0 0" /&gt; &lt;/joint&gt;

Fyi, this is how base_footprint joint is defined

&lt;!-- define base footprint joint --&gt; &lt;joint name="base_footprint_joint" type="fixed"&gt; &lt;parent link="base_footprint"/&gt; &lt;child link="base_link"/&gt; &lt;origin xyz="0 0 0.25" rpy="0 0 0" /&gt; &lt;/joint&gt;

Another issue at some point to deal with is the GPS is sitting .86 meters above ground. On a hill, without adjusting for the angle, there will be an offset that should be included.

vinny ruia
2021-09-19 15:23:28

*Thread Reply:* is there a reason you all didn’t choose navsat transform

vinny ruia
2021-09-19 15:24:01

*Thread Reply:* navsat transform takes in IMU and GPS and publishes odometry http://docs.ros.org/jade/api/robotlocalization/html/navsattransform_node.html

Al Jones
2021-09-20 06:22:00

*Thread Reply:* Matt provided gps_odom.py and I don't recall any alternate discussion about navsat transform. Seems Daniel Snyder used navsat transform. Maybe not having an IMU was the reason.

JeffS
2021-09-28 01:01:32

*Thread Reply:* @Al Jones I have been thinking about this. I have bookmarked a bunch of videos on TF I want to watch. But I think what needs to (or could) be done is to subtract the difference between GPS and baselink before using the data. Something like this: _xg, _yg = gc.ll2xy(data.latitude, data.longitude, _GPS_origin_lat, _GPS_origin_lon) _xg = _xg - X_DELTA _yg = _yg - Y_DELTA Where XDELTA and Y_DELTA are constants from the GPS to baselink transform. A better way to get the values would be to query the GPS to baselink transform and get the values. I'll look at that...

JeffS
2021-09-28 01:12:56

*Thread Reply:* "Another issue at some point to deal with is the GPS is sitting .86 meters above ground. On a hill, without adjusting for the angle, there will be an offset that should be included."

This may be as simple as adding pitch and roll from the IMU into the GPU to baselink transform. Instead of using a static transform (either a static transform broadcaster or a static link in a URDF) you could create a dynamic transform broadcaster. Supply the x/y/z offset which was previously defined. Then add in the pitch and roll from the IMU. Maybe it is more complicated than that...

JeffS
2021-09-23 20:34:12

I am finally up to date on the new You Tube channel. I got the audio only videos to upload. I had to convert them with this program: https://www.openshot.org/

openshot.org
🙌 Bob Hassett
JeffS
2021-09-25 19:13:14

Not exactly on topic, but... This is not a refurbished steam tractor. They built it from scratch from old drawings. And it shows the power of steam. https://www.youtube.com/watch?v=FuJbfrcFKyU Now if they would add some GPS, a computer and some steam powered actuators, they could have an autonomous steam tractor.

YouTube
} Renner Stock Farms (https://www.youtube.com/channel/UCG0-xHe7u9A1z2aj04a93gg)
🙌 Al Jones
Bob Hassett
2021-09-26 12:17:38

*Thread Reply:* Also add a stirring engine on the wasted heat to generate electricity for technology.

Bob Hassett
2021-09-26 12:30:33

*Thread Reply:* Upon further review..use thermo electric materials to generate power for electronics? Come to think of it..utilizing heat from a muffler/exhaust pipe of a lawn tractor, farm tractor?

Juan Eduardo Riva
2021-09-27 13:21:26

*Thread Reply:* cornpunk

Al Jones
2021-09-26 17:45:28

I drove a few hard left and hard right circles and captured the bagfile. @JeffS Any tips on calculating turning radius from actual turn data?

JeffS
2021-09-26 17:47:21

Did you intend to post the bagfile? I just get images.

Al Jones
2021-09-26 17:48:38

*Thread Reply:* Are you saying you can't access it? It should be uploaded.

JeffS
2021-09-26 17:50:56

*Thread Reply:* Uploaded where? In Slack I get two images that have the bagfile name. I assume you do too if you look in the Random channel.

JeffS
2021-09-26 18:08:52

*Thread Reply:* Oh, I see. You put in in the Google drive. (If I had read your new image.) I will look at it.

Al Jones
2021-09-26 18:19:01

*Thread Reply:* One turn...

Al Jones
2021-09-26 18:20:35

*Thread Reply:* second turn...

JeffS
2021-09-26 18:58:55

Okay, first thing... What are /speed, /leftspeed, rightspeed? I assume leftspeed and rightspeed are scaled values from your wheel sensors. From my test, /speed does not appear to be forward speed (average of leftspeed and rightspeed). Forward speed @00:00::50.092 /speed = 0.887 /left_speed = 0.848 /right_speed = 1.578 Does (left_speed + right_speed) / 2 equal /speed? (0.848+1.578)/2 = 1.213 which does NOT equal /speed Now I will go and attempt to extract forward speed from GPS...

Al Jones
2021-09-27 06:21:42

*Thread Reply:* left and right speed is the speed of the left and right rear wheel. Looks like the average is ~1.3m/s

JeffS
2021-09-26 19:10:28

Checking your GPS speed at the same instant in time I get: GPS forward speed @00:00::50.092 To get forward speed from GPS, calculate length of vector from /vel at this point. x = -0.757 y = -0.462 GPS forward velocity = sqrt(x^2 + y^2) sqrt(-0.757 ** -0.757 + -0.462 ** -0.462) = 0.8868m/s (which is close to /speed) Next I will attempt to extract one or more rotational velocities...

Al Jones
2021-09-27 06:23:49

*Thread Reply:* Adding GPS speed to the plot. Looks a bit different

JeffS
2021-09-26 19:27:56

Another point to remember. I created a second plot (of a heading) and it screwed up my location. I had selected a location with the slider at the bottom of the screen. Now when I go back to reset the slider, I can't hit the same spot. But I will try to get close... (Actually it shouldn't matter since you have a constant speed and constant rotational velocity) (and at the moment I am just trying to figure out the steps)

While I am typing, I have a question. I the area I am in the /bno085_rotvel = 0.9 and I see the other values from the bno085 all have just one point past the decimal point. Was that intentional?

JeffS
2021-09-26 19:32:53

Oh, now I see a 0.92 on /bno085_rotvel. Maybe it was just a coincidence that it only had 1 place past the decimal point.

JeffS
2021-09-26 20:16:54

Here is another interesting point about Plot Juggler (somebody should make a list of interesting points...)

You can open a plot. Zoom in to what you want to look at. Then drag the slider back and to select a point in time. A little marker follows the path so you know which sample you are looking at. But... if you just have a smooth curve you can't ell where you are. So... right-click on the curve and select Line Styles. Under that select "Dots" or "Lines and Dots". Now when you step through time with the slider you can see the individual samples.

More importantly, you can click the button on the slider to get focus. Then you can use the the right and left arrows on your keyboard to step forward or backward one sample at a time. That eliminates a lot of aggravation.

So below I am looking Al's plot to extract rotation velocity from GPS. I didn't know his GPS sample rate. (I assumed it was 10 hertz) I go to the sample I want, look on the left under /vel/header and I have sequence number and time stamp. The point I'm on has seq of 240 and a time of 1632692473.68. If I back up one step I see seq of 239 and time stamp of 1632692473.478. If I subtract the times I get 0.202 which is 5 hertz. (not the 10 hertz I had guessed at)

I don't have the ambition to fix this right now. I had my television plugged in to give me dual screen. It takes a screen capture of both screens. I unplug the HDMI but it still thinks the second screen is there there. I may have to reboot to get rid of it...

JeffS
2021-09-26 20:41:17

I'm tired of fighting to get rotational velocity from GPS. So let's go with what we know. From TEB planner code: ```double TebLocalPlannerROS::convertTransRotVelToSteeringAngle(double v, double omega, double wheelbase, double minturningradius) const { if (omega==0 || v==0) return 0;

double radius = v/omega;

if (fabs(radius) < minturningradius) radius = double(g2o::sign(radius)) ** minturningradius;

return std::atan(wheelbase / radius); }``` Ignore the non-sense about minimum turning radius. That is just setting a limit.

Your IMU says either 0.9 or 0.92 radians/second at the points that I randomly chose. For forward velocity we could use either 0.8868m/s from GPS or 0.887m/s from /speed. From memory I think your wheelbase is 1.27m. So:

radius = 0.887 / 0.9 = 0.9856m (I measure 1.243m on the Plot Juggler screen from GPS ground plot) angle = atan(1.27 / 0.9856) = 52.18628454 degrees (0.91082249 radians)

Does that seem at all close?

PS: I use this calculator since my Linux calculator does not seem to have atan. https://www.rapidtables.com/calc/math/Arctan_Calculator.html

rapidtables.com
Al Jones
2021-09-27 06:26:38

*Thread Reply:* This is what the BNO085 IMU published for rotational velocity

Al Jones
2021-09-27 06:28:14

*Thread Reply:* thank you for spending time on this.

JeffS
2021-09-26 22:52:07

To sum up. To get recovered radius and/or recovered angle, read instantaneous forward velocity and instantaneous rotational velocity from a random point in time. Then use the two equations: radius = fvelocity / rvelocity angle = atan(wheelbase / radius) (But keep in mind that if rvelocity = 0, then it will die with a divide by zero error.) And keep in mind you seem to have two sources for both fvelocity and rvelocity. You can get speed from your wheel sensors and from your GPS. You can get rvelocity from your IMU or tease it out of GPS.

JeffS
2021-09-28 12:41:14

Just adding (subtracting) an x/y offset won't work. The values derived from GPS are in World coordinates and don't account for rotation of the vehicle. So you would have to do the "translate point" thing. _xg = (X_DELTA ** sin(heading)) + _xg _yg = (Y_DELTA ** cos(heading)) + _yg (The sin and cos may have to be reversed) This node already subscribes to a heading value. So this may work.

There may be a clever way to ask the transform system to subtract the offset.

I should dig through the navsat_transform node to see how they do it.

Al Jones
2021-09-29 16:45:39

*Thread Reply:* Bummer, I simply used a "- x-Delta" and ran my test.

JeffS
2021-09-29 16:46:21

*Thread Reply:* What did it do?

Al Jones
2021-09-29 16:47:47

*Thread Reply:* Well the circle I posted are the result; They are ~ 2.2, 2.4 meters in diameter

JeffS
2021-09-29 16:49:00

*Thread Reply:* Oh, you mean the test you ran a couple days ago?

Al Jones
2021-09-29 16:49:14

*Thread Reply:* Yes.

Wilco Bonestroo
2021-09-29 11:47:11

@Wilco Bonestroo has joined the channel

JeffS
2021-09-29 21:42:40

I moved my back GPS ahead by 8cm. That should put it directly over my baselink. I was thinking I could feed my front GPS into a second copy of gpsodom.py and tweak the code until it reports the same as base_link.

Then I just had an inspiration. I can play back a random bagfile, feed the front GPS in to a second copy of gpsodom.py and tweak the code until it reports the same as baselink. So If I playback this file: https://tractorautomation.slack.com/files/U01LCR21M8B/F0266G8GB8D/screenshotfrom2021-06-2520-26-05.png?originteam=T8WP3RHH7&originchannel=Pbrowse-channel-files|https://tractorautomation.slack.com/files/U01LCR21M8B/F0266G8GB8D/screenshotfrom2021-06-[…]ginteam=T8WP3RHH7&originchannel=Pbrowse-channel-files And when I get it tweaked, those plots should be on top of each other. I can test it without driving...

JeffS
2021-09-30 17:18:50

I have been fighting with tools again.

Plot Juggler has decided that the time slider bar will not let me scroll back and forth in a plot. (sometimes) It may be because I am recording a new bagfile from a bagfile playback. Or because I am specifying a start time and duration in the bagfile playback when I convert. Or my new node (a second copy of gps_odom.py) is screwing up everything. It works just fine on the orignal bagfile I started with. So it is something I did that breaks it.

I am getting some correction of the GPS mounting location to work. I seem to be able to get the vertical (latitude direction) to work. But my horizontal (longitude direction) is off. It might be because my front GPS is running moving-baseline instead of RTK. I have to move one wire to switch from moving-baseline to RTK. (selects source of correction data) But I then lose my source of heading that I was using. My bno055_heading message is in the same format, so I may be able to substitute that.

Or I may just be confused and I am missing something...

JeffS
2021-10-01 10:24:33

Here is an issue with Al's velocity control. The joystick says 0.5 m/s (for whatever reason) but the reported velocity is 1.0 m/s.

We can discuss this in the meeting today. But here is a picture for reference.

JeffS
2021-10-01 10:38:27

Here are the results from my attempt to offset the GPS based on location.

The first plot is the back and front antenna zoomed out. The second plot is zoomed in to the bottom. The third plot is zoomed in to the top.

As I was typing this I realize what the problem is. I specified the horizontal offset as 0. So it did no correction in the horizontal direction. So I am missing something...

🥴 Al Jones
JeffS
2021-10-01 10:49:34

This is what I attempted to do. Which only corrects for front to back distance and not side to side. (As shown in plots.) But I know what to look at now.

The values of 0.0 and .067 are the offsets from the baselink to GPS transform. ``` #Convert from lat/lon to x/y (x is East, y is North) _xg0, _yg0 = gc.ll2xy(data.latitude, data.longitude, _GPSoriginlat, _GPSorigin_lon)

    _xg = _xg0 - (0.0 ** math.sin(self.heading)) # Longitude
    _yg = _yg0 - (0.67 ** math.cos(self.heading)) # Latitude```
JeffS
2021-10-01 15:48:36

I wrote a node to convert forwardvelocity, rotationalvelocity, wheel_base to radius and angle. I ran this on Al's latest bagfile. I will put the code in a thread. And put some plots in the thread.

JeffS
2021-10-01 15:51:00

*Thread Reply:* Here is the code I ran ```#!/usr/bin/env python

fvelrvelto_angle.py

import rospy import math from std_msgs.msg import Float32

WHEELBASE = 1.27 # In radians

class MainClass(): def init(self):

    # rospy.init_node('fvel_rvel_to_angle', anonymous=True)
    self.relpos_sub = rospy.Subscriber('/speed', Float32, self.speed_callback)
    self.relpos_sub = rospy.Subscriber('/bno085_rotvel', Float32, self.rotvel_callback)
    self.pub_angle = rospy.Publisher('recovered_angle', Float32, queue_size=1)
    self.pub_radius = rospy.Publisher('recovered_radius', Float32, queue_size=1)
    self.rotvel = 0.0
    while not rospy.is_shutdown():
        pass
    # rospy.spin()

def rotvel_callback(self, msg):
    self.rotvel = msg.data # Save for later

def speed_callback(self, msg):
    speed = msg.data
    rotvel = self.rotvel # Get a local copy
    if (speed == 0.0) | (rotvel == 0.0):
        angle = 0.0
        radius = 0.0
    else:
        radius = speed / rotvel
        angle = math.atan(WHEELBASE / radius)
    self.pub_angle.publish(angle)
    self.pub_radius.publish(radius)

if name == 'main': rospy.loginfo("fvelrveltoangle.py") rospy.initnode('fvelrveltoangle') nodeobject = MainClass() #try: # talker() #except rospy.ROSInterruptException: # pass``` I ran this against the bagfile. (2021-09-26-17-40-23.bag) Al should be able to include this to his launch file and create this in real time.

JeffS
2021-10-01 16:06:37

*Thread Reply:* Here are some plots. The first one shows the output of recoveredangle and recoveredradius. They are much noisier, but I zoomed in... The second plot shows joystick steer request, front angle target, front angle raw, and recovered angle.

At the time I have selected your joy is asking for 1.0. You scaled that to 14000, The steering looks like it is tracking at 13946. The recovered angle at that time is 0.8885 radians (50.91 degrees)

Coincidentally, when I manually converted a single point of the previous bagfile, I got the exact same number. They should not match that close but it shows I apparently got this right.

So that says 1.0 -> 14000 -> 0.8885 radians

So I would scale the modifiedcmdvel of +/-0.8885 to +-14000. Or more specically:

if cmd_vel.z < 0 map(0, -0.8885, 0, -14000) else map(0, 0.885, 0, 14000)

Or however that map command works. You already have a command mapping +/-1.0 to +/-somesteeringvalue. Just use the new numbers.

And make sure you limit the travel of the steering if TEB planner puts out too big of steering angle number...

JeffS
2021-10-08 17:44:44

*Thread Reply:* @Al Jones This is the thread with the fvelrvelto_angle.py node.

👍 Al Jones
JeffS
2021-10-11 12:17:16

*Thread Reply:* @Al Jones In the code above, change while not rospy.is_shutdown(): pass # rospy.spin() to # while not rospy.is_shutdown(): # pass rospy.spin() otherwise it chews up massive amounts of CPU time.

Al Jones
2021-11-28 13:11:03

*Thread Reply:* @JeffS In "fvelrvelto_angle.py" you have WHEELBASE = 1.27 # In radians Is the comment "In radians" correct? I'm not sure how to translate a linear measurement (e.g. 48" wheelbase) to an angular measurement in radians. Any suggestions?

JeffS
2021-11-28 13:14:00

*Thread Reply:* No, that should say meters.

👍 Al Jones
Al Jones
2021-11-28 15:14:12

*Thread Reply:* I updated the wheelbase to 48" (1.219 meters) and used Jeff's fvelrvelto_angle.py node

JeffS
2021-10-02 01:10:46

I figured out why the time slider on Plot Juggler does not work on my new bag files. I think the time stamp on my new topic I created has a time/date that is days or weeks newer than all of the previous data. I have tried several things to fix it. But I'm done fighting for tonight. Maybe tomorrow...

JeffS
2021-10-03 08:40:45

I still haven't figured out the time slider on Plot Juggler. But it does have something to do with merging old and new time stamps.

I made a breakthrough on remapping the GPS antenna location. It looks right but I haven't verified that mapping GPS antenna to base_link is really what I should be doing...

``` #Convert from lat/lon to x/y (x is East, y is North) xg0, _yg0 = gc.ll2xy(data.latitude, data.longitude, _GPSoriginlat, _GPSorigin_lon)

    _xg = _xg0 - (0.67 ** math.sin(self.heading)) # Longitude
    _yg = _yg0 - (0.67 ** math.cos(self.heading)) # Latitude```

I put the offset distance into both lines of code and instead of just one (like I posted on Friday). I currently have an offset error of around 7 - 8 cm. But I told it the distance from front antenna to base_link (0.67m) . But I am actually using the back antenna and front antenna as reference so the distance should have been 0.75m. So that accounts for 8cm of error.

The first plot shows the front antenna with NO correction mapped to the back antenna. The second plot is the front antenna WITH correction mapped to the back antenna. The second image is zoomed in versions of the top area and the bottom area.

So I think I have gpsodom reporting the location of baselink even though the antenna is offset. I haven't checked what this does to transforms...

Looks like the Sun is up. I should go do some driving around. Or take a nap.

JeffS
2021-10-03 08:59:26

When I zoom in I see my GPS (uBlox F9P with RTK corrections) has more jitter than I would prefer. I was concerned that gpsodom.py was introducing the jitter. So I plotted the direct GPS Lat/Lon and the output of gpsodom.py side by side. I turned the dots on so I could see the individual samples. I decided they look the same.

It would help to speed up the output rate of my GPS. It is currently set to 5Hz. I think I can just tell it to run at 8Hz and it should work with 4 satellite constellations. I think it said somewhere that if I run 3 constellations that I can run at 10Hz. (So I could throw out Baidou. Or it may be disabled anyway.) And I "think" it said that if I run just the GPS satellites that I can set it to 20Hz. I'll have to verify those references to see if it really says those things. And it would be interesting to see how accurate it will be with just GPS satellites enabled.

JeffS
2021-10-03 09:15:12

I gave a description at the end of last Friday's meeting of what I was trying to do with the GPS location remapping. It was after Juan and Al had signed out, so I am the only one that has seen it. The time stamp for that section should be on the index in the video description.

Here is a link to the YouTube channel, in case people didn't know we have a new Lawn Tractor Automation YouTube channel. https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/featured

YouTube
🙌 Juan Eduardo Riva
Juan Eduardo Riva
2021-10-04 05:14:09

*Thread Reply:* sorry for having to retire last Friday. I'm really going to have to spend a lot of time on plotjuggler because I see that it is very useful .. So .. As main debugging tools .. would they be rosbag and plotjugler only or is there something else ..?

JeffS
2021-10-04 15:22:40

*Thread Reply:* I use whatever seems appropriate.

RVIZ, either live or a bagfile playback.

The RQT plot programs. (either live of bagfile playback)

Convert bagfile to .CSV files. This is good for viewing/plotting a single topic at a time. https://pypi.org/project/cnspy-rosbag2csv/ https://github.com/AtsushiSakai/rosbag_to_csv (One of these works better than the other. But I forgot which one.) Then you can view/plot them in Excel. And you can do further calculations with the CSV values as input. So, for instance, we could take Al's bagfile and create wheel odometry from his wheel encoder messages.

I use Plot Juggler to view bagfiles. There may be a way to do more calculations in Plot Juggler (like you would do in Excel) but I haven't figured that out.

I think Al said he is able to watch real time ROS topics in Plot Juggler. I haven't tried that.

And sometimes you just have to watch topics scroll by when using "rostopic echo".

PyPI
Stars
160
Language
Python
Hare Shara
2021-10-03 12:46:01

@Hare Shara has joined the channel

Bob Hassett
2021-10-03 13:53:05

Is there a larger picture, less pixilated, of Al’s lawntractor?

Bob Hassett
2021-10-04 15:40:13

*Thread Reply:* Thank you @JeffS !

JeffS
2021-10-05 17:45:29

Here is the link to the OpenCV AI YouTube channel: https://www.youtube.com/c/OpenCVAI

If you search the channel for "agriculture", several videos show up.

YouTube
Bob Hassett
2021-10-07 19:11:04

@JeffS thank you. Very timely, at least for me. I’m starting to look at CV on the Jetson Nano 4 G. Just need a couple little items before I start smoke testing ;-)

JeffS
2021-10-08 10:43:12

Here are some images for reference. This one shows the front GPS antenna remapped over baselink. The blue line is the back antenna, which has been remounted directly over baselink. The red line is the actual location of the front antenna. The green line is the front antenna remapped over baselink. So you can see both antenna are reporting as baselink location.

JeffS
2021-10-08 10:46:28

I was pondering if the angle created by wheel odometry is the same value as the angle created by converting foward velocity and rotational velocity to an angle. This plot shows they are not. In the first image the blue line is the odometry angle. The red line is the recovered angle.

JeffS
2021-10-08 10:51:07

These are plots of recovered angle while driving around. By noting the steering PWM value and recovered angle I can scale the steering. The first image is the path driving around. The other other images are going straight, turning right and turning left.

Ross VonFange
2021-10-10 21:11:20

@Ross VonFange has joined the channel

Bob Hassett
2021-10-10 21:17:07

Welcome Ross!

Ross VonFange
2021-10-11 09:45:03

Hi all/Bob! Jeff thanks for the invite to get back involved in this group.

JeffS
2021-10-13 01:05:48

I have figured out several things. Depending which [GPS] driver you pick, you will get different topics published. That is obvious up front.

The nmeanavsat driver publishes a /heading topic which is a quaternion. The ublox driver does not. So I had to create a /heading topic. More subtle, the topics may not be defined the same. The nmeanavsat driver publishes /vel and /heading in NED format. The ublox driver publishes /vel and /navheading in ENU format. So you have to do some digging to figure this out.

I told Al that the new Plot Juggler will convert a quaternion to Euler angles, but it is pain and not worth doing. I played with it some more and figured out how to use it. So I guess it is usable.

I was also complaining that if I do a screen dump that I don't which file it was created from. The new version of Plot Juggler fixed that. The file name is now shown at the top of the list of topics. (See below)

And I found out that if you have a subset of topics selected and want some more, you can reopen the file and click a few more topics and they will be added to your list. I always assumed I had to close everything and reopen the file...

And... I found out I can run a second copy of Plot Juggler at the same time. (See below) I have my bagfile on the left and Al's bagfile on the right.

JeffS
2021-10-13 12:40:51

I just got an email that says: ```The lawn_tractor team on the "Robot Agriculture" organization has been deleted.

Cheers & Octocats, GitHub Support``` So it looks like the systematic deletion of ROS Agriculture is continuing... The original YouTube videos are still there, for the moment.

Bob Hassett
2021-10-13 13:06:47

*Thread Reply:* Can’t help but think some people want to monetize available information?

Ross VonFange
2021-10-13 12:48:06

Is the git cloned elsewhere?

Ross VonFange
2021-10-13 12:52:51

This might be already known, but for YouTube it's possible to download the videos however the copyright part could be an issue unless there is written transfer/permission by the creator.

JeffS
2021-10-13 13:36:04

I went through the git page and cloned things I thought I might want. The page is still there if you want to clone or fork images.

A quick look at a couple of respositories look like they have been forked numerous times. So it might be able to search in the future and find copies of things.

JeffS
2021-10-13 13:49:55

Ardusimple announced a new RTK receiver. Seems to have much better specs that the F9P based board. It does appear to be about 3x the cost. But I no longer have money to spend on the latest toys. https://www.ardusimple.com/simplertk3b-receivers/

ArduSimple
Hugo Rafacho
2021-10-13 13:59:12

@Hugo Rafacho has joined the channel

JeffS
2021-10-15 13:03:19

This is the link to the wheel odometry message that I mentioned in the meeting. https://answers.ros.org/question/249001/yaw-problem-for-imu-fusinon-in-robot_localization/

Ross VonFange
2021-10-18 15:04:40

Anyone know of any foss raspberry pi board hats that would make a good integrated ag display (preferably with canbus)? I was looking for something similar to https://i-carus.com/shop/126/

JeffS
2021-10-18 19:20:16

That is an interesting point. I didn't know that type of integration existed. I knew you could piece modules together to come up with the equivalent. I.e., A random RPi, an LCD display, power supply, various interface modules. It seems that if you had the right search terms then may may find tons of solutions. But I can't find search terms to locate anything. I tried HMI (Human Machine Interface) but that didn't bring up much. (some software solutions) I tried "raspberry pi car computer" and didn't find anything good. Anybody have suggestions for search terms?

Bob Hassett
2021-10-19 11:27:42

How about https://linuxgizmos.com/automotive-hat-offers-canbus-and-12v-5v-converter/

LinuxGizmos.com
Written by
Eric Brown
Est. reading time
2 minutes
Ross VonFange
2021-10-19 12:47:23

That looks pretty nice. What I think would be a low cost short cut but probably not doable is one of those low cost Atoto A8 car double din radios and somehow getting Ubuntu to run on them. They typically have a touch screen, video in, a couple gpio, canbus (for steering wheel controls), etc. and sice they are mass produced they can be purchased for about 200USD. I guess for now I'll stick with my tablet and a USB to can adapter. Maybe I'll roll a raspberry board for a winter project once the crops are all cut.

Bob Hassett
2021-10-19 14:57:56

What do you want to control?

Ross VonFange
2021-10-21 14:21:27

*Thread Reply:* I'll try to write some stuff up this weekend. That's a tough question right now ...

JeffS
2021-10-21 13:42:31

I used Mat Sadowski's write-up for robotlocalization using GPS only: https://msadowski.github.io/ardusimple-ros-integration/ https://github.com/msadowski/ardusimple_rover (I'm not sure he had the firmest grasp on the F9P and its ROS driver. Or I may be missing something.) I copied his config files and changed a couple of names to match. I copied a couple of things from his launch file. It was starting to rain so I quickly drove around the front yard. Two circles and two squares. The first image is the back antenna, the front antenna and something called /gps/filtered (I'm not sure what that is but I was publishing it.) The second image shows the offset in meters. The purple line is /odometry/filtered. The blue line is /odometry/gps. I "think" the blue line is the EKF filtered position. But I'm not sure. The whole plot has an odd rotation and the origin appears to have started where I turned on the robot. It may have set the rotation based on that. So I got past the first step of making something work. Next steps: I see I can add a parameter to set an origin where I prefer. That may fix the overall rotation also. I need to turn my gpsodom.py back on so I can compare to that. Check to see if the GPS antenna is being mapped over base_link.

Maybe I can do some more testing today...

🙌 Juan Eduardo Riva, Al Jones
JeffS
2021-10-21 13:56:11

I just noticed something... I don't get the zoom scroll bar on Slack when I zoom in to an image. Maybe if I restart the compute that will come back? Or maybe they thought people don't really want the ability to view an image the way they want?

Juan Eduardo Riva
2021-10-21 14:11:19

*Thread Reply:* I download the images.. I will try to repeat your work in the sim

JeffS
2021-10-21 18:46:40

Sometimes it pays to look at the obvious. I had numbers in the wrong fields in the statictransformbroadcaster. Maybe next time I run it will work better. static_transform_publisher x y z yaw pitch roll frame_id child_frame_id period_in_ms I had &lt;node pkg="tf" type="static_transform_publisher" name="base_link_to_gps0" respawn="true" args="0.0 0.0 0.0 -0.08 0 0 base_link gps0 100"/&gt; &lt;node pkg="tf" type="static_transform_publisher" name="base_link_to_gps1" respawn="true" args="0.0 0.0 0.0 0.67 0 0 base_link gps1 100"/&gt; It should be &lt;node pkg="tf" type="static_transform_publisher" name="base_link_to_gps0" respawn="true" args="-0.08 0.0 0.0 0.0 0.0 0.0 base_link gps0 100"/&gt; &lt;node pkg="tf" type="static_transform_publisher" name="base_link_to_gps1" respawn="true" args="0.67 0.0 0.0 0.0 0.0 0.0 base_link gps1 100"/&gt;

JeffS
2021-10-21 20:11:06

My latest run. The first image on the left is back GPS, front GPS and the GPS output from robotlocalization. The right side is the 4 outputs from my gpsodom nodes. The middle image on the left is the incoming GPS converted to offset in meters and the ekf output. The right side is the ekf output and the back antenna remapped to base_link. You may see an offset when moving vertical but not horizontal. The third image on left side is zoomed in so you can see the offset. The right side shows that the path is referenced to my origin I defined in my yard.

After I fixed the static transform broadcaster values I may get better results next time. At this point I am not sure if the navsattransform/robotlocalization pair is remapping the GPS antenna to base_link.

JeffS
2021-10-24 21:28:50

I changed the parameters on my two ublox F9P to output 10hz instead of 5hz. I changed the constellations down to just GPS and Glonass. And I set output to 10hz. The output looks awfully noisy. I will probably set it back to 5hz with GPS+Glonass+Galileo and see if it calms down. (I am so confused...)

JeffS
2021-10-24 21:30:03

Oh!!!! The zoom scroll bar came back...

Juan Eduardo Riva
2021-10-25 08:47:56

*Thread Reply:* strange noise.. I use just GPS and Glonass.

JeffS
2021-10-25 11:33:17

*Thread Reply:* I don't why it is doing that. I will switch it back to GPS-Glonass-Galileo at 5Hz. (I can get correction for those 3). And see if goes back to something usable. If I want to play I could just change the sample rate and see if it improves. Or a whole series of experiments. But I know it was working well before, so I will probably just go back to that.

JeffS
2021-10-26 14:25:39

I added the latest index for ROS Agriculture here. (166 of 250) And I am going to try to keep the Lawn Tractor Automation file updated weekly. That way there is central site to search the Lawn Tractor meetings. http://sampson-jeff.com/RosAgriculture/

Al Jones
2021-10-28 08:39:21

Anyone seen this before? https://mushr.io/ @Juan Eduardo Riva Note there is a reference to "classroom ready". Made me think of some of the things you have mentioned before.

mushr.io
Al Jones
2021-10-28 08:39:36

No GPS though 😞

Juan Eduardo Riva
2021-10-28 08:43:47

No, first time to see it and GPS is a must

JeffS
2021-10-28 22:08:51

A couple of things. I changed my GPS back to 5Hz update rate. It didn't completely fix my problems. So maybe the sample rate wasn't really a problem. The first image shows the 5Hz which can be compared to the 10Hz image I posted last week.

I still have a weird offset between the gps_odom output and the ekf output. At the moment I am totally baffled as to why. The second image shows that.

Juan Eduardo Riva
2021-10-29 06:05:12

*Thread Reply:* Jeff, excuse me but next time you could do left, right and straight .. Because looking at it it seems that it does it only when it turns, or am I wrong ..?

JeffS
2021-10-29 21:07:10

The offset I am seeing is on the image at the far right. The offset is there if is going straight (sometimes) and when it is turning (sometimes). I will have to dig some more.

JeffS
2021-10-29 21:18:49

It is getting cold outside. I want to have a simulator for this Winter. Nine months ago I played with the picar Gazebo simulator. This might be what I started with: https://gitlab.yonohub.com/mohamedahmed/picar My post from 9 months ago: https://tractorautomation.slack.com/files/U01LCR21M8B/F01LRAR0FPG/peek_2021-02-03_22-47.gif

I played awhile tonight. I got it running again. Here is a screen shot. One window is Gazebo with the car driving in a circle. The bottom window is a command line publishing an Ackermann message to make it move.

I guess the next step is to resize things (wheels and frame) to match my mini tractor. If I get that to work and be controllable, then I will add in the sensors (dual GPS, IMUs...)

GitLab
🙌 Juan Eduardo Riva
JeffS
2021-10-30 01:23:50

I decided the URDF file for that example is more complicated than I would prefer. I found a couple other cleaner examples: https://www.youtube.com/watch?v=gPNLd4F7HPA https://github.com/robustify/audibot

https://www.youtube.com/watch?v=m8aK8_DIIeo https://github.com/mfilipen/autonomous-mobile-car-like-robot

I think I will play these when I get a chance. And at the moment I am just looking at examples for a URDF file...

YouTube
} Proelec Guitar (https://www.youtube.com/channel/UCURD3N9TC9OJn0BWRf2J8oA)
YouTube
} mfilipenko (https://www.youtube.com/user/maxfq3)
Stars
17
Language
C++
Pranshu Tople
2021-10-30 01:26:52

I can make complicated URDF files for you if required. I am expert in that. Just tell me what type of URDF you want

🙌 Juan Eduardo Riva, Pranshu Tople
JeffS
2021-10-30 10:00:35

At this point I am not looking for a complicated URDF file. Actually I want the simplest file I can get by with. At this point I just 4 wheels that is steerable. And then there is the extra support code to make it work. The two examples I quoted are worth looking at for me. One has a single file with the macros embedded. The other the macros separated out. I will look to see which makes the most sense to me and which I think would be easiest for someone else to modify.

So the most important thing to me right now is just figuring out how to do this so I can change and add to it. Hopefully if I get something that I am happy with then somebody else can measure their machine and use those numbers to create a simulation close to their own machine. People can always expand thier model with bells and whistles. And fancy meshes to make them pretty.

But I will keep in mind that you can answer questions on this...

JeffS
2021-11-01 00:21:33

I don't mean to complain... But I am going to...

A few days ago GoDaddy sent me an email saying they are moving my email to a new system. It was free for 10-20 years. But after a trial period, it will now have a monthly fee. I spent an hour or two trying to set up a free gmail account. Yes, I know they are going to steal my information. But after going around in circles for a long time, I now have a brand new gmail account. I told my pobox.com (jsampson@pobox.com) to forward to my new gmail account. That seemed to work. Now I have to figure out how to get Thunderbird to download from my gmail account. Then I have to figure out how to delete my GoDaddy email account.

Years ago GoDaddy told me that they will silently delete random messages and not bother to tell me about it. (And they were were proud of that.) So I added a Yahoo email account as a backup. So basically both my GoDaddy and Yahoo were both redundant backups. Occasionally I would start an old copy of Thunderbird to download all of the email for archival backup.

Now I need to configure Thunderbird to download the gmail account. THEN I can delete both GoDaddy and Yahoo accounts...

I hate computers!!! And the idiots behind them... (On Twin Cities Robotics Group they have heard for 20 years that I hate computers.)

So if I sound grumpy that is why. (Oh, and the Minneapolis city elections, which is now out of the way for me.)

Juan Eduardo Riva
2021-11-05 10:02:23

Yeahhhh, After a long time and problems I was able to run again and recover all the work in the simulator

Juan Eduardo Riva
2021-11-05 10:07:02

*Thread Reply:* @vinny ruia I really appreciate the work you did with this. It is the tool that most helped me to learn

🦾 Juan Eduardo Riva
🙂 vinny ruia
JeffS
2021-11-05 17:06:32

Here are some of the things I was talking about in today's meeting: Video to verify Ackermann steering: https://www.youtube.com/watch?v=WlFdLkD3wa8 The one where he says "I get tired of no documentation": https://github.com/chrissunny94/ackerman_ros_robot_gazebo_simulation

YouTube
} Jonathan Sprinkle (https://www.youtube.com/user/jmscslgroup)
Stars
21
Language
C++
JeffS
2021-11-05 18:33:39

Here is an image with wire frame and the joints turned on. Maybe tonight I will attempt to move the wheels out where they are supposed to be. And delete the shock absorbers and any other suspension.

👀 Bob Hassett
Juan Eduardo Riva
2021-11-06 05:40:42

*Thread Reply:* nice

JeffS
2021-11-06 14:46:51

Let's try this. A post for our last meeting. 11/05/2021 https://youtu.be/d6QbVnTnmNg Chat: Jeff: Al's code for today: https://gist.github.com/jones2126/a9575cdda87b2b3c8ba431b9f38b8449 Index: 00:00 Jeff: Talks about the meeting recording process. 01:25 Juan: Shows his small model robot. 03:15 Al: Asks if Juan's new robot will have GPS. Juan talks about his GPS setup. (Birds eating cables.) 06:15 Juan: Shows his ROS-Agriculture simulator running again. Talks about simulated GPS in Stage simulator. 09:25 Juan: Talks about mixing physical hardware with a simulated vehicle. 11:30 Juan: Talks about connecting a physical folder to a docker image. 15:00 Al: Talks about his transmission control software. (See link in chat.) 24:45 Jeff: Talks about creating a 4-wheel Ackermann vehicle for Gazebo. 33:25 Discussion about random ROS versions. 34:55 Al: Asks if anyone has found the one video or tutorial that explains everything about URDF files. 46:10 Different levels of simulation. 51:45 Juan: Talks about using a physical accelerometer as an input controller.

YouTube
} Lawn Tractor Automation (https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ)
Bob Hassett
2021-11-06 17:22:43

Nice!

JeffS
2021-11-06 17:37:03

I have been playing with my Gazebo model. I removed the shock absorbers and made the front wheels smaller. When It complains, and I patch things out, I notice this model is 4-wheel drive. I may try to remove the drive from the front wheels and let them freewheel.

I was trying to level the chassis by raising and lowering the front end. I was baffled why making the number positive or negative it still looked the same. Then I noticed the vehicle was flipping upside down when it started. It is probably something to do with weight distribution.

So I will keep playing with it.

JeffS
2021-11-07 13:30:41

@channel We just had a time change in the USA. We set our clocks back 1 hour. So the Zoom meeting next Friday will be off by one hour. If you are not from the USA, check the time on the East coast to verify the time. The meetings are at 12:00 noon Eastern time. https://time.is/New_York

🙌 Juan Eduardo Riva
👍 Bob Hassett
VKuehn
2021-11-08 16:24:01

not joining the meetings in time (fast forwarding on you tube) right now but good to know the silly time change happens also over there 😉

JeffS
2021-11-11 18:14:36

I want to create an articulated front axle in Gazebo. Lawn tractors and full size tractors have a front axle that pivots in the center. So as you drive over uneven ground the front wheels follow the contour of the ground. If you don't have the pivot, and you define a rigid frame, then only 3 wheels will stay in contact with the ground. If the front axle can pivot then all wheels will stay in contact with the ground.

I assume I can create a "revolute" joint to allow the axle to rotate. But I want it to have zero resistance. So I don't have to specify a speed or position or force, I just want the wheels to follow the ground due to physics.

Can I specifiy a control method (like force) and set the gain value to 0?

I can't seem to find a search term that gives me what I want...

Juan Eduardo Riva
2021-11-11 19:15:08

*Thread Reply:* Which soft you are using..?

JeffS
2021-11-11 19:17:46

*Thread Reply:* I am currently using Ununtu 16.04, ROS Kinetic, Gazebo 7. So I am trying to define this is a urdf(xacro) file.

✅ Juan Eduardo Riva
Al Jones
2021-11-12 07:24:35

*Thread Reply:* sharing fyi

👀 Juan Eduardo Riva
Juan Eduardo Riva
2021-11-12 07:43:21

*Thread Reply:* Thanks @JeffS; but I was asking what software do you use to make the drawing and create the element in the simulator.

Hugo Rafacho
2021-11-12 08:30:38

*Thread Reply:* I think you only need to put a revolute joint in xacro file and it will behave like a passive joint.

🙌 Juan Eduardo Riva
JeffS
2021-11-12 14:12:09

*Thread Reply:* @Hugo Rafacho I will try creating a solid axle and adding a joint. I will test it to see if works.

JeffS
2021-11-12 14:13:53

*Thread Reply:* @Juan Eduardo Riva I use a text editor on raw URDF/XACRO text files. You add text, then load it in to Gazebo to see what damage you created.

Juan Eduardo Riva
2021-11-12 09:46:40

I'm in the middle of nowhere. Sorry I'll no be able to join today.

👍 Al Jones
JeffS
2021-11-12 10:41:09

The meeting starts in 20 minutes, if you haven't figured out the time change...

JeffS
2021-11-12 16:21:06

Here is the info from today's meeting.

11122021 Lawn Tractor Automation meeting https://youtu.be/eRP3C9cVFws Chat: Jeff: Code I started with: https://gitlab.yonohub.com/mohamedahmed/picar Al: https://github.com/prl-mushr/mushr/search?q=urdf Index: 00:00 Al: Shows an R/C car he is looking at. 02:20 Al: Talks about lawn tractor progress. 06:10 Jeff: Talks about models created for Gazebo. Lots of rambling conversation on Gazebo and versions. And how the navigation software fits in with the simulation.

YouTube
} Lawn Tractor Automation (https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ)
GitLab
Bob Hassett
2021-11-15 22:09:06

You’ll have to excuse me but I need to rant about my journey with the Jetson Nano. I found what I thought was a good series of lessons called “AI on the Jetson Nano”. I watched all the lessons several times and thought that was just what I needed. Working through them Was frustrating and Wrong. The lessons started 2 years ago. The author steps thru all the lines of instruction…do this …do that. The problem was he didn’t talk to much about which versions he was using. So naturally I was out of syn using current versions.

So now I’ll lick my wounds and start from scratch and just use the Nvidia site while thinking about the concepts from the lessons. Things like using Python, curl, OpenCV and other programs he demonstrated.

End of rant and end of pulling out my hair!

Shrijit Singh
2021-11-18 21:12:39

@Shrijit Singh has joined the channel

JeffS
2021-11-19 12:10:43

We had a meeting today, but we didn't record it. We did talk about why Al's lawn tractor won't start after he drove it in the rain.

Juan Eduardo Riva
2021-11-20 04:48:03

*Thread Reply:* ok, been there with rain and electronics. Check if the usb in the rpi are burned..

Bob Hassett
2021-11-19 15:47:53

Thanks Al for the heads up on new meeting day!

JeffS
2021-11-19 15:54:29

Did I miss something. I didn't see anything about a new meeting day...

JeffS
2021-11-19 17:14:26

I found a meeting invite in one of my SPAM folders...

For everyone else, @channel I interpret this invite to say:

"No meeting next week, due to Thanksgiving holiday in the USA. Meetings will be Thursdays at 12:00 (Noon) USA Eastern time."

I assume the meeting link is the same. (I didn't compare them.)

There probably won't be a meeting Christmas week, but we can decide later.

The message pinned at the top of the General channel should be updated. I don't have access. It could also have the link to the new YouTube channel added.

👍 Juan Eduardo Riva, Bob Hassett
Bob Hassett
2021-11-19 19:32:48

Making progress on my NVIDIA Jetson Nano 4G. The Nano is configured and I can ssh into it from my iPad. Now how much I can actually accomplish/experience is yet to be seen. But it’s a start. I’d like to do some computer vision stuff down the road.

Bob Hassett
2021-11-20 19:25:58

Question….what do you guys use docker containers for? Is it worth the time to learn?

Ross VonFange
2021-11-20 19:50:35

*Thread Reply:* I know long term learning and using it will pay back, but I spent more time than I would like getting it working and that time could have been spent in ROS or other things that actually made progress on my project. There are a couple example projects which use it and they can be easy to setup and run if they are close to what your doing are probably a nice way to jumpstart. Probably not exacly what your looking for but is my 2 cents.

Juan Eduardo Riva
2021-11-21 05:31:57

There are many reasons why docker is used and several are personal issues as with any tool. Personally I tell you that I started using it mainly because the version we use of ros (kinetic) is based on python 2 and today everything is python 3 at least. That version conflict on which the system was based was a mess on my computer. Every time I installed a package something would break. Docker encapsulates the instances in things called containers and what happens there stays there, as with Las Vegas. It is a one-way trip and you have to learn several things, but as I learned over time .. work until your current tool breaks and where you see that you need to use something else to avoid problems, you know what docker is to give you a hand. As that problem happened to many people and due to the difficulty of those configurations, other tools tended to be built on docker and that is why you see it in several places, but the reality is that if you do not have problems you do not need to base your system on the. In my case, I ended up with my robot base completely in docker, also as ros is tricky with network configurations, you can assign a specific network configuration to that docker container, making life a little easier .. I hope I have explained myself .. good luck

Bob Hassett
2021-11-21 06:13:55

Thank you very much.

Al Jones
2021-11-21 12:12:58

No spark at the plug. Debugging.

Al Jones
2021-11-21 12:44:20

*Thread Reply:* Need to figure out how to test this type of charging coil which is the style on this tractor.

Al Jones
2021-11-21 14:04:01

*Thread Reply:* This guy shows how to test the coil https://www.youtube.com/watch?v=TlMqyNVNM6U

YouTube
} Eliminator Performance (https://www.youtube.com/c/EliminatorPerformance)
Juan Eduardo Riva
2021-11-21 12:49:50

One on the side of electrical is that are easier to debug

JeffS
2021-11-21 13:58:38

Why are you looking at your alternator?

Al Jones
2021-11-21 13:59:23

*Thread Reply:* stopped

JeffS
2021-11-21 14:00:53

Do you have a wiring diagram for your lawn tractor? And possibly a diagram/drawing of the wiring harnesses?

Al Jones
2021-11-21 14:02:05

*Thread Reply:* Unfortunately no.

JeffS
2021-11-21 14:11:34

Do you know what the ignition coil wiring look like where it comes out of the engine? You know what the other end looks like, because you have it connected to your relay board to kill the engine. Can you disconnect the wire coming out of the engine? Being efficient, they probably grouped it with other wires I might be able to find something on YouTube...

Al Jones
2021-11-21 14:30:31

*Thread Reply:* I know which wire it is because I tapped into it at wire plug. I will pull the housing off and get a look at the coil.

JeffS
2021-11-21 14:40:00

*Thread Reply:* How did you connect your wire? Were you able to pop the pin out of the connector. If you disconnect the wire from the magneto at that connector then that eliminates everything beyond that point. Well except for the wire you added.

So if it is convenient, pop that out and check for spark. If no spark, disconnect your wire and check for spark.

If you get the cover off, and there is a plug on the magneto for that wire, unplug that and check for spark.

JeffS
2021-11-21 14:42:30

*Thread Reply:* I assume you have tried it without your relay board connected???

Al Jones
2021-11-21 15:39:01

*Thread Reply:* yes.

Al Jones
2021-11-21 15:39:38

*Thread Reply:* Three wires going into the coil.

Al Jones
2021-11-21 15:41:25

*Thread Reply:* Interesting there is no yellow wire into the coil, yet that is the wire I have been grounding for e-stop.

Al Jones
2021-11-21 15:48:44

*Thread Reply:* Where I tap into the ignition for the e-stop

Al Jones
2021-11-21 15:57:20

*Thread Reply:* @JeffS Unplugged the wiring harness going into the coil, turned the engine over, still no spark.

JeffS
2021-11-21 15:57:48

*Thread Reply:* Well, that does not appear to be a magneto, just a "coil" like you would have on a car or a motorcycle. So either it works like an old car with contact points, condenser and is powered from your battery. Or it is using a more modern "electronic ignition" system which would have a "control module" somewhere.

The little black thing in the photo may be a pickup sensor to trigger the spark.

So probably shorting something to ground was not the appropriate way to kill the engine.

JeffS
2021-11-21 16:01:32

*Thread Reply:* I guess the thing to do now is to search for [mower model]/[engine brand]/electronic ignition. And see if anything turns up.

Al Jones
2021-11-21 16:01:56

*Thread Reply:* For what it is worth, I took this photo before unplugging the harness. There is only one metal near-contact point per revolution that comes close to that sensor on the top.

JeffS
2021-11-21 16:42:11

*Thread Reply:* So I'm trying to decipher your spreadsheet here: https://docs.google.com/spreadsheets/d/13iu1SKzC3u8UJB-Z2nUe2jxEUZqns0Dpvobv8dYRnRs/edit#gid=700333408

I see two numbers 13apa1ct056 and 13a9a1cs256. On the parts site I see one has an ignition system page, the other one does not. The page it has shows a magneto. I assume that is your older one (non-EFI). The other has nothing about engine parts. I assume that is your newer one.

So that doesn't tell me anything. So you will either have to find it documented somewhere or trace those wires from the coil to see where they go. They will either go to a module on the engine somewhere or out through the main cable harness. Either way, I would cut your yellow wire that you added in to kill the engine. (because it looks like it killed your engine)

If the wires go all the way back to the "ignition switch" module then electronics may be there (which may fix the problem if that module is replaced). Or you may have damaged your coil assembly or a control module on the engine.

But you should get a better idea of what is there and how it works before you start swapping stuff out.

Al Jones
2021-11-21 16:46:40

*Thread Reply:* 13apa1ct056 (Texas, no EFI, Kohler engine); 13a9a1cs256 (PA, EFI, Cub Cadet/China engine)

Juan Eduardo Riva
2021-11-21 14:13:25

I have the original manual from my club cadet

JeffS
2021-11-21 14:14:38

Does it have wiring diagrams and cable harness diagrams? Or just tell you how to change oil and don't run over your kids? 🙂

Juan Eduardo Riva
2021-11-21 14:23:41

Let me check, I m at the field

Al Jones
2021-11-21 14:28:19

*Thread Reply:* I'm googling "cub cadet wiring diagram model 13A9A1CS256"

Juan Eduardo Riva
2021-11-21 14:24:58

I rmemy having the same problem and searching for ot

Juan Eduardo Riva
2021-11-21 21:49:41

@Al Jones heeeeeeeeeeeeeeeeeere it's main..

👍 Al Jones
JeffS
2021-11-22 20:48:15

As for Al's problem,,, I have a few thoughts:

  1. His current problem may have nothing to do with rain (or it still might).
  2. It still might be a problem with the safety system (all of the switches to shut the engine down).
  3. Since it doesn't have a magneto (either with contact points or without) unplugging the coil assembly isn't going to fix it. It probably has to have 12V applied to it.
  4. Grounding the yellow wire did kill his engine. But that appears to be coincidence.

Think of your engine like a black box. You have (at least) two electrical plugs coming out of the engine. It may be appropriate to try to figure out what each wire does. (More about that below)

On the inside of your black box, figured out what is wired where. The wires from your ignition coil assembly probably goes to an electronics module on the engine somewhere. There are probably wires from your fuel injector assembly. They may or may not got to the same (proposed) electronics module for the ignition coil. Somewhere (a promotional video from Cub Cadet) they suggested you will have an oxygen sensor in your exhaust pipe. That will probably go to the same place the injector wires go. You also have an alternator that will have a few wires. Those may go directly out of the engine black box, or you may have a voltage regulator on the engine somewhere. There may be other things I haven't thought of. (Maybe low oil sensor.)

But the point is you will have surprisingly few connections from inside to outside of your black box. Since your fuel and ignition are both electronic, they have to have power supplied. You also need at least one ground wire across the boundary. Your alternator has to get out to your battery somehow. But if you a voltage inside then maybe there will be a single power charging wire coming out. (Which may or may not go through your ignition switch.)

So what I would do is get a big sheet of paper and draw the connectors, Then draw wires between each connector and pin numbers and label the colors. Look on the key switch and any other modules and see if the pins are labeled. If they are labeled, write that down also. Then try to figure out what each wire might be.

The engine needs a 12V input, and may have another wire indicating it is authorized to run. It looks like your starter solenoid is outside of the black box, and besides it has a huge wire which goes directly to your starter.

The alternator may have a cable harness the directly exits the engine, or as I said before, it may have a voltage regulator on the engine somewhere. Whatever the output of the alternator is, it probably goes through your ignition switch.

But back to your safety system, any one of the safety switches and associated wiring may prevent the 12V or the authorize signal to get to the engine. So check all of those switches and any hacking you have done.

One more thing... It looks like Cub Cadet is trying to "John Deere" people. (i.e., not let the customer repair things) It may or may not be intentional. It is probably because they could get a cheap engine directly from China which saves them money. But it means third party vendors (like Partstree) haven't caught up and don't have parts and diagrams available. Or maybe Cub Cadet will not release that information. But... you may be able to contact Cub Cadet and get wiring diagrams directly. Maybe go to a local dealer and ask to look at their documentation and maybe they be willing to help (if they are bored or think an autonomous lawn tractor is a cool idea).

But for the moment do some poking at the wiring and see what you can figure out.

JeffS
2021-11-22 22:39:57

@Al Jones I had another thought. How do you set the engine speed? Is is a throttle lever like the older mowers had? Or is it some fancy electronic thing?

Here are a couple of searches you may want to dig through. Some claim to have free manuals. I think you probably want an engine manual of service manual. An operators manual may not have enough information. Although the manual Juan has shows wiring diagrams...

I also notice that MTD has a 547cc EFI engine. What are the odds they use the same one?

https://duckduckgo.com/?q=Cub+Cadet+547cc+efi+engine+Manual&t=ffab&ia=web https://www.google.com/search?q=Cub+Cadet+547cc+efi+engine+Manual

JeffS
2021-11-22 23:13:44

Note: These manuals seem a little poorly written... This manual (on page 15) says if it won't start that you replace a fuse. https://manualzz.com/doc/52743160/cub-cadet-lt42-efi-xt1-enduro-series-lt-42-in.-547-cc-fue... It also mentions something during starting about reverse mode operation. What did you do with your reverse switch on your transmission?

This manual (on page 26) says your fuse is in the wiring harness under your seat. https://www.manualslib.com/manual/1146415/Cub-Cadet-Xt1.html?page=26#manual

JeffS
2021-11-23 16:40:56

@Al Jones Hey, check to see if you have Cub Connect App. If you do, see if it tells you anything. https://www.youtube.com/watch?v=x2zrlpJNZoM

YouTube
} Cub Cadet (https://www.youtube.com/c/CubCadetUSA)
Al Jones
2021-11-24 07:31:34

*Thread Reply:* that is a great idea. I never tried to load that before. I will give that a try.

Juan Eduardo Riva
2021-11-25 10:54:17

*Thread Reply:* Lots of data

Al Jones
2021-11-27 09:34:40

*Thread Reply:* Still working through my issue of "no spark". The app seems to no longer be available in the US. There is an EU version, but after installing it seems only EU models are listed and my model triggered an error. I've determined the engine ignition and control system is built by Walbro.com I have a new coil to try. Currently working on installing it. If that does not work I need wait for Cub Cadet to be on-line again to get the wiring diagram.

Juan Eduardo Riva
2021-12-02 14:29:43

Migrating stm32 not easy.. https://community.st.com/s/question/0D53W00000RQMZr/how-to-migrate-the-cubemx-project-ioc-file-to-a-different-mcu

ST Community
JeffS
2021-12-02 15:19:19

I will look at the ST Micro parts after I finish indexing today's meeting.

Juan Eduardo Riva
2021-12-02 15:24:19

*Thread Reply:* Thanks for the help I will install de idea in w10, I think there is something wrong with the app in linux

Juan Eduardo Riva
2021-12-02 15:53:50

*Thread Reply:* I think that the problem is that I was using the wrong software.. it's need to use stm32cubemx

Juan Eduardo Riva
2021-12-02 16:18:24

*Thread Reply:* Yep, I think I was able to compile.. Tomorrow I will have more news

JeffS
2021-12-02 19:30:32

If I go to this page: https://www.st.com/en/microcontrollers-microprocessors/stm32f407-417.html#2 (you "may" have to search for stm32f407 on that page) The stm32f407vg and stm32f407ve look identical to me, except for flash size and operating temperature. Some where there is info on what the last two characters of the part number mean, but I can't find that. Unless you see an obvious conflict of an I/O pin between the two parts (The stm32f407vg on the Discovery board or the stm32f407ve on your board, I would assume they are the same.) But you mat have to go into the IDE and change the CPU type from stm32f407vg to stm32f407ve. It may compile as a vg, but it may not download and run if you don't change it.

STMicroelectronics
JeffS
2021-12-02 19:31:37

@Bob Hassett It appears to work. I had a problem with it pausing for long periods. That went away after I replaced the crappy eStop switch.

Bob Hassett
2021-12-02 19:36:26

*Thread Reply:* Just ordered 2 Ada Fruit radios PID 4074 RFM 95W@915. I wanted to see a display on each end for confirmation and trouble shooting.

Bob Hassett
2021-12-02 19:47:51

*Thread Reply:* This is what I ordered. It will tak awhile to get. BTW How much range where you able to get? Where you just send/receive joystick commands?

JeffS
2021-12-02 20:00:40

The only range test I did was inside the building at work. I think it was about 100 feet through a closed door. In real life I am usually within a few feet of the vehicle when it is running.

Unless I realize that I drove it 50 feet or so down the sidewalk and I realize that if it starts ignoring me... I won't be able to chase it down and hit the manual eStop. That is a sinking feeling.

You can send anything you want but it is low speed. I am sending two dual axis joystick and several switches.

What else do you plan to use with your boards. I see these are designed to plug into a Raspberry Pi. If you use a Raspberry Pi, how do you plan to read analog data at the hand-held remote end?

Bob Hassett
2021-12-02 20:20:07

On the hand held side, Ill use 2 dual axis joysticks. Once that’s ironed out Ill switch to low profile thumb joysticks. For the hand held processor I might use my teensy 3.2. The other radio will go on the Barbie Jeep. Hopefully in the future Ill migrate the electronics on to my tractor. I’m experimenting with the Nvidia Jetson Nano for the vehicle but development with the nano is at a stand still. My laptop crashed. I heard a rumor I might get a new laptop for Christmas. I have to wait until the 25th. :-(( Meanwhile, for the tractor I’m rewiring the control box with smaller gage wire so I can make more space available. I’m also replacing the slow moving actuators with motors but that has a a lot of positioning challenges because I have to use wire and small pulleys.

JeffS
2021-12-02 22:11:33

I looked at those boards you ordered. I tried to find a schematic but again I was reminded that Adafruit has lost control of their process. You can find a schematic as the last page of this PDF: https://cdn-learn.adafruit.com/downloads/pdf/adafruit-radio-bonnets.pdf Its not very readable because they probably pasted it as a JPEG instead of a PNG. But you can make it out if you have a lot of patience. There is a complete .SCH file somewhere, but you have to download Eagle CAD to view it. I tried to complain when I got their BNO055 module. But they made it clear they don't want my advice.

But... the radio is separate which has an SPI interface. The OLED is separate with an I2C interface. The push buttons are separate as individual I/O pins. You can make it work with a Teensy 3.2 if you pay attention to what you are doing. Assuming you can find the OLED driver for the Teensy 3.2.

Let me know when you get the boards and I may be able to guide you...

Bob Hassett
2021-12-03 08:23:12

Thank you Jeff! They are coming by ups ground :-(

Bob Hassett
2021-12-03 08:29:12

This looks interesting but they aren’t built yet. https://www.sparkfun.com/products/14048

sparkfun.com
Bob Hassett
2021-12-03 11:54:22

*Thread Reply:* There is some discussion on the Ada Fruit Forum that Ill start reading.

JeffS
2021-12-03 20:26:18

This is the info from this weeks video meeting:

12022021 Lawn Tractor Automation meeting https://youtu.be/h7t-wrM4FQE

Chat: Al: Walbro EFI overview: https://www.youtube.com/watch?v=Q9agc-7_jqs&t=148s Juan: stm32f407vbtx Juan: Stm32f407vet6 Juan: https://tienda.ityt.com.ar/plataforma-stm32/11345-mini-stm32f407-stm32f407vet6-desarrollo-arm-cortex-m4-itytarg.html?search_query=Stm32f407vet6&results=2

Index: 00:00 Jeff: Says he is too lazy to do anything. 00:30 Al: Shows his "recovered angle" data from his lawn tractor. 05:25 Al: Moves on to why his lawn tractor would not start. 06:00 Jeff: Mentions that Plot Juggler "might" have an option to "average" the values for a plot. 07:00 Al: Asks how acurate the measurements have to be. 07:35 Al: Asks about what he needs to change in his code. 19:10 Juan joins the meeting. 20:15 Juan: Asks if Al can get his lawn tractor to stop. Turns into discussion of vehicle wiring diagrams. 23:45 A discussion of how to stop the engine (on the new fuel injected models). 22:45 Jeff: Questions the original. Was the question about stopping from lack of cmd_vel or about e-Stop? 26:45 Al: Describes about his engine with fuel injection and electronic ignition. 29:50 Juan: Talks about his ST Micro CPU he is is using.

Al Jones
2021-12-04 11:58:38

Tested a map function to use in the steering control low level code. I wanted to desk check the code to make sure it was behaving the way I thought it should. Gist code link

JeffS
2021-12-04 14:52:11

@Al Jones Hey, I just had a thought. Since you have fuel injection and you can't short a magneto to ground to stop the engine (since you don't have a magneto). You could use one of your safety switches. I assume originally your engine would stop if you got off the seat. So you used a shorting jumper to bypass the seat switch. If so...

Remove the shorting jumper from your seat switch and connect it to relay contacts. So when the relay contacts are closed the engine will run. If the relay contacts open then the engine will quit. Look at your original remote control relay board and see if has both "normally open" and "normally closed" contacts. Just use the normally closed contacts and it should work like it did before, without destroying anything. That won't be any "less safe" than your original setup.

Al Jones
2021-12-04 15:06:24

*Thread Reply:* That is a clever idea. As I recall there was an unusual metal piece inside of this socket that once removed allowed the seat safety to be bypassed so I'll need to dig up how this actually works, but the idea is great.

Bob Hassett
2021-12-05 14:39:57

I have 4 motors I’m running on 24 volts. I’m thinking of trying to provide 2 (selectable) sources of 24 volts. One source is from panel mom on-off-on switches. The second source of 24 volts would come from my MDD motor controllers. Sooo, Im thinking I need a DPDT relay for each motor. Ideally they would be activated by GPIO pins from a Teensey (3.2)? Less than 20ma? How about https://www.tindie.com/products/bugrovs2012/8-channel-i2c-solid-state-relay-module-v20/?

Tindie
Bob Hassett
2021-12-05 14:41:44

So my question is what kind of relays are people using? Is there a better solution than DPDT relays?

JeffS
2021-12-05 15:06:23

First, did you already but that board you are showing?

Bob Hassett
2021-12-05 15:07:19

Did not purchase. I’m still researching.

Bob Hassett
2021-12-05 15:19:08

Upon further review….maybe I could just reverse my manual on off on toggle with the panel on -off on. So the off on the toggle goes to the motor.

Bob Hassett
2021-12-05 15:23:22

Something like this…. Then I could control each channel individually?

Bob Hassett
2021-12-05 15:24:42
JeffS
2021-12-05 15:28:29

If you look a little harder, you will notice these are for AC and not DC. Those modules are probably equivalent to SPST. Also that board has an I2C interface and an I/O decoder chip to turn individual relays on and off.

You can buy relays that are buffered so you can drive them form logic signals. On places like eBay and Amazon and lots of others. https://www.ebay.com/sch/i.html?_from=R40&_trksid=p2380057.m570.l1311&_nkw=arduino+relay+module&_sacat=0

https://www.amazon.com/s?k=arduino+relay+module&sbstp=n&ref=nb_sb_noss_1

Or can get bare relays but you might have to wire up a driver circuit to convert 3.3V logic to the proper voltage and current to drive the relay coil.

https://www.ebay.com/sch/i.html?_from=R40&_trksid=p2334524.m570.l1313&_nkw=relay&_sacat=0&LH_TitleDesc=0&_odkw=relay&_osacat=0

https://www.ebay.com/sch/i.html?_from=R40&_trksid=p2334524.m570.l1313&_nkw=dpdt+relay&_sacat=0&LH_TitleDesc=0&_odkw=relay&_osacat=0

Another option is to connect your motors directly to your driver boards and just control the input to the driver.

I didn't realize we ar designing this in the fly... I'll see what you just posted and then wait awhile for it to calm down.

Bob Hassett
2021-12-05 15:35:56

Sorry about the rush to judgement. ….I’ll have a need for more relays later on so all of your suggestions are good to know ahead of time. I’ll definitely use them. Thanks!

JeffS
2021-12-05 15:42:18

But, back to the point of connecting your motors directly to your power drivers... That eliminates high power switching (either switches or relays). Connect the motor driver input directly to your Teensy (or what ever you end using). Then your Teensy decides where to get its inputs (switches, joysticks, USB commands).

The downside is that the Teensy will always have to be powered up. But it eliminates big parts and extra large wires.

Bob Hassett
2021-12-05 18:58:54

Sounds good. Ill give it a try.

Ross VonFange
2021-12-06 21:33:38

@Bob Hassett how big are your motors? These are 12VDC coils and decent amperage rating in a single bridge package. https://www.waytekwire.com/item/77010/Cole-Hersee-24452-Forward-Reverse-Relay-Module/

They might also make them in other coil voltages

waytekwire.com
Bob Hassett
2021-12-07 07:53:20

*Thread Reply:* Hello Ross. Thank you for the suggestion. They are kinda pricy for my limited budget. The motors are rated at 36 volts and I’m trying to run them at 24 volts by way of a step up 12 volt to 24 volt. The problem seems to be that the step up is only putting out 14 volts. The motors are just being used in a limited capacity not heavy continuous duty.

JeffS
2021-12-07 16:22:36

@Bob Hassett To address your question (that you deleted)... It is very likely your 12v to 24v converter doesn't like the startup surge from your motor. I assume you have a toggle switch between your converter and the motor. When you flip the switch on (at zero speed) you probably get a 20-30 amps surge and the converter thinks it is a short circuit. So it goes into fold-back current limiting. Or the converter has shut down and is just passing the input voltage through. You didn't mention if your are connected to an actual battery or a power supply.

I had a 12v to 24v converter and I didn't see it shutting down. But I wasn't logging output voltage. I took off the converter to slow down the motor max speed.

If that is the problem, you might get around it by ramping the motor power so you don't get a huge surge. You can use your Teensy and power driver to do that.

Bob Hassett
2021-12-08 05:44:01

@JeffS thanks for the suggestions and insight. I’ll dig deeper. BTW my radios arrived! Now the big time hair pulling time begins. I’ll use my pi and follow the AdaFruits setup at first. Just hope we continue to get really cold temps so I am “forced” to stay in the house.

JeffS
2021-12-09 15:07:56

Video meeting today:

12092021 Lawn Tractor Automation meeting https://youtu.be/FxT_4zGoBmw

Chat: Juan: https://www.linkedin.com/in/lucas-daniel-larroque-mart%C3%ADnez-2aa76a15b/ Al: https://gist.github.com/jones2126/78fc852caee9d10e5108e64422993657 Al: https://docs.google.com/document/d/19BwoQ0tGbLQzXHREdpmU91daD2YybY-LSbKjXs8yGow/edit?usp=sharing Al: that is the Arduino-cli note Al: 2021 RPi image build https://docs.google.com/document/d/1e_G5wbIG-_NvdfubZtinnoX8fGwul4fCja07e2X2Yew/edit?usp=sharing

Index: 00:00 00:40 Al: Testing his steering map function. Talks about Platform-IO problems. And he may switch to the Arduino CLI interface instead. 08:40 Jeff: Says he is not doing anything. 08:50 Juan: Describes his processor conversion effort. He has code designed for the STM32F4-Discovery board (stm32f407vg) and he wants to run it on a board with a stm32f407ve processor. For the next hour we go through and try to figure out the simplest way to make the conversion. We got something that it looks like it will work. Juan will try to recreate the process later with a fresh copy of the respository and see if it works...

YouTube
} Lawn Tractor Automation (https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ)
JeffS
2021-12-09 15:37:20

@Juan Eduardo Riva I know why you opened your project several times and it opened correctly. Then several times you opened it and it was broken. That is because at time 56:45 in the video, you deleted half of your project information. So don't do that. 🙂

Juan Eduardo Riva
2021-12-10 07:06:53

Hi Jeff, I'm going to take it into account; but I don't think that's the problem. I think the main problem is that I have no idea what I am doing and I have to read the documentation more deeply. This is a situation where one takes a path that, rather than solving something, complicates my life. it is important to recognize my stupidity, although now I have to find a way out

Juan Eduardo Riva
2021-12-10 07:08:20

I do not cry, because I am a big man and I understand that what I am doing is going to help me solve other problems arising from the lack of chips

JeffS
2021-12-10 17:13:04

Well, in a couple of days I may know the secrets. I just ordered two of the STM32F407VET6 boards on Amazon. I only wanted 1, but due to the usual factors, and that I had to have a minimum of $25 to get free shipping, I ordered 2 boards. In their decpetive process I am now a proud member of Amazon Prime (which I didn't want).

So tomorrow I should have 2 boards to play with. They say it will do DFU programming. But other notes say I have to contact them directly through Amazon (which is nonsense).

I ordered 2 boards (after they forced me into Amazon Prime I would have only ordered 1 board), tomorrow I should have 2 boards.

They say if I want info (schematics and DFU programming info) I should contact them. That was a waste of time.

JeffS
2021-12-10 17:14:19

So tomorrow I will know if this was worth the time (and money).

Juan Eduardo Riva
2021-12-10 18:31:05

*Thread Reply:* Thanks, I think i will be in debt

JeffS
2021-12-10 17:44:59

I'm still the at the point where I don't know if this will append to my previous message or start a new message...

I attempted to send a message to these clowns through Amazon to get more info. We will see if that worked.

But... I want to see if I can program the board through DFU, serial, TPLink or other.

If I can program it I want to see if I can do debug (maybe only through TPLink).

:gratitude_thank_you: Juan Eduardo Riva
Bob Hassett
2021-12-10 18:07:37

I’m comparing the expansion headers of raspberry pi, Jetson Nano, and teensy 3.2. My RFM95 bonnets are pin for pin compatible for the pi and the nano.

My question is which pins should I use for SPI on the teensy?

JeffS
2021-12-10 22:05:29

If you are going to go by that card. Notice the green box that is blurred out by your flash. It says SPI port.

Below it shows pins 10,11,12,13 as the primary port. It shows pins 7,8,9,14 as the alternate port. It shows other pins as CS. So I assume you can specify which pin to use as chip select.

Bob Hassett
2021-12-11 06:11:18

I guess what I was looking for ….what is the common practice here? Do people use the Arduino library? Some actions/signals can be remapped to other pins ie clock. Like what this guy implies…

JeffS
2021-12-11 22:45:30

@Juan Eduardo Riva Ahh-Hah!!! He says. This may be as good as it gets. https://github.com/mcauser/MCUDEV_DEVEBOX_F407VET6 I was trying all day to figure out which pin the LED is connected to. Then I found that page... I'll do some more digging.

I received two boards. They both act a little differently. They had some test code that blinks the LED and it acts like a USB Flash drive. I was able to get both of them to go into DFU mode. Now one of them is refusing. I did not try actual DFU programming. I connected a cheap ST-Link V2 module to one of them. (maybe both, I forget.) STM32CubeProgrammer recognizes the board. Both DFU mode and ST-Link mode report a chip ID of 0x413 and a Flash size of 1MB. They should be 512KB. Maybe just old version of STM32CubeProgrammer?

I connected my original STM32F4-Discovery board to STM32CubeIDE and it worked as usual. (It has the ST-Link hardware built it.) I could say "debug", it compiled and downloaded the code and did a breakpoint at "main". I could singlestep.

Then I connected the new STM32F407VET6 board with the ST-Link module and connected it to STM32CubeIDE. I clicked "debug" and it compiled and downloaded and did a breakpoint at "main". I could single step but it would crash on the "fatal error" handler. I assume it has floating input pins and it is causing an unhandled interrupt. But I was surprised that it got that far.

It didn't occur to me that running the debugger would write over the original test code, but it did. I guess that means I have to move forward and not backward. 🙂

Stars
13
Language
C
JeffS
2021-12-11 23:07:21

Okay Bob, what were you asking? "Do people use the Arduino library?" If I want quick and easy then I would use an Arduino library. Assuming you have found an example that is based on Arduino libraries. I also assume you mean "Arduino libraries for Teensy 3.2" since that is the board you mention. (In other words, go directly to the Teensy Arduino site to look up commands and don't look at generic commands/libraries.)

I think I used the Arduino libraries for the LoRa radio. Either directly from the Teensy libraries or maybe they were from the Ada Fruit libraries. I did this on a Teensy 3.2 and it worked.

"what is the common practice here?" I don't know common practice is, but I will take the defaults unless it conflicts. So for instance it appears the "default" is pins 10,11,12,13. But if any of those pins conflict, say you want to use TX2 as a UART, then that guy says you can individually swap that pin with any other pin they have defined. Also note that the "LED" is on pin 13. So if you don't change that then you can't use the LED in your code. It also means the LED lights up as your SPI transfer is happening. Pros and cons...

Also consider you have pins on the back of the board that may or may not help out. I personally don't use those unless I absolutely have to. It is a pain to have to solder on extra wires and then you have to run them out from underneath to use them. But if that is the place I can get to a signal that I need, then I'll do it.

That guy is claiming you can remap any or all of the pins on a particular peripheral. (assuming the reference card says there are alternate pins) I didn't realize you could do that. I assumed you either used all pins of the default or you told it to use all pins of the alternate mapping.

Bob Hassett
2021-12-12 08:36:44

being so inexperienced as I am, I really appreciate your clarity. I’m going to just dive in and RTFM more until I break something!

Al Jones
2021-12-14 07:21:54

*Thread Reply:* I read on the internet, so it must be true, there is magic smoke inside those boards. That is why they stop working if you ever release the magic smoke, but I learn a lot in the process.

JeffS
2021-12-12 16:58:42

@Juan Eduardo Riva Here is another reference. https://stm32-base.org/boards/STM32F407VGT6-STM32F4XX-M.html

STM32-base project
JeffS
2021-12-15 16:25:32

A little off topic... But if your bored and want to watch Mother Nature. https://www.youtube.com/watch?v=0rXHF-YAUJ0 There is a storm about the size of Europe moving across the US. They say you can get 75-100 MPH wind gusts and they are tracking about 6 tornadoes.

YouTube
} Ryan Hall, Y'all (https://www.youtube.com/c/RyanHallYall)
Al Jones
2021-12-15 16:28:10

*Thread Reply:* fascinating

Ross VonFange
2021-12-15 18:11:28

*Thread Reply:* Gusts between 70 and 100 through part of the day today. My roof is roughed up. Gutters gone. I'm in the middle of Kansas. Power out since about 2:00.

Ross VonFange
2021-12-15 18:13:07

*Thread Reply:*

Ross VonFange
2021-12-15 18:13:40

*Thread Reply:* Windy does no justice to actual wind speed it seems

Bob Hassett
2021-12-15 20:19:58

Are you getting hammered yet?

JeffS
2021-12-15 20:22:51

It is starting to rain here. But I don't think it is going to be serious.

Ross VonFange
2021-12-15 20:52:03
JeffS
2021-12-15 21:08:05

Here are some tweets during this latest storm. https://twitter.com/ryanhallyall Or the original live video will probably still be there after it finishes. If you want to watch all 6+ hours. I haven't looked but I assume this guy has a video covering the Kentucky tornadoes that just happened. Yes, here is the video from last week. https://www.youtube.com/watch?v=M7Ga1P1Zmyg

twitter.com
YouTube
} Ryan Hall, Y'all (https://www.youtube.com/c/RyanHallYall)
JeffS
2021-12-16 20:18:33

Info from today's video meeting:

12162021 Lawn Tractor Automation meeting https://youtu.be/0uhaa5hTrT8

Chat: Jeff: A project to run ROS Navigatio2 on AWS racer. https://discourse.ros.org/t/integrating-ros-nav2-stack-with-aws-deepracer/23481 Jeff: https://github.com/mcauser/MCUDEV_DEVEBOX_F407VET6 Jeff: https://stm32-base.org/boards/STM32F407VGT6-STM32F4XX-M.html Juan: https://github.com/Itamare4/ROS_stm32f1_rosserial_USB_VCP Juan: https://github.com/SyrianSpock/stm32f4discovery_rosserial

Index: 00:00 Juan: Talks about STM32 boards he is working with. Juan gives a BluePill to ROS demo. Some discussion about STM32 boards and ST-Link modules. 14:35 Al: Is in the process of of updating his low level controller code. 16:30 Jeff: Posts a link to ROS Discourse about running ROS2 navigation2 on the AWS Racer. 18:35 Jeff: Talks about two new STM32F407vet6 boards like Juan has. Discussion of different board types. 40:55 The discussion turns to getting the STM boards to talk to ROS. 53:00 Juan: Posts some links for ROS serial on STM.

YouTube
} Lawn Tractor Automation (https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ)
JeffS
2021-12-21 21:24:26

I made some progress on the new STM32F407VET boards. I tried putting a bootloader on the boards. That didn't work.

I can program both of them directly from Arduino with a ST-Link module. Or I can program one board directly from Arduino with DFU and just a USB cable. The other board will not go into DFU mode.

Either way, the code loads and my LED blinks and I get messages printed out through the USB port. Before I assumed the USB/serial was part of the bootloader. But now I assume it is code that Arduino complies and loads.

Juan Eduardo Riva
2021-12-23 11:04:07

nice..

JeffS
2021-12-23 15:18:43

Info from today's video meeting: 12232021 Lawn Tractor Automation meeting https://youtu.be/wiivncpLJHY

Chat: None

Index: 00:00 Jeff: Goes through his setup to program the STM32F407VET board from Arduino. 14:15 Discussion of hands-free in-circuit programming. So you don't have to open the robot to reprogram. 19:00 Juan: Demonstrates programming and using the Blue Pill (STM32F103) board. 24:00 Discussion about which IDE to use. STM32CubeIDE or Arduino IDE. Pros and cons. 25:30 Jeff: Mentions a PDF from a presentation. It details how to use STM32CubeMX tool to configure the chip and generate code. Then move the code into Arduino IDE. PDF: https://www.dprg.org/wp-content/uploads/2019/09/Moving-Up-To-ARM.pdf Youtube presentation: https://www.youtube.com/watch?v=xGFnFWJXC8M DPRG on Youtube: https://www.youtube.com/user/DPRGclips 31:10 Suggestions of "extra" things to include when publishing/creating documentation. 33:30 Juan: Points out that you can find lots of articles telling you how to avoid using the ST-Link programmer. But he suggests you should just spend the ~$10 and get the ST-Link module. 34:20 Jeff: Points out that the ST-Link module can also be used for debugging. 35:20 Juan: Explains that it is hard to buy parts in his country. 41:30 Jeff: Mentions that the Arduino IDE may/or may not support all of the peripherals on the STM32 chips. 42:35 Juan: Recaps his serial communication issues. 44:50 Jeff: Offers some debugging suggestions to verify each step of communication to Linux.

JeffS
2021-12-30 12:26:19

Info from today's video meeting: Neither Al or I had anything to talk about. So we did not record the meeting. But we still spent over an hour talking about nothing...

Juan Eduardo Riva
2021-12-30 12:33:41

🤣

Ross VonFange
2022-01-05 13:37:49

Anyone have thoughts or experiences with https://www.ifm.com/us/en/product/O3D303

ifm.com
Bob Hassett
2022-01-05 18:59:11

Kinda pricey. What would be the application?

Ross VonFange
2022-01-05 19:11:12

Maybe collision avoidance. I also want to follow hay windrows in a field and possibly identify and correct a swath heading based on swath edge. I think lower cost cameras and image processing probably also work but am looking at what 3d options are out there. All the lidar options seem pretty pricey as well if they have any range.

JeffS
2022-01-06 15:12:25

Info from today's video meeting:

https://youtu.be/pWA5n_ow5Nk

Chat: O3D303 3D Camera https://www.ifm.com/us/en/product/O3D303 Jeff: 3D Camera ROS Agriculture presentation https://www.youtube.com/watch?v=-VELjDwsgoo Al: https://store.opencv.ai/products/oak-d Al: https://docs.opencv.org/4.x/d9/df8/tutorial_root.html Al: Auto-Focus -- Fixed Focus for Color Camera on OAK-D-Lite We're thinking we should change the OAK-D-Lite to use a fixed-focus color camera instead of an auto-focus camera. The why is that fixed focus allows use in high-vibration environment environments, with little loss of functionality for all other applications. The only real change to the end-user of OAK-D-Lite would be that the min focus distance for OAK-D-Lite would move from about ~pi inches (~3.14) to about 20 inches. And for most applications, it is seeming that this is totally acceptable - in return for the camera being usable in places where there are high vibrations (like drones, but also on machinery, RC-cars, etc.). Al: https://www.meetup.com/ai-ml-for-robotics-and-iot/events/282811556/

Index: 00:00 Jeff: Mentions the 3D camera he bought a couple of years ago. He posts a link to the ROS Agriculture presentation. 02:20 Discussion of specs on various cameras. Al posts links to Oak-D cameras. 04:30 Discussion of to look for when considering any sensor. 06:45 Jeff: Goes into rant about proliferation of AI as the answer to everything. More talk about Oak-D cameras. 10:25 Fixed focus vs. auto focus. 13:00 Al: Is working on his remote firmware update for his Teensys. 13:40 Al: Found another ROS group through Meetup that has video meetings. 20:50 Al: Goes to his to-do list to remember what he wanted to ask. 26:50 Al finally decides he wanted to ask about LORA radios. Discussion of Jeff's LORA radios.

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos Index for the original ROS Agriculture group (~250 videos) and the new Lawn Tractor Automation group: http://sampson-jeff.com/RosAgriculture/

YouTube
} Lawn Tractor Automation (https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ)
Ross VonFange
2022-01-06 15:17:57

Thanks for the link Jeff I'll check out that older video.

Bob Hassett
2022-01-07 12:28:08

This camera sounds too good to be true. Do you think OpenCV can work with this? https://fb.watch/aofTwHefZg/

facebook.com
Ross VonFange
2022-01-07 12:39:56

*Thread Reply:* Is there a non fb link?

Ross VonFange
2022-01-07 12:43:17

*Thread Reply:* Is that 30USD? That's crazy cheep.

Ross VonFange
2022-01-07 12:46:41

*Thread Reply:* even lower cost off aliexpress-> https://www.aliexpress.com/item/1005003100882650.html?spm=a2g0o.productlist.0.0.3adb4848SdJj09&algopvid=92c62ebb-48ec-4b26-a54f-b814ec4a2845&algoexpid=92c62ebb-48ec-4b26-a54f-b814ec4a2845-7&pdpextf=%7B%22skuid%22%3A%2212000025813759725%22%7D&pdppi=-1%3B11.7%3B-1%3B-1%40salePrice%3BUSD%3Bsearch-mainSearch|https://www.aliexpress.com/item/1005003100882650.html?spm=a2g0o.productlist.0.0.3adb48[…]i=-1%3B11.7%3B-1%3B-1%40salePrice%3BUSD%3Bsearch-mainSearch

aliexpress.com
Bob Hassett
2022-01-07 15:45:13

*Thread Reply:* The low price smells like they are trying to just dump them as fast as possible. A lot of 5 stars review but not much detail info. Still Can't tell if OpenCV will work on them.

Robin Tomar
2022-01-10 20:43:13

@Robin Tomar has joined the channel

JeffS
2022-01-13 15:24:18

Info from today's video meeting:

01132022 Lawn Tractor Automation meeting https://youtu.be/xN4Qe9fCXp0

Chat: Juan: https://github.com/ros-drivers/rosserial/issues/518 Juan: Remove folder ros_lib inside libraries directory. Then got to Arduino IDE-Sketch-Include Library-Manage Libraries... ( Ctrl+Shift+I ) And search for "rosserial" and install: Rosserial Arduino Library by Michael Ferguson

Using version 0.7.9, worked with fresh new Arduino Uno and Arduino Mega. Also able to compile for Seeeduino Zero (integrated on Odyssey X86J4105) Ross: Hi guys. I'm in transit today. Just thought I would drop on for 5 min and say 👋

Index: 00:00 Juan: Talks about remote networks using cell modems. 03:50 Juan: Shows the parts he has to work with in the USA. 04:30 Juan: Asks for a recommendation for a cheap GPS for testing. 08:00 Juan: Talks about version issues with ROS Serial. And talks about using ROS Serial. 15:15 Ross: Joins the meeting. 17:30 Ross: Says "hi". We talk about is wireless networks for his fields. 21:20 Juan: Suggests cell modems. 23:30 Discussion of what data to send and how much to send over network. 30:00 Jeff: Says he may document his LED status strip for ROS. 35:25 Jeff: Talks about his LORA radio remote control. And plans to make a new version.

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos Index for the original ROS Agriculture group (~250 videos) and the new Lawn Tractor Automation group: http://sampson-jeff.com/RosAgriculture/

YouTube
} Lawn Tractor Automation (https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ)
Bob Hassett
2022-01-18 08:36:39

How can farmers, ranchers survive with those temperatures? https://www.facebook.com/100000952810697/posts/6877969435578082/

facebook.com
Juan Eduardo Riva
2022-01-18 15:00:07

*Thread Reply:* Well, I'm at miami now.. 🤣 But my wife work at "la fresca" (early moorning and afternoons) and she sleeps a good siesta with the AC..

Now is raining and as you can see temperature gets in values more acording for supporting human life.. ITH is a value used to mesure animal confort

Bob Hassett
2022-01-18 15:44:09

*Thread Reply:* Our west coast experienced many out of control wild fires because of extreme temperatures, how is Argentina fairing?

Bob Hassett
2022-01-18 18:02:57

Tractor control box version 2.0

🙂 Ross VonFange
Bob Hassett
2022-01-20 07:26:25

Is there a meeting today?

Juan Eduardo Riva
2022-01-20 07:27:01

*Thread Reply:* I will not be able to asist. Se you next week

Al Jones
2022-01-20 09:16:33

Sorry guys, tough day for me at work, work. Unable to join.

JeffS
2022-01-20 10:38:17

If two of the regular people are out then I am going to skip it too. So I guess the answer is no.

Bob Hassett
2022-01-20 10:46:27

I’m just now starting to add radios. One will reside in my tractor control box.Another will be battery powered remote control. For a quick connect I bent some header pins to make it work for now. I looked at the pi zero and a possibly a feather board. But I like the teensy because of the low power requirement. Any suggestions?

Bob Hassett
2022-01-20 10:46:27
Bob Hassett
2022-01-20 10:48:02

I forgot to include the inside of the control box for reference.

Bob Hassett
2022-01-20 10:53:25

One other issue. I didnt write down my pi 3 password so….I followed the recommended way to recover or reset by adding initial=/bin/sh. But when typing “su” as suggested I get an error message. Long story short I need to understand the cmdline sentence better. Can someone parse out the wording and explain it?

JeffS
2022-01-20 11:05:07

Did you purposely change your password? If not, on the Raspberry Pi versions of OS it is probably "raspberry". If you are running Ubuntu then the default is "ubuntu". Here is a random page that talks about it: https://tutorials-raspberrypi.com/raspberry-pi-default-login-password/ They also have some instructions on how to change it.

Back to your question... it would be helpful to see what error message you get.

Bob Hassett
2022-01-20 11:12:29

*Thread Reply:* I changed the default password :-( Ill need a couple of minutes to setup the pi3 again. I'll be back.

Bob Hassett
2022-01-20 11:21:59

*Thread Reply:* Thanks for the link I will speed a lot of time learning it.

Bob Hassett
2022-01-20 11:17:48

Here is the error message

JeffS
2022-01-20 11:21:53

That appears to be an error during start up. Nothing to do with commend line.

Are you in a position you could do a Zoom call. If so I can attempt to start a meeting.

JeffS
2022-01-20 11:22:59

From that error it looks like you have broken your Linux install.

Bob Hassett
2022-01-20 11:23:54

Can't do zoom we are going out the door. Maybe later when it's convenient for you?

JeffS
2022-01-20 11:25:56

Okay. For anybody, it is possible to have private Zoom calls at any time. So let me know when you want to do it.

JeffS
2022-01-20 11:44:35

On your question about radios... Keep in mind that none (that I know of) the Raspberry Pis have A/D input. So you will have to add an external board to get A/D.

I was just going through the radios and Teensys last night.

Bob Hassett
2022-01-20 14:12:22

*Thread Reply:* How about zooming tomorrow , Friday evening 7pm?

JeffS
2022-01-20 14:14:24

*Thread Reply:* Okay, if I don't forget. You may want to remind me.

Bob Hassett
2022-01-20 14:32:02

*Thread Reply:* 👍

Bob Hassett
2022-01-21 17:08:58

A little update..

I dumped all the ADAFRUIT RFM 9x documents onto my white board.

Because I’m using a “HAT” radio I can use the pi gpio to map (wire) to the Teensy. Ive made a best guess of where the pi gpio wires should go to the Teensy. Again that is just a guess.

Anyone care to take a look and correct me? The viewer can zoom in almost infinitely for more detail. https://miro.com/app/board/o9J_kzvV0Pw=/

JeffS
2022-01-21 19:05:20

Lets see if this works... Jeff Sampson is inviting you to a scheduled Zoom meeting.

Topic: Jeff Sampson's Personal Meeting Room

Join Zoom Meeting https://us02web.zoom.us/j/4310467829

Meeting ID: One tap mobile ,,4310467829# US (Chicago) ,,4310467829# US (New York)

Dial by your location US (Chicago) US (New York) US (Washington DC) US (Houston) US (San Jose) US (Tacoma) Meeting ID: Find your local number: https://us02web.zoom.us/u/keBKmlLuO8

JeffS
2022-01-21 20:55:35

This is what Bob and Jeff talked about tonight: (In the Shorts and Tutorials playlist)

JeffS
2022-01-21 20:55:45

========================== https://youtu.be/MrHonCkq5Tk

Jeff and Bob Discuss Bob's LORA radios. He may use them on a Teensy 3.2 or a Raspberry Pi. Bob has these: https://www.adafruit.com/product/4074 Jeff has these: https://www.adafruit.com/product/3178 https://www.adafruit.com/product/3231 https://www.adafruit.com/product/3072 https://www.adafruit.com/product/3200

Jeff: Posted this table of proposed connections for Teensy 3.2 Pin Digital Used for === ======= ================================ 1 GND 2 0 sw1 3 1 sw2 4 2 sw3 5 3 sw4 6 4 sw5 7 5 eStop1 8 6 eStop2 9 7 DOUT (MOSI - Radio) 10 8 DIN (MISO - Radio) 11 9 CS (Radio) 12 10 D10 - (RST - Radio) 13 11 D11 - (IRQ - Go on Radio) 14 12 n/u

15 13 LED (In parallel with panel LED) 16 14 SCK (Clock - Radio) 17 15 pb1 A1 - Reserved 18 16 pb2 A2 - Reserved 19 17 pb3 A3 - Reserved 20 18 n/u SDA0 - Reserved (or A4) 21 19 n/u SCL0 - Reserved (or A5) 22 20 A6 - Joystick 23 21 A7 - Joystick 24 22 A8 - Joystick 25 23 A9 - Joystick 26 3.3V Out 27 AGND 28 Vin

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos Index for the original ROS Agriculture group (~250 videos) and the new Lawn Tractor Automation group: http://sampson-jeff.com/RosAgriculture/

YouTube
} Lawn Tractor Automation (https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ)
Bob Hassett
2022-02-07 20:16:27

*Thread Reply:* So the column headers for Jeff’s pin out…1st Board Pin #, 2nd Logic(?) Pin #, 3rd…..,4th…

Gonzalo Mier
2022-01-27 10:35:59

@Gonzalo Mier has joined the channel

JeffS
2022-01-27 18:29:32

This is the info from today's video. As I point out I haven't indexed it yet...

This video: https://youtu.be/86hm15g--nY

Chat: Al: https://www.alibaba.com/product-detail/2-4G-Wireless-Remote-Control-Wireless_60636492203.html Al: aka "2.4Ghz TGZ-850M Gamepad" Al: https://docs.google.com/document/d/19EID7QT9J-TceXtfbqKu_0GrIiIGkpM6COMi5lEBcc0/edit

Index: (I'll do the index later...) In general we talked about remote control, LORA radio, safety. I don't remember until I watch it again...

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos Index for the original ROS Agriculture group (~250 videos) and the new Lawn Tractor Automation group: http://sampson-jeff.com/RosAgriculture/

YouTube
} Lawn Tractor Automation (https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ)
🙌 Gonzalo Mier
JeffS
2022-01-28 01:35:37

Here is the index for today's meeting:

Index: 00:00 Jeff: Recap of Bob's project that we talked about on previous video here: https://youtu.be/MrHonCkq5Tk 01:10 Jeff: shows his LORA radio collection. 03:15 Jeff: Complains about soldering SMA connectors to the Ada Fruit boards. 06:35 Discussion of the 3 different antenna connection options. 10:40 Jeff: Talks about using the Ada Fruit All-In-One LORA board. 14:50 Jeff: Again mentions he may eventually make tutorial videos. Remote control, for instance. 15:10 Moves into discussion of gamepads on ROS. And mention of Ross's long range WiFi network 17:15 Back to tutorial topics. Discussion of uses of remote control and eStop. Comments of safety. 23:50 Al: Posts a link to the Wireless gamepad he bought. 25:25 Jeff: Says you should also have a "Dead Man" switch. 28:15 Al: Asks about remotely programming the Arduino/Teensy type boards. 29:00 Jeff: Finds his small joystick and shows it. 31:15 Al: Asks more about remote programming. But runs into Slack/Zoom/YouTube maintanence issues being discussed... 36:05 Back to discussion on Arduino CLI interface and Program-IO programming. We talk about why neither one works for Teensy and try to track down ways to fix either one. 50:45 Jeff: Makes a feeble attempt to show pictures of his robot. 51:50 We start updating the "Links" pinned message at the top of the General channel on Slack. It is updated now.

JeffS
2022-01-28 01:47:21

@Al Jones This may be the solution to your PlatformIO problem: https://community.platformio.org/t/can-i-install-an-older-platformio/21533/7 The very last entry says to use the latest version of PlatformIO but specifies a link to make it work with the correct Python version.

PlatformIO Community
Bob Hassett
2022-01-30 14:28:25

It's been frustrating lately. I tried using ADAFruit guides to get my RFM9x going on my Pi 3. Things seemed to go well until I started downloading library's and radio packages. Then problems. So I shut down. I tried to restart but an error message pops up “job control turned off”. Also seems to have something to do with safe mode etc. So I'm just going to reflash my card and start over. I have to do more research how job control works and about safemodes and how to put what, where to avoid problems. I'm just venting for now. Ill be back after I reflash.

Bob Hassett
2022-01-31 19:16:45

Making some progress. Rpi.org has a one button formatter and flasher, nice and smooth. Using the recommended ADAFRUIT Mu editor, looks like Blinka is loaded and things are turned on. Next up, what can I break this time ;-)

Bob Hassett
2022-01-31 21:14:58

Some success. As long as I run the Thonny IDE the buttons work. It says RFM detected BUT I’m only running the Raspberry pi. Kinda confusing

Bob Hassett
2022-01-31 21:23:02

*Thread Reply:* Upon further review ADA docs say this message means this radio is working. Now onto the Teensy and matching radio. Going to be awhile.

Bob Hassett
2022-02-03 15:46:08

While I was trying to get RFM9x to run on a pi, I would try to use the “find” like find python. So I can see the search scrolling thru files and I would see the python several times. But the scrolling goes so fast, I can't get a good read of the displayed path. So….how do I slow down the scroll or stop it and step thru it? Can I capture it some how and put it in a generic text file for analysis?

Ross VonFange
2022-02-03 16:22:27

use something like > output.txt

Bob Hassett
2022-02-03 19:57:54

*Thread Reply:* Thanks Ross!

Ross VonFange
2022-02-03 16:23:05

Or you can use something like | more

JeffS
2022-02-03 16:34:08

Info from todays video meeting:

This video: https://youtu.be/8lsFr6vn7Hs

Chat: Jeff: https://www.adafruit.com/ Al: YouTube video I mentioned earlier that references Meshtastic. https://www.youtube.com/watch?v=TY6m6fS8bxU Al: https://www.amazon.com/868MHz-915MHz-Bluetooth-Development-Transceiver-WIshioT/dp/B07HJ49VN8/ref=pd_vtp_1/147-7220866-7036043?pd_rd_w=9AZvZ&pf_rd_p=96226b5f-2d9a-439b-be45-97603787c682&pf_rd_r=N6MTV0XQ3VSYTWT34Z86&pd_rd_r=8b0a4b1a-3eac-4234-9d8e-9a94f97aa681&pd_rd_wg=Nv3rB&pd_rd_i=B07HJ49VN8&psc=1 Jeff: https://forum.pjrc.com/threads/63528-MISO-and-MOSI-ports-for-connecting-LoRa-to-Teensy-3-2

Index: 00:00 I think we talked about LORA radios for remote control the whole time . I will view it and may update the index.

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos Index for the original ROS Agriculture group (~250 videos) and the new Lawn Tractor Automation group: http://sampson-jeff.com/RosAgriculture/

YouTube
} Lawn Tractor Automation (https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ)
Bob Hassett
2022-02-03 18:15:40

Another interesting link about LoRa radios is ……https://forum.pjrc.com/threads/41878-Probable-race-condition-in-Radiohead-library

forum.pjrc.com
Bob Hassett
2022-02-04 13:25:21

Another interesting link. I like the charts as a beginning point to understand the process in general. https://www.diva-portal.org/smash/get/diva2:1443524/FULLTEXT01.pdf

Bob Hassett
2022-02-04 13:25:21
Bob Hassett
2022-02-04 13:48:53

Another “concept” for LoRa radio including a “repeater”. I'm not advocating Pi. I'm just interested in the concepts. I would like to use Teensey instead of all the pi “concepts” I'm finding. https://www.quora.com/How-can-I-send-and-receive-data-between-two-Raspberry-Pi-3-using-Python-and-the-RFM69HCW-tranceiver

Quora
Bob Hassett
2022-02-04 15:47:54

*Thread Reply:* Hear is their video with the repeater concept and mapping…https://youtu.be/hHjIfwgMbhI

YouTube
} Jack Gallegos (https://www.youtube.com/channel/UCPXBFBgZiVvq6vkZtFHFDmg)
Bob Hassett
2022-02-09 15:35:38

Current experimental board. I wanted to make use of some PIs that where not doing any thing. This setup is just for learning how to send packets. It will not go on the tractor. My current thinking (always subject to change) is using a Teensy 3.2 for a remote control and a Teensy 3.5 in the control box on the tractor.

Ive ordered a 3.5, more breadboard wires, and misc items.

Bob Hassett
2022-02-09 15:40:34

I kept forget what pin goes where so I put together 2 spreadsheets showing what goes where. These are very fluid at this point.

Bob Hassett
2022-02-09 15:40:34
Al Jones
2022-02-09 20:32:11

@JeffS and @Juan Eduardo Riva I will be driving back from Texas tomorrow and unable to join at Noon.

JeffS
2022-02-09 20:35:39

Okay, thanks for the notice. If anybody else has a paid Zoom account and wants to start a meeting, feel free, and post a link to Slack. If not I will poke at Zoom and try to start a free meeting at the usual time. I will post a link if I do that.

👍 Bob Hassett
Bob Hassett
2022-02-10 10:45:33

Getting boards ready for the 3.2 and 3.5. Waiting on more sd micro cards, wires, etc. 3.5 is short on availability but Amazon will deliver by the 14th. The plan is to get the pi s talking to each other first. Then 3.2 to a pi. Then 3.2 to 3.5 hopefully.

JeffS
2022-02-10 11:02:28

See if this link works for today's meeting: https://us02web.zoom.us/s/86042560843

Bob Hassett
2022-02-10 11:05:04

*Thread Reply:* Passcode?

Bob Hassett
2022-02-10 11:03:09

Picture on the left is the 12 to 24 step up regulator. The picture on the right is the wired control box on the tractor. The holes to the right are for expansion. Possibly implement JeffS idea of switching from manual to computer.

Bob Hassett
2022-02-10 11:03:10
JeffS
2022-02-10 11:06:06

I'm trying to find a link or a passcode...

Bob Hassett
2022-02-10 11:06:27

👍

JeffS
2022-02-10 11:09:57

Jeff Sampson is inviting you to a scheduled Zoom meeting.

Topic: My Meeting Time: Feb 10, 2022 11:00 PM Central Time (US and Canada)

Join Zoom Meeting https://us02web.zoom.us/j/82000854448?pwd=UXFBNnpzSG5zaWk2L3VOdUpmSUp1QT09

Meeting ID: 820 0085 4448 Passcode: 545076

JeffS
2022-02-10 11:10:10

See if that link works...

JeffS
2022-02-10 15:29:43

Info from today's video meeting:

===========================================

02102022 Lawn Tractor Automation meeting This video: https://youtu.be/kO4d7yYuVpY

Chat: None

Index: 00:00 Bob: Posted images to Slack and talks about parts he needs to aquire. He talks about his approach for his radios. And talks about his spreadsheets for pin numbers. 08:55 Bob: Shows his tractor control box and describes it. 12:30 Bob: Talks about a Raspberry Pi display board. 14:55 Bob: Shows his "too small box". And talks about adding connectors instead of hard-wired. 17:15 Bob: Talks about his prototyping layout. 21:10 Jeff: Talks about antennas and antenna connectors. 23:50 Jeff: Mentions that the "extra" GPIO pins on the radio do not have to be connected back to the processor board. Comments on the OLED display connections. 26:10 Bob: Talks about formatting data for LORA. 28:00 Jeff: Says he is too lazy to work on anything. 28:25 We discuss Al's plans. And "over-the-air" reprogramming. 35:00 Bob: Talks about real-time-clocks and temperature sensors. 35:20 Bob: Questions the amount of processing poower on the Tennsy boards. 36:50 Bob: Talks about not having enough desk space for all of his display monitors.

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos Index for the original ROS Agriculture group (~250 videos) and the new Lawn Tractor Automation group: http://sampson-jeff.com/RosAgriculture/

YouTube
} Lawn Tractor Automation (https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ)
Bob Hassett
2022-02-10 15:51:29

*Thread Reply:* Sure, now I find out after I ordered ;-) just kidding! Might get some?

JeffS
2022-02-10 23:12:12

I just noticed that the 40-pin protoboard adapter probably won't work on the original Pi B. It has a 26-pin connector and the audio connector will probably be in the way. (Whoops, I meant the yellow video connector, not an audio connector. [Is there an emoji of shame?]) If you have a 26-pin cable handy you could probably use that with the 40-pin adapter. https://static.techspot.com/images/products/2012/desktop-pcs/desktop-pcs/org/2014-07-14-product-1.jpg

JeffS
2022-02-11 00:28:02

What is the quote from Monty Python? "Now for something completely different..." Has anybody found a use for the original Raspberry Pi Zero? Or for the Raspberry Pi Zero-W? I never figured out what to use a Pi Zero for. The Pi Zero-W has Wifi and Bluetooth so I can see a use for that. I may have several around that I have never used. But the fact that they take multiple adapter cables has always put me off. Although I think you can set up an SD Flash card on an original Pi B and then transfer it to a Pi Zero. That may avoid having to buy all of the adapter cables, maybe... And now there is a new Pi Zero 2-W, but I don't know what it would be good for.

Bob Hassett
2022-02-11 08:37:52

*Thread Reply:* I have seen the Pi zero stuff and cameras used for remote security. Maybe some sensors and IOT?

Bob Hassett
2022-02-11 08:44:09

*Thread Reply:* https://digitalcommons.calpoly.edu/cgi/viewcontent.cgi?article=1532&context=eesp|https://digitalcommons.calpoly.edu/cgi/viewcontent.cgi?article=1532&context=eesp these guys put a zero on a drone. How about using an anchored weather ballon with a zero for extending range? I dont know about power requirements.

Bob Hassett
2022-02-11 08:53:32

*Thread Reply:* New Raspberry Pi Boot loader. https://apple.news/A7y2yHFFfTu2LUdiwMnF4qg

apple.news
Bob Hassett
2022-02-11 09:06:24

*Thread Reply:* Once upon a time in a land far far away (Allen’s RSOH), we talked about using radio beacons for navigation. Some where recently, I saw some radio boards that can select which radios to talk with. I wonder if time of flight could be used to plot location? Maybe not very accurate? Maybe ok with streaming video or on board sensing of its environment? Just throwing it up on the wall to see what might stick. 🤪

Bob Hassett
2022-02-11 09:37:02

*Thread Reply:* How about a mesh network? https://www.iottrends.tech/blog/diy-how-to-create-a-home-mesh-wifi-using-raspberry-pi/

iotTrends.tech
Written by
abpreen
Est. reading time
12 minutes
JeffS
2022-02-11 00:38:03

I just ran across this on ROS Discourse. It is interviews with robotics people. I haven't watched any yet but it may be worth watching. https://www.youtube.com/channel/UC2_89LMusoMaEol3MHCeQ_A

YouTube
JeffS
2022-02-16 13:58:48

Does anybody have thoughts for the video meeting tomorrow?

Ross VonFange
2022-02-17 08:22:03

Things I would find useful if others could share them.

  1. community repo walk through, maybe go over where current resources are?
  2. If anyone has a working ROS2 nav setup they want to share a walk through of
  3. If anyone has bridged CAN (any protocol) to ROS2 or their project
  4. Any standardization that exists between the lawn tractor projects that should be reused or preserved as a defacto piece of code between our projects
JeffS
2022-02-17 11:03:53

Is anybody going to start a meeting (@Al Jones) Or should I start a free meeting?

Al Jones
2022-02-17 11:07:25

I think I started it

Ross VonFange
2022-02-17 12:53:03

Great discussion guys. Thanks for the info.

JeffS
2022-02-17 15:50:34
JeffS
2022-02-17 16:12:45

#random I see a new channel has been added. If you want to see other channels your are not on... click the three dots next to "Channels" and click "Broswe Channels".

JeffS
2022-02-18 19:10:13

Here is the info to the HBRC Tuesday night ROS group. This happens every Tuesday.

"camp ." <camp@camppeavy.com>: Feb 15 11:05PM

Feb 15, 2022 7:00pm Pacific Time   Beginner or expert, if you're interested in ROS please join us.   Zoom: https://us06web.zoom.us/j/87058611464?pwd=b09pSTluVDdpbW9xeHRpdUMrUnlwdz09 Meeting ID: 870 5861 1464, Passcode: 403987   Thanks,Camp

JeffS
2022-02-18 19:22:13

I found the github that goes with e HBRC Tuesday night meetings: https://github.com/cpeavy2/botvac_node

Stars
8
Language
Python
JeffS
2022-02-19 00:57:27

I was slightly bored and I haven't done anything useful for months. So I decided to go back to my Gazebo simulation. As luck would have it, when I started my robot laptop all of the simulation screens were still on screen from when I put it sleep. I pick the correct roslaunch command line and I got a tractor on a Gazebo screen. Then I clicked a command line to generate ackermann messages and my tractor was driving in a circle.

I copied the files from the robot computer (Ubuntu 16.04, Kinetic) and put them on my main computer (Ubuntu 20.04, Noetic, Foxy). After much playing around I got the tractor to drive in ROS1 Noetic. But I want to play with ROS2, So I started digging to see how to get Gazebo to work with either ROS1 or ROS2. It looks like it will be easiest to run Gazebo from ROS1 (for various reasons) and use ros1_bridge to let ROS1 and ROS2 to talk to each other.

I will go down this path and see how far I get...

(The simulated tractor will drive around under Kinetic, with an error or two, but it still works.)

👍 Ross VonFange
🙂 Ross VonFange
JeffS
2022-02-21 18:25:15

From "Weekly Robotics" newsletter, https://github.com/Developer-Y/cs-video-courses/blob/master/README.md This look like a wealth of info, but I didn't dig through it.

Bob Hassett
2022-02-21 18:29:48

Wow! Wish I was 18 again and starting out.

JeffS
2022-02-22 13:31:28

This is the index from the video meeting last week:

Index: 00:00 Start of discussion on where documentation is located. 10:20 We look at Al's spreadsheet for documentation. 15:40 Some talk about URDF files. 26:30 We talk about code on low level microcontrollers. 44:45 Al: Talks about which code base to run on his ROS computer. 48:00 Ross: Asks about simplifying or "dumbing down" low level control. 50:35 Ross: Brings up CAN bus. 51:20 Jeff: Goes back to simplistic low level control. 53:50 Al: Talks about position encoders. AMS-5048B magnetic encoder 57:05 Ross: Mentions using J1939 CAN standards for standardized messages. 1:19:10 Jeff: Mentions the Home Brew Robotics Group "Anything ROS" Zoom meetings. 1:24:45 Some comments about Docker.

Bob Hassett
2022-02-23 10:57:07

Thanks Jeff for the index!

JeffS
2022-02-24 11:20:47

The video meeting is now active.

JeffS
2022-02-24 13:09:52

@Al Jones Here is the thread talking about the PlatformIO version problem. https://community.platformio.org/t/can-i-install-an-older-platformio/21533

The last message in the post says the following. I haven't looked at it yet, I will look.

😃 Al Jones
JeffS
2022-02-24 13:22:20

I looked at it and it is not obvious to me. Maybe with enough reading...

Here is another reference. https://github.com/platformio/platformio-docs/issues/176

has anybody else out there solved this (running latest PlatformIO under ROS Kinetic which uses python 2.7)?

Comments
6
JeffS
2022-02-24 15:47:43

Info from today's video meeting:

02242022 Lawn Tractor Automation meeting - ROS This video: https://youtu.be/iAakH-jup-o

Jeff: My YouTube channel: https://www.youtube.com/user/jws8675309/videos Jeff: https://www.youtube.com/watch?v=HB9Z1SIBHn0 Al: https://www.aliexpress.com/item/32840238513.html?spm=a2g0o.9042311.0.0.6be54c4dMsc92F Al: https://randomnerdtutorials.com/ttgo-lora32-sx1276-arduino-ide/

Index: 00:00 Jeff: Shows some diagrams of a hypothetical physical ROS vehicle. Then switches to Gazebo instead actual vehicle. 31:00 Jeff: Holds up his small robot and compares it to his larger robot. 32:55 Al: Asks about the lineage of the small robot. 33:30 Jeff: Digs up a link to his YouTube channel. And shows a quick excerpt for the small robot. The date was 2016. 40:45 Al: Shows his ESP32/LORA/Display board. 44:00 Al: Posts link to sample code for the board. 52:35 We talk about Al's problem that PlatformIO no longer works with ROS Kinetic. 55:50 Jeff: Complains about his weather.

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos Index for the original ROS Agriculture group (~250 videos) and the new Lawn Tractor Automation group: http://sampson-jeff.com/RosAgriculture/

YouTube
} Lawn Tractor Automation (https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ)
JeffS
2022-02-24 16:20:29

Here is another random snipit from PlatformIO documentation: https://docs.platformio.org/en/latest/core/migration.html#drop-support-for-python-2-and-3-5 If I knew more about Pyhton then this would not be so mysterious to me...

Bob Hassett
2022-02-24 19:58:05

@JeffS, thanks for laying simple block diagrams for a complicated system. @Al Jones thanks for the heads up about your loRa and Oled. It looks interesting. Even the $40 tutorial package.

JeffS
2022-02-28 19:10:27

On a side note... I have a problem with my [new] neighbors behind me. They have 2 big dogs, Really nice dogs. But they bark when outside, The owners have the nerve to tell me that it is okay if they bark during the day, So I just ordered an air horn: https://www.amazon.com/SeaSense-SL52272-Air-Horn/dp/B0019M3FKA/ref=sr13?crid=2UBZ8F9508ZVZ&keywords=air+horn&qid=1646094381&sprefix=air+horn%2Caps%2C183&sr=8-3|https://www.amazon.com/SeaSense-SL52272-Air-Horn/dp/B0019M3FKA/ref=sr13?crid=2UBZ8[…]s=air+horn&qid=1646094381&sprefix=air+horn%2Caps%2C183&sr=8-3 we''ll see where this goes.

😂 Ross VonFange
Bob Hassett
2022-02-28 20:09:33

How about “Bark recognition software” triggering one of those frequencies only dogs hear….said with an evil grin.

Ross VonFange
2022-02-28 20:29:35

That's easy. Attach an electric dog whistle to a "bark collar". You might get a positive feedback loop though vice the desired negative one.

JeffS
2022-02-28 21:58:20

I don't want to project the wrong impression. It is not the dogs. It is the owner that thinks it is cute that his dogs bark. He has told me at least twice that it is okay if his dogs bark during the day. We''ll see what happens after a couple of times of the air horn and me pointing out that it is okay if I do that during the day...

JeffS
2022-03-03 14:26:30

Info from today's video meeting (when it finishes uploading...)

This video: https://youtu.be/wn3YTXuOhdc

Chat:

Jeff: How do we describe a robot? With URDF! | Getting Ready to build Robots with ROS #7 https://github.com/joshnewans/urdf_example https://www.youtube.com/watch?v=CwdbsvcpOHM

Creating a rough 3D model of our robot with URDF https://articulatedrobotics.xyz/mobile-robot-2-concept-urdf/ https://www.youtube.com/watch?v=BcjHyhV0kIs

NAV2 - Setting Up The URDF https://navigation.ros.org/setup_guides/urdf/setup_urdf.html

linorobot2 https://linorobot.org/ https://github.com/linorobot/linorobot2

Al: https://www.osrfoundation.org/simulated-car-demo/ Al: https://gist.github.com/jones2126

Index: 00:00 Jeff: Talks about URDF tutorials Later... Al: Gives update on his lawn tractor project.

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos Index for the original ROS Agriculture group (~250 videos) and the new Lawn Tractor Automation group: http://sampson-jeff.com/RosAgriculture/

YouTube
} Articulated Robotics (https://www.youtube.com/channel/UCx9vSJTSZGFrErfPtut5GNQ)
Articulated Robotics
YouTube
} Articulated Robotics (https://www.youtube.com/channel/UCx9vSJTSZGFrErfPtut5GNQ)
Bob Hassett
2022-03-04 09:37:38

@JeffS , I don't suppose there is a recording with your conversation with Camp? I'm curious as to why he chose the Pi 4? Is there a link to his build project?

JeffS
2022-03-04 14:39:34

@Bob Hassett The Tuesday night meetings do not get recorded. You can search here: (Maybe search for botvac or botvac2) https://groups.google.com/g/hbrobotics Or check the monthly meeting videos: https://www.youtube.com/user/hbrobotics

https://github.com/cpeavy2/botvac_node Looking through that might take you to the original (ROS1) project.

YouTube
Stars
8
Language
Python
Bob Hassett
2022-03-05 11:59:39

*Thread Reply:* @JeffS Thanks for the info.

JeffS
2022-03-04 21:50:46

The second video for creating a robot for Gazebo is out: https://www.youtube.com/watch?v=IjFcr5r0nMs

YouTube
} Articulated Robotics (https://www.youtube.com/channel/UCx9vSJTSZGFrErfPtut5GNQ)
Bob Hassett
2022-03-05 20:58:46

LoRas are talking with each other using the Adafruit example software. Slave(aka remote) using Pi 3 B. Master (aka tractor control box) using Pi3 B+.

🙌 Al Jones
JeffS
2022-03-06 01:14:36

Here is a quick result of my experiments. This is a model that I built from scratch. It is using the dimensions of my mini-tractor. When I started adding in the extra pieces to make it move it became less simple. But I have it moving...

JeffS
2022-03-06 01:18:37

If you notice at the start the steering is pointed straight, When I start the ackermann message publisher the steering turns to the left and it starts driving forward. When it gets back the start point I do a Ctrl-C and it stops. The rest of the video is dead space...

🙌 Al Jones
Al Jones
2022-03-07 10:46:32

*Thread Reply:* When you have a moment can you echo cmd_vel angular z? I would be curious how it changes.

JeffS
2022-03-07 12:42:59

*Thread Reply:* I could echo it, but it doesn't exist... If it were there then it would be a constant value.

Bob Hassett
2022-03-08 16:02:03

I have no idea on how to program a LoRa9x. Lucky for me ( and others) Adafruit sponsors a forum so I posted for some help. I thought I should share my research and stumbling down this road to understanding how to implement LoRa.

Thanks to Jerry Needell on the Adafruit Forum for suggesting the following;

https://github.com/adafruit/AdafruitCircuitPythonRFM9x/tree/main/examples

rfm9x_header.py

Example to display raw packets including header

rfm9x_node1.py

Example to send a packet periodically between addressed nodes

rfm9xnode1ack.py

Example to send a packet periodically between addressed nodes with ACK

rfm9xnode1bonnet.py

Example to send a packet periodically between addressed nodes

rfm9x_node2.py

Example to send a packet periodically between addressed nodes

rfm9xnode2ack.py

Example to receive addressed packed with ACK and send a response

rfm9xrpiinterrupt.py

Example using Interrupts to send a message and then wait indefinitely for messages to be received. Interrupts are used only for receive. sending is done with polling.

This example is for systems that support interrupts like the Raspberry Pi with "blinka"

CircuitPython does not support interrupts so it will not work on Circutpython board

rfm9xrpisimpletest.py

Simple demo of sending and recieving data with the RFM95 LoRa radio.

rfm9x_simpletest.py

Simple demo of sending and recieving data with the RFM95 LoRa radio.

rfm9x_transmit.py

Example to send a packet periodically

https://docs.circuitpython.org/projects/rfm9x/en/latest/api.html

Adafruit Library for the LoRa9x

Bob Hassett
2022-03-09 20:38:28

When copying .py files off of github is it good enough to just press “raw” and then save them?

JeffS
2022-03-09 23:49:40

Well... If you just need one of two files you can do that. You may have to update the permissions after you save them.

Or there should be a download button. You can click on that and it will ask if you want a ZIP file or if you want a download link. If you get a ZIP file you can extract that to your computer and have the entire repository. If instead you copy the download link then you can clone the entire repository to your local computer. If you do that then it will track all of your changes and you can back up to an arbitrary version ans restore it. I can't tell you how to do that off the top of my head. (Is that a valid cliche?)

There should be tons of pages and/or video tutorials that tell how to do these things.

JeffS
2022-03-09 23:51:24

What github page are you looking at?

Al Jones
2022-03-10 04:33:10

Works for me.  Might be a more elegant way.

JeffS
2022-03-10 11:05:29

@Al Jones Are you running the meeting today?

Ross VonFange
2022-03-10 11:31:47

Just FYI it's a snow day here so I won't be in the meeting :(

JeffS
2022-03-10 11:33:01

Okay, apparently it is a snow day for everyone. I'm tired of playing with my video settings. So I am going to cancel my meeting with my self...

Bob Hassett
2022-03-10 16:53:32

I did google how to get files and they told about what you said. But I didnt see anything like that. Here are photos. Im able to save the “raw file” and run it in Thonny and it works. I can see the print statements in the Thonny “shell” window. Ive recently just found out most of the examples dont use the Oled. That’s why I thought something was wrong. BTW I switched over to ribbon cable directly from pi’s to ora boards. One of the “node” examples does utilize the Oled. I have to look closer. Ill print out on paper a couple of the examples and compare Oled use.

Bob Hassett
2022-03-10 16:53:32
Bob Hassett
2022-03-10 16:53:32
Bob Hassett
2022-03-10 16:53:32
JeffS
2022-03-10 17:49:20

None of these photos are at the top level. If you back up one level you will see a green button that says "Code". If you click that it gives the option of "Zip" or "Clone".

Bob Hassett
2022-03-10 18:10:11

Thanks!

Bob Hassett
2022-03-11 15:41:50

Making progress. The 2 pi’s, Node1 and Node2, are talking both ways. The wireless mini keyboard is working well. Now to figure out the hex vs text and to trigger a PAUSE for the tractor.

JeffS
2022-03-12 13:44:35

Daylight saving time changes in the US (I think in the middle of the night tonight). So if you are not in the US that will affect the video meetings. It probably does not affect anything else...

Bob Hassett
2022-03-12 20:00:01

*Thread Reply:* Wish they would set it and forget it.

Bob Hassett
2022-03-15 15:12:47

I decided to replace wires and ribbon cables with stacking headers for now. Also been comparing and playing with examples. I’m beginning to understand, but I wish I could find one “man pages” that’s as easy to use as Linux man pages. I ordered a WiFi dongle for the Model 3 but its the wrong one. So I returned and will get one recommend for Pi. After that comes in Ill convert to headless operation for both Pi to get around my one tv and switching cables all the time. Any one know of a good and complete easy access man pages?

JeffS
2022-03-15 18:39:03

A couple of things...

If you want more range from the LORA board with the wire antenna, you may want to solder the wire to the antenna connection instead of a ground connection.

I'm not sure what you are saying about a WiFi dongle. Do you want two WiFi connections on a RPi3? Or are you trying to get more range than the built-in WiFi? Or are you talking about something totally different? Or is a "Model 3" something different than a Raspberry Pi 3?

I'm not sure what you mean by "good and complete easy access man pages".

Bob Hassett
2022-03-15 19:23:52

*Thread Reply:* A couple of things...

If you want more range from the LORA board with the wire antenna, you may want to solder the wire to the antenna connection instead of a ground connection.

• Ooops, sloppy soldering. I was trying for quick and easy replacement. I think I’ll replace the wire with a proper normal coil antenna. I'm not sure what you are saying about a WiFi dongle. Do you want two WiFi connections on a RPi3? Or are you trying to get more range than the built-in WiFi? Or are you talking about something totally different? Or is a "Model 3" something different than a Raspberry Pi 3?

• The Pi 3 Model B+ has WiFi built in but my Pi 3 is a 2015. Wifi was added in 2016. I'm not sure what you mean by "good and complete easy access man pages".

• When using Linux in a terminal widow it is so easy to look up a command and the needed arguments.

Bob Hassett
2022-03-15 19:34:16

Here is a sample that I would like to look up and determine what the arguments are required.

Bob Hassett
2022-03-15 19:34:29

rfm9x.send( bytes( "message number {} from node {} button {}".format( counter, rfm9x.node, button_pressed ), "UTF-8", ),

rfm9x.send(bytes("Hello world!\r\n", "utf-8")) print("Sent Hello World message!")

Bob Hassett
2022-03-15 19:40:15

I get its sending an array but {}, back slash r back slash n? One example was clear the {} returned a derived number. I'd like a better discription of ways to format. How flexible is that format arguement

Bob Hassett
2022-03-15 19:43:14

My ultimate goal is to send a joystick value and print out the received value.

JeffS
2022-03-15 19:53:08

I don't know where you got your info about RPi3B from 2015 not having WiFi. I just dug three of them out. All three say "Raspberry Pi 3 Model B V1.2 {Copyright} Raspberry Pi 2015". All three of them have the WiFi antenna. I'm sure I used at least one of them on WiFi...

Bob Hassett
2022-03-15 19:56:53

I better take another look then. Thanks

JeffS
2022-03-15 20:09:41

As far as your code... There seem to be several issues. First, I can't identify that language. Second, you need to look up rfm9x.send in whatever library you are using to find out about it. Third, the \r \n are carriage return and line feed (new line).

The {} is dependent on the language you are using. Something about substituting in the statement. So "message number" will be "counter". "from node" will be "rfm9x.node". And "button" will be "button_pressed". So it is probably going to send a string that looks something like "message number 10 from node 23 button 3" But the bytes function may convert all of that text to bytes. But I'm just guessing.

The control character definitions are standard in C. So this language apparently adopted that format. So look at something like this: https://www.tutorialspoint.com/csharp/csharp_character_escapes.htm

But you have to look at the rfm9x library to find out what those functions do and what they are expecting. You have to look at your language to see what syntax it is looking for. Which is probably where you have to look for the []. Maybe the [] is specific to the byte() function?

And the control character thing is sort of standard across several languages.

Bob Hassett
2022-03-15 20:11:57

Thanks! Ill dive deeper.

Bob Hassett
2022-03-18 18:31:16

*Thread Reply:* finally got WiFi and Bluetooth working on my slave rasp pi 3 B. Also I can hear YouTube audio playing on the iPad over to pi monitor(TV) but NO video. Some where I read I can't do that on blue tooth and I'd be better off using VNP. So thats next on a growing to do list. If I had a camera on a pi I'd like to see it on my iPad.

JeffS
2022-03-17 10:44:45

#random I forgot to post this... The meeting is in 15 minutes, due to our time change.

JeffS
2022-03-17 11:01:22

I get "The host has another meeting in progress" when I try to join meeting...

Al Jones
2022-03-17 11:02:09

Not sure what is going on; I will log off and log back on

Al Jones
2022-03-17 11:07:49

#random Slack test message

JeffS
2022-03-17 22:33:10

Here is the info from today's Zoom meeting:

03172022 ROS Lawn Tractor Automation meeting This Video: https://youtu.be/99Z3pIJqOJQ

Chat: Al: https://gist.github.com/jones2126/bfebe7879e83ad2a7121bd7cace6f393 Al: https://docs.google.com/document/d/1mW2v-a57ChIMwLSJhm87rMTcmUPB0fjNsEGPqLDi37Y/edit Al: https://gqrx.dk/ Al: https://www.wsprnet.org/drupal/ Al: https://www.rtl-sdr.com/building-a-ham-tranceiver-with-an-rtl-sdr-raspberry-pi-and-rpitx/

Index: 00:00 Al: Gives updates. Steering scaling. He needs to put his tractor back together and make it work. udev rules. IP address conflicts. 05:45 Al: Explains his IP address problem. 15:35 Al: Talks about udev rules (that don't work). 22:15 Comments that everybody needs to get their machines put back together and able to run outside. 23:25 Jeff: Goes off-topic by talking about SDR (Software Defined Radios). 45:00 Jeff: Talks about publishing odometry messages from a Gazebo simulator.

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos Index for the original ROS Agriculture group (~250 videos) and the new Lawn Tractor Automation group: http://sampson-jeff.com/RosAgriculture/

YouTube
} Lawn Tractor Automation (https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ)
Bob Hassett
2022-03-18 17:59:25

@Al Jones I was listening to your conversation with @JeffS about conflicted ip addresses. Could you point me back to your docs describing your goals/implementation of wireless operation ie vpn and headless operating, more about ham radio interfacing. I'd like to understand more of what are accomplishing.

Al Jones
2022-03-19 06:58:54

*Thread Reply:* My ubiquityrobot would pull two IP addresses from the router. One for the on-board wi-fi chip and one for the USB Ethernet add-on antennae that I added. I only wanted the USB to get an IP address. I disabled the onboard wi-fi following the link below. Previously I was using a VPN from ZeroTier which made it easier, but that has failed for unknown reasons. https://raspberrypi.stackexchange.com/questions/61760/disable-onboard-wifi-bluetooth-raspberry-pi-3 You can edit /boot/config.txt and add this two lines: dtoverlay=pi3-disable-wifi dtoverlay=pi3-disable-bt

Raspberry Pi Stack Exchange
Bob Hassett
2022-03-19 13:16:51

*Thread Reply:* May I ask why you wanted a hot spot at the expense of WiFi? What are your plans for a hot spot? For WiFi?

Al Jones
2022-03-19 14:15:39

*Thread Reply:* @Bob Hassett I'm not sure I understand. At the moment my "tractor" and laptop both get their separate and distinct IP addresses from a single router wirelessly. Not sure if you consider that a hot spot or wi-fi.

Bob Hassett
2022-03-19 14:32:07

*Thread Reply:* Could you pass video with that set up? Video from the tractor to the laptop and vis versa? can program and control the tractor over WiFi?

Al Jones
2022-03-19 07:18:21

Just as a reminder, a UDEV rule for a USB connection with no serial number where you use the device ID can look like this:

KERNEL=="ttyUSB[0-9]**", SUBSYSTEM=="tty", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", ENV{USB_HUB_TYPE}="1a86:7523" ENV{USB_HUB_TYPE}=="1a86:7523", KERNEL=="ttyUSB[0-9]**",SUBSYSTEM=="tty", KERNELS=="1-1.4:1.0", SYMLINK+="ttyIMUNano"

In retrospect, I was dumb enough to use a nano clone that has a CH341 chip and no serial number. (annoying). To deal with that my udev rule is fragile because I have to use the device id of 1-1.4:1.0 as the unique identifier. ref

Stack Overflow
Al Jones
2022-03-20 16:24:19

I'm getting a blank screen instead of "lawn tractor" when launching RVIS. Obviously something is not right....

JeffS
2022-03-20 17:54:55

The biggest problem I see with your blank rviz screen is that you don't have anything turned on to display. Set the same display options that the working screen has and you should see something. Do you have a saved "rviz configuration file" somewhere. If so, start it with that or load the config file after it is running.

Al Jones
2022-03-21 06:37:25

*Thread Reply:* Hmmm. I’m guessing then I configured tractor_vis.rvis sometime before...

Al Jones
2022-03-25 05:50:10

*Thread Reply:* I now recall the package lawntractorsim is not on my laptop since I rebuilt it to Ubuntu 20 and ROS Noetic. That is a problem because the installation of that fails. Need to think about this.

Al Jones
2022-03-26 07:58:25

*Thread Reply:* I'm actually not sure why that launch file is failing. It should have worked since that package is installed on the RPi. Maybe the sequence to logon to the RPi first is broken and it tried to launch from the operator laptop instead. More testing required....

Al Jones
2022-03-27 09:20:31

*Thread Reply: Be_st I can do so far with having the package lawn_tractor_sim only installed on the RPi (i.e. tractor) is take out the reference to the *.dae file and replace it with a generic box as part of the robot description and a white sphere as the gps. When I leave the **.dae file in the URDF on the RPi and start RVIZ on the laptop I continue to get errors about not able to find the package/file. You might ask what is different than before? Previously I was running kinetic on the laptop and had lawntractorsim on both the laptop and the RPi. I'm just guessing that prevented this issue previously._

Bob Hassett
2022-03-21 12:49:39

I'm considering using a VNC.. For example, If I go static on my pi's and adjust my router, do I loose protection? But gain access from any where on the internet? …So I have to consider the pros and cons of dynamic vs static. Any comments are appreciated.

JeffS
2022-03-21 13:13:59

From your comments I assume you mean VPN instead of VNC. Do you need access to your base or your tractor from anywhere on the Internet? I think Al uses VPN because his base station goes out over the Internet and comes back in over a cell modem to talk to his tractor. But I may be wrong.

I personally don't open my home network to the Internet (not intentionally, anyway).

If you are only running your computers on your local network then the choice of dynamic vs. static IP is up to you. Making them static then you get away from getting random IP address when you turn them on. But when running dynamic IP the router usually remembers your devices and you will usually get the same IP address each time (at least mine does). But occasionally a different IP address may come up...

Bob Hassett
2022-03-21 13:31:11

It would be fun to operate or update software over the internet. But which is the safest mode? I'd rather not use a cell modem because of the fees involved.

Bob Hassett
2022-03-21 15:02:00

Well, I got RealVNC Home Edition (free service but no tech support) working between mi iPad and my Pi 3 B +. Now I can really screw things up changing ip, usernames, passwords, etc. ;-)

Bob Hassett
2022-03-22 17:22:21

Starting to have some fun. The 2 pi are set with static addresses on eth0 and wlan0. Also quickly experimented with a usb camera on the B+ (Master-Tractor) and can get a still picture over VNC on the iPad.

Bob Hassett
2022-03-22 17:22:21
Bob Hassett
2022-03-22 17:22:21
Bob Hassett
2022-03-24 10:55:13

Is there a meeting to day?

JeffS
2022-03-24 10:55:44

I assume there is...

Al Jones
2022-03-24 11:02:20

*Thread Reply:* Running late

Bob Hassett
2022-03-24 10:56:04

See you in a little bit then.

Ross VonFange
2022-03-24 10:59:28

Bob or Jeff can you post a link?

Ross VonFange
2022-03-24 11:06:09

*Thread Reply:* Thanks. It says the same for me.

Bob Hassett
2022-03-24 11:07:07

*Thread Reply:* Same here

JeffS
2022-03-24 11:08:46

I saw a message in the last few minutes from Al saying he is running late. He didn't say how late. And I can't seem to find the message now. So I am going to wait and see what happens...

Bob Hassett
2022-03-24 11:13:22

*Thread Reply:* Thanks Jeff.

Al Jones
2022-03-24 11:15:45

*Thread Reply:* Trying to get it started now

JeffS
2022-03-24 11:17:53

Al just buried a response in a thread swaying he is trying to start the meeting.

Al Jones
2022-03-24 11:57:57

adjust maps - without warranty 🙂 rvis mapping

JeffS
2022-03-24 19:02:54

Info from today's video meeting:

This video: https://youtu.be/6M6iLDKJ8B0

Chat: Jeff: https://github.com/rst-tu-dortmund/teb_local_planner/blob/melodic-devel/scripts/cmd_vel_to_ackermann_drive.py Jeff : https://www.youtube.com/watch?v=I_5leJK8vhQ

Index: 00:00 Jeff: Gives a demo of the cmdveltoackermanndrive converter. 06:30 Jeff: Gives a demo of his progress with a 4-wheel Ackermann vehicle in Gazebo. 16:30 Al: Asks how you get odom messages from gazebo. 21:50 Bob: Asks if the simulator and physical machine are interchangeable. 28:45 Jeff: Talks about trying to photograph addressable LED strips. 37:55 Bob: Talks about his radio and Raspberry Pi experiments. Wireless communication setup. VNC vs. remote desktop.

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos Index for the original ROS Agriculture group (~250 videos) and the new Lawn Tractor Automation group: http://sampson-jeff.com/RosAgriculture/

YouTube
} Lawn Tractor Automation (https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ)
JeffS
2022-03-25 00:02:08

@Al Jones I figured out why my rviz would not display today. My command line said this: rviz -d catkinws/src/picar/src/ackermannvehiclegazebo/acknew.rviz So if I start it from my home directory it finds the .rviz file and works. If I start it anywhere else it does not work. I added the "~/" in front of catkinws and it is fixed. Like this: rviz -d ~/catkinws/src/picar/src/ackermannvehiclegazebo/ack_new.rviz That forces the search path to start for the home directory. So you may have a similar problem in your launch file.

👍 Al Jones
JeffS
2022-03-25 00:28:47

Here is a screen shot. Image on the left is rviz. You can see the joints connecting the pieces to base_link in the back. The lower right is the Gazebo screen with the laser scan visualization turned off. And upper right is an actual photo. I added the IMU and it is publishing. I don't know if it is valid data. I added a non-functional GPS antenna in the front just for bling...

JeffS
2022-03-28 02:09:30

I just ran into the fact this no linger works in Ubuntu20.04/Noetic: rosrun tf view_frames You have to do this to install tf2_tools: sudo apt install ros-noetic-tf2-tools Then you can do this: rosrun tf2_tools view_frames.py You can still do this to display it: evince frames.pdf

👍 Al Jones
JeffS
2022-03-29 21:19:20

I think I have my Ackermann robot driving with movebase and teblocal_planner. At least it will drive to 4 points and come back to close to the starting point. I'm sure it needs lots of tweaking. I just now disabled AMCL and replaced it with a static transform publisher to put odom on top of map. And all of a sudden it was working.

JeffS
2022-03-31 11:55:36

To view footprint:

JeffS
2022-03-31 15:04:03

Info from today's meeting:

03312022 ROS Lawn Tractor Automation meeting This video: https://youtu.be/WIWNgo5GFBQ

Chat: None

Index: 00:00 Al: Gives progress report. Steering, RVIZ not working correctly, some outdoor testing 09:05 Jeff: Gives demo of Gazebo progress. 11:25 Jeff: Shows the output of viewframes. 12:10 Starting Gazebo. 14:00 Driving with joy->cmdvel->ackermann launch file. 16:50 Driving with joy->ackermann launch file. 18:30 Adding some obstacles to the Gazebo world, just for fun. 19:00 Starting movebase launch file with standard differential drive local planner. 21:55 Starting movebase launch file with TEB local planner. And some obstacle avoidance. 32:50 Discussion on what to do next. 34:00 Jeff: Again fights with Linux version of Zoom to stop screen sharing. Then just kills the whole thing... After watch in the video it looks like screen sharing stopped as soon as I clicked "New share". So I probably could have just exited at that point and the screen sharing would be done. 35:25 Discussion of a "flat" URDF file vs. a file with macros. 40:30 Al: Talks about changing values in his URDF and expected that to be the robot footprint (it's not). 44:45 Restating of how to add footprint to RVIZ. Jeff then wastes a lot of time trying to post an image of the topic screen. 52:20 Jeff finally displays the image to select footprint... 53:45 Talk about getting dimensions of other vehicles to see if they can be reproduced.

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos Index for the original ROS Agriculture group (~250 videos) and the new Lawn Tractor Automation group: http://sampson-jeff.com/RosAgriculture/

YouTube
} Lawn Tractor Automation (https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ)
JeffS
2022-04-01 03:11:54

Al was whining around about seeing my URDF file. So I hacked and slashed and created a separate workspace. I copied it to a new harddrive and resolved the dependencies. And it seems to work. So maybe tomorrow (actually later today) I may post this to a git-hub. So if you have a computer with Ubuntu 20.04 and Noetic then you can play with it.

Bob Hassett
2022-04-02 11:04:43

*Thread Reply:* @JeffS Thank you for finding that. It looks very interesting.

Bob Hassett
2022-04-04 08:55:56

*Thread Reply:* I've been reading up on Docker Containers, advantages/disadvantages. ROS has a lot of resources that can be incorporated but ROS 2 has a small fraction of that. I'm wondering about the role of containers in automating our small machines. What would a software platform look like if containers are used in our small machines? Is it worth the learning curve given the learning curves needed for ROS, python….etc?

JeffS
2022-04-04 18:32:41

I can't figure out how to use github. So I am giving up on that. If I want to upload my catkinwssim to here: https://drive.google.com/drive/folders/1t2P2sfiranPe10fmUBUnnVvKNgrfybAV How do I do that? Can I upload directly? Or do I have to upload to my "My Drive" and share it? Or should I just ZIP it and upload to my web site?

JeffS
2022-04-04 18:57:27

I see there is a "+ New" button on the google drive page. (Instead of calling it "Upload".) I uploaded my catkinwssim directory. It said 1 file failed "CMakeLists.txt", but it doesn't tell me which "CMakeLists.txt" file they are talking about. I see I should have added a higher level directory so I could name it. So maybe I will delete it and try a few more times...

JeffS
2022-04-04 20:04:46

Okay, I finally got it to work... If you want to try to install this: I used Ubuntu 20.04 and ROS Noetic. If you did a rosdesktopfull install then Gazebo should already be loaded. Then go here: https://drive.google.com/drive/folders/1t2P2sfiranPe10fmUBUnnVvKNgrfybAV And go into jeffsackermannsimulation you should see a catlinwssim directory. If you click on that and do a download (under the 3 dots by the trash can in upper right hand corner) it will generate a ZIP file and down load to your downloads directory. You can unzip it there. Go into the resulting directory and copy the catkinwssim directory to your home directory.

I assume your .bashrc has: source ~/catkin_ws/devel/setup.bash and replace it with: source ~/catkin_ws_sim/devel/setup.bash Restart all of your terminal windows. The README.md file has a list of dependencies to load. (If you know what you are doing you could probably fix these with rosdep. But I just loaded them.)

Open a window and go to the catkinwssim directory and do: catkin_make If that works then I noticed the zipped file transfer deleted the execute permissions on the Python files. So you have to fix those. If you get that far then you can execute the launch files listed in the README.md file.

Or, if you don't want to waste a lot of time and just want to look at the files, you can look at them on Google drive. Or down load them to your computer and dig through them there.

There is no guarantee this is going to work...

Al Jones
2022-04-09 10:39:51

*Thread Reply:* I was able to download the folders and run catkin_make. Still working through it....

Al Jones
2022-04-09 11:58:20

*Thread Reply:* Have a clean start

JeffS
2022-04-09 12:00:33

*Thread Reply:* 🙂

Al Jones
2022-04-09 12:01:24

*Thread Reply:* Notes here

Al Jones
2022-04-09 13:18:12

*Thread Reply:* My joystick axes for speed and steering are slightly different

Al Jones
2022-04-09 13:36:06

*Thread Reply:* roslaunch nav joyop.launch is working and able to drive around, but have not yet figured out why roslaunch nav joy.launch is not publishing from /joy to /cmd_vel.

JeffS
2022-04-09 13:38:03

*Thread Reply:* You could skip joy.launch for the moment. And move on (since joyop.launch works).

👍 Al Jones
Al Jones
2022-04-09 14:19:51

*Thread Reply:* Able to give the tractor a 2DNav goal in RVIS...thanks for sharing @JeffS

JeffS
2022-04-09 14:21:54

*Thread Reply:* 👍

Al Jones
2022-04-11 06:00:27

*Thread Reply:* I attempted to rebuild my machine and am now getting this error. Will try again.

JeffS
2022-04-11 11:23:08

*Thread Reply:* It has probably been doing that all along. Mines does.

In Gazebo (which is what you are showing) something is trying to access the model which apparently hasn't been loaded yet. But it still catches up and runs.

The first time (and other random times) it seems to take forever for Gazebo to start up.

JeffS
2022-04-05 21:05:56

The maker of LinoRobot will be on HBRobotics April 27th general meeting. The get a Zoom link you can check here https://groups.google.com/g/hbrobotics closer to the meeting date. ( I will post again if I don't forget.)

JeffS
2022-04-05 22:56:13

Steve Macensk, who is in charge of ROS2 Nav2, is giving a presentation April 9th at the RSSC group. https://www.rssc.org/ To get the Zoom link you have to sign up for their Google group. Which is listed on the RSSC web site. It was mentioned tonight that Nav2 already has waypoints built-in and you can create a "keep out" layer to go along with navigation.

rssc.org
JeffS
2022-04-05 23:43:43

Or you can go here to get the Zoom link for the Nav2 presentation on April 9th. https://groups.google.com/g/hbrobotics/c/79CbH7J_2nc

JeffS
2022-04-06 00:01:28

This is interesting, in case your tractor drives off a cliff... https://www.youtube.com/watch?v=cI1SXZQk_H8

YouTube
} Daniel Gonzalez (https://www.youtube.com/user/DJGCrusader)
JeffS
2022-04-07 03:31:45

I was able to put macros back into my URDF file for my 4-wheel Ackermann vehicle. Now I can define a vehicle like this: (These are numbers for Al's lawn tractor.) ```<?xml version="1.0"?> <robot xmlns:xacro="http://www.ros.org/wiki/xacro" > <!-- Wheel and frame Properties for Al's Cub Cadet -->

<xacro:property name="hub_dia" value="0.15"/>

<!-- chassislength is measured along the x axis, chassiswidth along the y axis, and chassisheight along the z axis. --> <xacro:property name="chassislength" value="0.75"/> <!-- 0.505 --> <xacro:property name="chassiswidth" value="0.33"/> <!-- 0.25 --> <xacro:property name="chassisheight" value="0.01"/> <xacro:property name="chassis_mass" value="2.788"/>

<xacro:property name="mainlink" value="baselink" /> <!-- hubdia and tiredia are the diameters of the hub and tire, respectively. --> <xacro:property name="tirefrontdia" value="0.356"/> <xacro:property name="tirefrontwidth" value="0.159"/> <xacro:property name="tirereardia" value="0.483"/> <xacro:property name="tirerearwidth" value="0.229"/>

<!-- Wheel spacing is cener to center --> <xacro:property name="wheelspacingfront" value="0.851"/> <xacro:property name="wheelspacingrear" value="0.737"/> <xacro:property name="wheelbase" value="1.219"/>

<xacro:property name="wheel_mass" value="0.29"/> <!-- ?????? -->

<xacro:property name="axle_length" value="0.03"/> <!-- 0.05 -->

<xacro:property name="axleefflimit" value="5.12766"/> <xacro:property name="axlevellimit" value="244.8696"/> <xacro:property name="servostalltorque" value="0.5649"/> <xacro:property name="servonoload_speed" value="4.553"/>

</robot> The values that actually define his vehicle are: <xacro:property name="tirefrontdia" value="0.356"/> <xacro:property name="tirefrontwidth" value="0.159"/> <xacro:property name="tirereardia" value="0.483"/> <xacro:property name="tirerearwidth" value="0.229"/> <!-- Wheel spacing is center to center --> <xacro:property name="wheelspacingfront" value="0.851"/> <xacro:property name="wheelspacingrear" value="0.737"/> <xacro:property name="wheelbase" value="1.219"/>``` I added my sensors on his vehicle so it would do something interesting. Here are some pictures.

JeffS
2022-04-07 16:47:13

Info from today's video meeting:

04072022 ROS Lawn Tractor Automation meeting This video: https://youtu.be/Mqk1Mmqk24g

Chat: Jeff: The original R/C car I started with: https://gitlab.yonohub.com/mohamedahmed/picar

Index: 00:00 Al: Gives progress report. He is testing his GPS outdoors as a standalone device. He talks about how to fix view_frames for Noetic. 02:15 Al: Has installed the new Ubiquity image for Noetic on Raspberry Pi. 04:15 Jeff: Points out they are to "fix" the Ubiquity image. Then Al will have his problems back. 08:20 Discussion of what Al's GPS base station consists of. 13:40 Jeff: Starts to explain his new phase-2 URDF files that use macros. 18:50 Start of live demos. Demos of the new URDF with Al's Cub Cadet dimensions. 25:00 The parameter file is changed to Jeff's Sammy robot. A demo of that. 27:50 Talk about tweaking parameters. 28:40 Al: Asks if the obstacle avoidance works. So we test it out. 33:00 Attempt to cancel navigation (since it can't reach goal). A new goal is selected. 35:25 Question about which versions of ROS this will work on. 36:45 Jeff: Complains about github. "Maybe" eventually release this on github. 38:15 Al: Summarizes the way he thinks it works. Then asks how difficult was it to make this work. 39:45 More in-depth view of what is required. 45:40 Several changes were made to Al's vehicle which may improve steering angle. That is tested. 49:00 Jeff: Explains some of the strange issues he was fighting with. More details on how the macros work. 56:20 Jeff: Fights with Linux/Zoom again to shut down screen sharing. And Al asks about link to the original R/C car model. 58:35 History on the R/C car URDF. 59:50 A search is started to find the R/C car link that Jeff started with. 1:04:00 Jeff: Posts the link to the original (that he started with) R/C car. 1:06:15 Jeff: Says he cut the sensor code from the URDF and put it in an include file. 1:07:15 More talk about github. 1:10:50 Al notices that Jeff put all this code out on the shared Google drive. 1:15:40 Bling...

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos Index for the original ROS Agriculture group (~250 videos) and the new Lawn Tractor Automation group: http://sampson-jeff.com/RosAgriculture/

YouTube
} Lawn Tractor Automation (https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ)
GitLab
JeffS
2022-04-09 10:00:19

Reminder: The Navigation2 presentation is today. The main meeting starts in 2 hours. (10AM Pacific, 12PM Central, 1PM Eastern) The first hour is something about AI. The second hour is the ROS2 Navigation2 presentation. https://groups.google.com/g/hbrobotics/c/79CbH7J_2nc https://www.rssc.org/

rssc.org
JeffS
2022-04-09 10:23:05

I spent hours yesterday trying to figure out ROS2 and Navigation2. ROS2 is enough different that it is going to be tedious to figure out the differences. The launch files are now Python scripts instead of XML scripts. Most commands start with "ros2". For instance, instead of "rostopic list" it is now "ros2 topic list". And I assume most commands work that way. The Navigation2 is greatly expanded over ROS1. It has lots of plug-ins and lots of planners...

I spent enough time to know what I don't know. But I now have enough background to at least be able to follow today's presentation on Navigation2.

Hopefully by our next video meeting I will have nav2 running under ROS2 talking to the Gazebo simulator running under ROS1. (Mainly as an experiment.)

JeffS
2022-04-10 20:15:54

By request... I uploaded my phase 2 simulation. The one that uses macros to define the vehicle. I put it here again: https://drive.google.com/drive/folders/1t2P2sfiranPe10fmUBUnnVvKNgrfybAV There are various info/instruction files under the main catkinwssim_phase2 directory. Now I will go back to my ROS2 experiments.

Al Jones
2022-04-18 06:33:24

*Thread Reply:* I have phase 2 simulation running, but not yet with cubcadetparam.xacro. I tried commenting out the other .xacro files, leaving the cub cadet, but that threw errors. @JeffS Any advice?

JeffS
2022-04-18 11:03:59

*Thread Reply:* What are the errors you are gettiing?

Al Jones
2022-04-18 19:58:20

*Thread Reply:* Results from initial launch statement after commenting .xacro files, but leaving cub_cadet.

JeffS
2022-04-18 20:07:45

*Thread Reply:* I kind of figured that is what you meant when you said you commented everything out. But... the main code is in acknewmacros.xacro. You can't get rid of that. And it won't run if you don't have the properties defined. (cubcadetparam.xacro)

So as a bare minimum you need

ack_new_macros.xacro cub_cadet_param.xacro or

ack_new_macros.xacro sammy_param.xacro and you can also add sammy_sensors.xacro if you want to sensors to be created.

If you have either above uncommented, what does it do then?

Al Jones
2022-04-19 05:44:57

*Thread Reply:* ack_new_macros.xacro cub_cadet_param.xacro Good deal. Loads without error

Al Jones
2022-04-19 05:47:08

*Thread Reply:* If I add sammysensors.xacro I get the error "GetModelState: model [ackermannvehicle] does not exist", but as you have said before I can ignore that and the model loads.

I moved sammy_sensors.xacro to load at the end and the errors are removed. I also spent time to see how you separated the base machine, from the robot params and the sensors - very nice.

JeffS
2022-04-10 20:51:51

I thought of one more thing that may improve the turning angle for the Cub Cadet. If you search for: &lt;limit lower="${-degrees_45}" upper="${degrees_45}" In: ack_new_macros.xacro You can open up that min/max steering angle to whatever physical angle your lawn tractor will do. I should make that a property...

👍 Al Jones
Gonzalo Mier
2022-04-12 12:30:46

Hi everyone, I have seen that soon you may need a coverage path planner to find the best path to cover a field.

I am right now doing a PhD about coverage path planning: https://www.wur.nl/en/project/Fields2cover-Robust-and-efficient-coverage-paths-for-autonomous-agricultural-vehicles.htm . Part of my PhD is creating an open-source offline Coverage Path Planning Library (in C++). I plan to release it the 16th of May. I hope it will be useful for this project and I could even join to a meeting when the day gets closer for a demo if you want.

If you have any questions, I'm open to talk :)

👍 Ross VonFange, Wilco Bonestroo, Al Jones, Gonzalo Mier
JeffS
2022-04-13 13:49:45

I'm giving up on my ROS1/ROS2 integration, for the moment... Maintaining several terminals in ROS1 and several terminals in ROS2 gets REAL tedious. My biggest problem seems to be that I can't pass the odom frame from ROS1 to ROS2. Maybe none of the frames are getting passed.

By about 4AM I decided I had fought with it long enough. So I gave up. Maybe I will go back to it someday.

Now I have decide what I should be working...

JeffS
2022-04-14 16:20:51

Info for today's video meeting. I haven't done the index yet. I will add that later.

I remember we talked about swapping out Al's Raspberry Pi with a laptop, or adding a laptop to his Raspberry Pi. We talked about architecture. I gave a brief overview of my ROS1/ROS2 integration experiments.

This file: https://youtu.be/U7FOJbe8x3A

Chat: Jeff: youtubedl to download videos: https://askubuntu.com/questions/334081/downloading-multiple-files-with-youtube-dl

Index: To be added...

YouTube
} Lawn Tractor Automation (https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ)
JeffS
2022-04-15 01:44:06

I added the index for today's video meeting:

Index: 00:00 Al: Talks about replicating Jeff's Gazebo simulation experiments. 10:45 Al: Asks about the difference between a physical GPS and a simulated GPS. 15:05 Jeff: Proposes creating diagrams to illustrate the code organization. 16:40 Al: Points out the latest meeting video is getting views. 17:15 We discuss the ability to download all of the meeting videos so you can watch them any time. 20:20 Jeff: Posts the link to download the videos. 21:50 Discussion of how YouTube searches work. 24:15 We go back to discussing physical vehicle vs. simulated vehicle. 25:55 Jeff: Tells story of trying to get ROS1 and ROS2 running at the same time. 27:25 Jeff: Points out an Ackermann controller plug-in for Gazebo. (instead of running an external Python script) 31:00 Jeff: Also found a pure pursuit local planner plug-in for move_base. 41:00 Jeff: Reiterates the steps for the ROS1/ROS2 integration for simulation. 48:30 Al: Questions the stability. 50:00 Al: Talks about moving his code from Kinetic to Noetic for physical vehicle. 50:15 Discussion of pieces involved. Like GPS. And ros-serial.

Bob Hassett
2022-04-15 14:33:37

@JeffS Looking forward to your boxes concept! I think it would help beginning HGAC (haven't got a clue) people like me! @Al Jones How would you incorporate a laptop on your tractor if you go that way? I read some place the new Raspberry Pi 4 with up to 8 GB is as powerful as a laptop? I haven't really dove into that comparison yet.

Al Jones
2022-04-18 06:30:14

*Thread Reply:* @Bob Hassett Re: incorporating a laptop I think Jeff runs a laptop on his today so it would be something similar. I would have a platform I can strap it down to and connect my USB hub into it which is how my RPi drives the various micro controllers today.

JeffS
2022-04-17 22:10:40

On February 28th I said: "On a side note... I have a problem with my [new] neighbors behind me. They have 2 big dogs, Really nice dogs. But they bark when outside, The owners have the nerve to tell me that it is okay if they bark during the day, So I just ordered an air horn: https://www.amazon.com/SeaSense-SL52272-Air-Horn/dp/B0019M3FKA/ref=sr13?crid=2UBZ8F9508ZVZ&keywords=air+horn&qid=1646094381&sprefix=air+horn%2Caps%2C183&sr=8-3|https://www.amazon.com/SeaSense-SL52272-Air-Horn/dp/B0019M3FKA/ref=sr13?crid=2UBZ8[…]s=air+horn&qid=1646094381&sprefix=air+horn%2Caps%2C183&sr=8-3 we''ll see where this goes. (edited)"

and then I said: "I don't want to project the wrong impression. It is not the dogs. It is the owner that thinks it is okay if his dogs bark during the day. We''ll see what happens after a couple of times of the air horn and me pointing out that it is okay if I do that during the day..."

I decided that provoking my neighbors wasn't the best idea...

But tonight I got fed up. (they have have visitors with an extra big dog) I let out a blast with my air horn. A woman came out and quickly let the dogs into the house. She was ignoring me because she knew they were being assholes. We wil see where this goes...

JeffS
2022-04-18 14:49:43

Here is a different shaft encode than what Al is using. I assume it gives the same results. https://www.instructables.com/Magnetic-Shaft-Encoder/

Instructables
Bob Hassett
2022-04-18 18:28:51

The grandkids spent the night with us and got curious about my radio project. So we decided to do some distance tests. The master node was in the house and the slave node was handheld carried out side. In the yard we got RSSI in the -60s. The longest test was some 960 feet with RSSI -130. Even at that distance and signal weakness,, the messages could go back and forth. We also noticed we had to hold down the buttons on the radios for the count of two, before a message was received. I could not help remember @JeffS conversation about having too many layers of software/hardware to deal with. Btw the master node was a raspberry pi 3 B+. The remote was a pi 3. Each one was using the Adafruit RFM9x Oled Bonnet. All in all I was pleasantly surprised at the radio reception at 960 feet. I think I could use the radios to pause a machine. As a next safe step, I'll have to test the radios on the Barbie Jeep.

Al Jones
2022-04-21 11:00:37

B 5 minutes

JeffS
2022-04-21 18:57:29

Info from today's video meeting

04212022 ROS Lawn Tractor Automation meeting This file: https://youtu.be/nVq63fToc4I

Chat: None

Index: 00:00 Al: Talks about replicating Jeff's Gazebo simulation experiments. 09:00 Brief discussion on modifying some things in the URDF file. 13:20 Long discussion about diagrams. 52:45 Jeff: Talks about a Gazebo simulation of a radio direction finding module. 57:00 Discussion switches over to differences between ROS1 and ROS2.

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos Index for the original ROS Agriculture group (~250 videos) and the new Lawn Tractor Automation group: http://sampson-jeff.com/RosAgriculture/

YouTube
} Lawn Tractor Automation (https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ)
Bob Hassett
2022-04-23 08:36:41

*Thread Reply:* Very interesting discussion this week. About that cave simulation….i get the need to designate the location of the transmitter. I can't understand why the students are having an issue with that issue. For me I would think the big issue is how to simulate an active transmitting signal in a 3 dimensional space? How could signal strength could be simulated in a 3 dimensional space? Any suggestions?

Bob Hassett
2022-04-23 10:53:29

*Thread Reply:* Here is an interesting paper. I have not read it. I have requested a copy. https://www.researchgate.net/publication/344312748AGazeboROS-basedCommunication-RealisticSimulatorforNetworked_sUAS

JeffS
2022-04-21 19:15:06

I see YouTube is getting more clever. Now I have to turn off my ad blocker before I can sign in or sign out. (I usually run signed out)

But I just noticed that the description of the video is now available in the first level search. So if you do this: https://www.youtube.com/results?search_query=lawn+tractor+automation

It has a tab/button that will display the description index before you try to view the video (on the recent ones). But at the moment the thumb-nail preview doesn't show up for today's video...

JeffS
2022-04-22 22:59:15

The presentation for Navigation2 has been posted. It is in this video at about the 1 hour mark. I suggest everybody watch the Foxglove presentation. https://www.youtube.com/watch?v=3dqKXSAblvE 0:00 Some AI thing. 1:00 Steve Macenski - ROS2 Navigation2 2:11 Camp Peavy - LinoRobot2 Demo 2:25 Business meeting 2:45 Ross Lunan - OakD Lite camera, Jetson Nanosaur 3:00 Jim - "Orange" robot, speech recognition 3:17 Jim - ROS2 Turtlebot3 simulation demo 3:24 Roman - Foxglove Studio

YouTube
} RSSCRobotics (https://www.youtube.com/user/RSSCRobotics)
Bob Hassett
2022-04-23 09:15:19

For a cave simulation, a DIGITAL static line might help. More or less digitally record cookie crumb locations. Detecting obstacles could be done but how simulate weak radio transmissions? Or for that matter even sound from survivors? Heat signatures? Etc…..

JeffS
2022-04-23 12:06:54

I requested a paper once... and never heard back. But one trick you can try is to copy the title of the paper and put it in a search engine. Sometimes the author will have the PDF on their personal page. That is the case this time. But the PDF link just points back to ieee.

Other people are indexing these (to get clicks/views) and just point back to the "technical paper brokers".

But if you are persistent you may find it. This seems to be the paper: https://sci-hub.se/10.1109/ICUAS48674.2020.9213892

Bob Hassett
2022-04-23 12:20:08

*Thread Reply:* I was able to find some tables/drawings…https://www.semanticscholar.org/paper/A-Gazebo%2FROS-based-Communication-Realistic-for-sUAS-Moon-Bird/5ddb22ff9b97712b0f02af227d9124d153c1108c|https://www.semanticscholar.org/paper/A-Gazebo%2FROS-based-Communication-Realistic-for-sUAS-Moon-Bird/5ddb22ff9b97712b0f02af227d9124d153c1108c

 
JeffS
2022-04-28 14:46:10

Info for today's video meeting:

04282022 ROS Lawn Tractor Automation meeting This video: https://youtu.be/BCIWRfd7L7A

Info: ROS2 TurtleBot3_World tutorial: https://navigation.ros.org/getting_started/index.html LinoRobot: https://linorobot.org/ LinoRobot2: https://github.com/linorobot/linorobot2 HBRC meeting with LinoRobot2: https://www.youtube.com/watch?v=Hj7m2xwlhWY RSSC meeting with Steve Macenski (@ 1 hour mark): https://www.youtube.com/watch?v=3dqKXSAblvE

Index: 00:00 Jeff: Gives a progress update and review. (turtlebot3_world, ackermann vehicle in ROS1) 06:15 Jeff: Reasons to not use the turtlebot3 code for my Ackermann vehicle. 08:10 Jeff: Decided to look at Linorobot2 project for my Ackermann vehicle. 09:45 Live demo of stock Linorobot2 2-wheel drive robot. With Gazebo, RVIZ, Slam, navigation and mapping. 19:30 Switch the stock 2-wheel drive robot to Jeff's Ackermann vehicle. 27:40 Mention of the Home Brew Robotics meeting from the night before. There was a presentation of LinoRobots2. 28:15 What steps are next. 29:00 Why ROS2 at this point? 30:10 Jeff's experience/impression of ROS2 so far. (Just a few weeks of hack and slash.) 39:40 Mention of the RSSC meeting with presentation by Steve Macenski on ROS2-Navigation2.

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos Index for the original ROS Agriculture group (~250 videos) and the new Lawn Tractor Automation group: http://sampson-jeff.com/RosAgriculture/

YouTube
} Lawn Tractor Automation (https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ)
JeffS
2022-05-05 11:21:06

The video meeting this week has been cancelled due to lack of interest.

JeffS
2022-05-05 14:44:30

Do we still have any ROS1/ROS2 experts on the list?

Can someone give me a simple/quick explanation of overlays? Overlays may fix my problems...

Can someone tell me how to install/remove packages without installing all of the associated pieces that are included with meta-packages?

I am currently trying to remove gazeborospkgs. It wants to remove other things. Then I want to install ros-simulaion as a git-hub clone in my workspace. But then it will complain that things are missing. If I try to install one of them, it will insist on reinstalling everything. Which will bite me...

Maybe "overlays" will get me around this. But they don't want to explain "overlays" to me. So I am screwed...

If no one here knows, I will elevate this to Home Brew Robotics Group. If they don't know. I will elevate this to the world-wide ROS world.

So I may end up looking like a fool, or it will point out that the documentation is inadequate.

I will start here..

JeffS
2022-05-06 20:35:54

Cute story about John Deere and "Right to repair" https://www.youtube.com/watch?v=h0kbx8zJZvQ

YouTube
} Beau of the Fifth Column (https://www.youtube.com/c/BeauoftheFifthColumn)
Bob Hassett
2022-05-07 08:31:17

The ONLY benefit of closed/proprietary Ag software! I'd love to see JD drive their stuff back to Ukraine!

VKuehn
2022-05-08 14:30:46

yes don't like that too but driving back where the stuff belongs is really what should happen and would be the only valid reason for such a backdoor

JeffS
2022-05-12 20:19:10

I have this weeks Zoom meeting indexed and ready to release, but Google/YouTube has decided to "mess" with me. (I can't say what I want to...) So If the second attempt to upload it works then I will post it...

JeffS
2022-05-13 13:23:48

I am calmer today... I will delete my rants from yesterday. But it had pushed me to the edge. After several hours the YouTube was still at 39%. So I cancelled that and started it over. Slack was giving me grief. Probably my own fault. And my Internet was giving me fits. But I fixed everything and added a huge block of links (that may be useful...) So I will post the announcement.

JeffS
2022-05-13 13:25:50

This weeks video info:

05122022 ROS Lawn Tractor Automation meeting This video: https://youtu.be/3RJmOFJivNo

Info: (Other websites mentioned)

picar (What I started with) https://gitlab.yonohub.com/mohamedahmed/picar/-/tree/master/ (Newer version of Picar) https://github.com/aizzat/ackermann_vehicle control commands: ackermannmsg model: URDF control software: ackermanncontoller.py linkage: topics -> joint transmission

Linorobot2 https://github.com/linorobot/linorobot2

Linorobot2 - 2wd
  control commands: cmd_vel
         model: URDF
  control software: standard Gazebo differential drove plug-in
       linkage: cmd_vel -&gt; Gazebo differential drive plug-in

Linorobot2 - ack (my hack)
  control commands: ackermann_msg
         model: URDF
  control software: ackermann_contoller.py
       linkage: topics -&gt; joint transmission

olinrobotics This uses a modified version of ackermann_controller from the R/C car (Apparently this is where the tractor model in ROS Agriculture stage simulator came from) https://github.com/olinrobotics/tractor_sim https://github.com/olinrobotics/gravl https://github.com/olinrobotics/gravl/wiki

ROS1 (Kinetic) Prius simulation https://github.com/osrf/car_demo/blob/master/prius_description/urdf/prius.urdf https://github.com/osrf/car_demo/blob/master/car_demo/plugins/PriusHybridPlugin.cc control commands: custom (velocity, steer, shift, brakes) model: URDF control software: Gazebo plug-in linkage: Gazebo plug-in (tf directly to joints?)

ROS2 Prius simulation https://github.com/ros-simulation/gazebo_ros_pkgs/blob/foxy/gazebo_plugins/worlds/gazebo_ros_ackermann_drive_demo.world https://github.com/ros-simulation/gazebo_ros_pkgs/blob/foxy/gazebo_plugins/src/gazebo_ros_ackermann_drive.cpp control commands: cmd_vel model: SDF control software: Gazebo plug-in linkage: Gazebo plug-in (tf directly to joints?)

Other links https://github.com/chrissunny94/ackerman_ros_robot_gazebo_simulation

<https://github.com/benwarrick/simple_ackermann>
<https://github.com/RobotnikAutomation/rbcar_sim/blob/melodic-devel/README.md>
<https://github.com/mfilipen/autonomous-mobile-car-like-robot>
<https://github.com/robustify/audibot>

<https://github.com/srmainwaring/steer_bot>
<http://wiki.ros.org/steer_bot_hardware_gazebo>
<http://wiki.ros.org/cirkit_unit03_simulator>

<https://github.com/froohoo/ackermansteer>

Index: 00:00 Al: Talks about replacing his Raspberry Pi with a laptop computer. He shows his parts he has collected. 04:10 Al: Mentions his LoRa radios. 05:00 Jeff: Mentions that his laptop looks just like Al's laptop. 05:25 Jeff: Talks about collecting parts and next steps. 15:20 Al: Asks about using LoRa radios for remote control. 23:50 Jeff: Gives a recap of software progress. Simulators of various versions... 34:30 Jeff: Talks about trying to convert the ROS1 Ackermann controller Python script to ROS2. 37:00 Jeff: Goes down the path of complaining about his inexperience with ROS2. 44:20 More comments on Olin Robotics. And documentation in general.

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos Index for the original ROS Agriculture group (~250 videos) and the new Lawn Tractor Automation group: http://sampson-jeff.com/RosAgriculture/

YouTube
} Lawn Tractor Automation (https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ)
JeffS
2022-05-13 13:44:50

So the "Algorithm" (The phrase weak-minded people will use) decided I was annoyed so it appended my last two messages together, to get in one last jab...

JeffS
2022-05-19 20:22:43

Zoom has me baffled again. I am watching the replay of today's video meeting. I see the pictures of the "talking heads" seem to be larger than they usually are. It is covering up what people are talking about. I don't know what controls that. Maybe we can't control it? It just seems to randomly change as they do updates.

JeffS
2022-05-19 21:39:39

Info from today's video meeting:

05192022 ROS Lawn Tractor Automation meeting https://youtu.be/aXO2RU56RVw

Al: https://www.pcbway.com/blog/technology/How_to_get_started_with_LoRa_LPWAN_using_TTGO_LoRa32.html Al: https://www.instructables.com/TTGO-ESP32-LoRa-Board-With-DHT22-Temperature-and-H/

Index: 00:00 Al: Talks about his ESP-32 LoRa boards. 04:00 Al: Says his code will not compile. We start a debug process. 25:15 Discussion of how many I/O pins are available on this particular board. 32:20 Jeff: Brings up a comment that someone made about "courteous" use of the LoRa band. Discussion of transmit power. Channel selection. 45:50 Jeff: Reiterates "who is in control?" 49:00 More talk about library maintenance. 1:01:00 Jeff: Makes suggestions about design considerations. Specifically, mounting laptop on lawn tractor.

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos Index for the original ROS Agriculture group (~250 videos) and the new Lawn Tractor Automation group: http://sampson-jeff.com/RosAgriculture/

YouTube
} Lawn Tractor Automation (https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ)
JeffS
2022-05-21 10:45:05

Here is some information on Oak-D cameras. https://groups.google.com/g/hbrobotics/c/UMF7TA1gTXs

JeffS
2022-05-27 22:12:07

Info from this week's video meeting. They just posted the HBRobotics meeting so I added that on to the chat section. I am about to watch that.

===========================================

05262022 ROS Lawn Tractor Automation meeting This video: https://youtu.be/lXCd9lwkwkk

Chat: We were talking about Bob's giant sheep. So I posted a link Robot Shop of Horrors and a link to the day at Bob's house. Jeff: http://sampson-jeff.com/rsoh/ Jeff: http://sampson-jeff.com/rsoh/010617/ Al posted a video of what he wants to do. Al: https://www.youtube.com/watch?v=dePHLU3Oof8 Link to Ava-V2 write-up. Jeff: https://www.robotshop.com/community/robots/show/ava-v2 Link to Articulated Robots YouTube page. Jeff: https://www.youtube.com/channel/UCx9vSJTSZGFrErfPtut5GNQ Link to Home Brew Robotics Group YouTube meetings. Jeff: https://www.youtube.com/user/hbrobotics Link to the meeting with the Ava-V2 robot. https://www.youtube.com/watch?v=ijS7iwU9IfQ

Index: 00:00 Al: Talks about his ESP-32 LoRa boards. 02:45 Al: Talks about errors he is getting trying to compile. 27:00 Jeff: "I have nothing..." 27:20 Jeff: Mentions the HBRobotics meeting from yesterday. Posts a link to the "Ava" robot. 31:40 Jeff: Posts link to Articulated Robots on Youtube which has new videos added.

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos Index for the original ROS Agriculture group (~250 videos) and the new Lawn Tractor Automation group: http://sampson-jeff.com/RosAgriculture/

YouTube
} Lawn Tractor Automation (https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ)
Bob Hassett
2022-05-30 10:27:03

*Thread Reply:* @JeffS Thanks for the trip down memory lane!

JeffS
2022-05-27 23:02:53

The Ava-V2 presentation starts at 48:20 in this video: https://www.youtube.com/watch?v=ijS7iwU9IfQ

YouTube
} Home Brew Robotics Club (https://www.youtube.com/user/hbrobotics)
Al Jones
2022-05-28 23:11:37

Able to get to TTGO ESP32 lora board talking and sharing data. The receiving board also pushes the data to a web server. Tutorial is here

Random Nerd Tutorials
Bob Hassett
2022-05-30 10:28:57

*Thread Reply:* @Al Jones Very interesting. Anyway you could measure response times for remote control?

Al Jones
2022-05-30 18:48:04

*Thread Reply: @Bob Hassett I may not be exactly answering your question, but I'm transmitting about 30 characters of data (e.g. Data received: 15/78.24&35.59#981.38@2911$1184*0) still close to one another with a delay of 500 ms (i.e. 2 hz) with CRC enabled and not seeing any corrupted data. The RSSI is -48 so things are looking OK. I need to move farther apart and see what happens. My goal is 500 feet because I'm not really interested in much further distance than that. I have the power set at 20 and a SyncWord of 0xF1.

JeffS
2022-06-02 23:18:18

Info from video meeting today.

This video: https://youtu.be/7TXn6GktyYw

Chat: Jeff: Ardusimple review: https://www.ardusimple.com/field-test-evaluation-of-the-ardusimple-simplertk2blite-zed-f9p-operating-in-rtk-mode-on-the-south-carolina-virtual-reference-network Jeff: https://www.tandfonline.com/doi/full/10.1080/15481603.2020.1822588

Index: 00:00 Al: Talks about his ESP-32 LoRa boards. Shows his prototype box and talks about which pins he is using. He says he wants to use LiPo batteries since his "Power Bank" battery won't stay powered up. Lists his requirements and a test plan. 08:35 Al: Asks why his pots give him an over-range value. 09:45 Jeff: Asks how Al will use LiPo batteries. And LiPo charging. Discussion of using a USB charging battery through the USB connector. 25:20 Jeff: Talks about a article on GPS receivers. And posts a couple of links. 30:30 Mention of fire ants... 31:10 Discussion of distance from correction server. Discussion of survey markers. 34:15 Al: Asks if there were any new messages on Slack channel.

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos Index for the original ROS Agriculture group (~250 videos) and the new Lawn Tractor Automation group: http://sampson-jeff.com/RosAgriculture/

YouTube
} Lawn Tractor Automation (https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ)
ArduSimple
JeffS
2022-06-09 12:49:38

We didn't record the video meeting today. But Al told me about his plans to manage his cows. And then we spent a long time brainstorming ways to cut and transport grass using lawn tractors.

Bob Hassett
2022-06-09 12:53:24

What are some ideas for cut and transporting grass?

JeffS
2022-06-09 15:06:00

We talked about pulling a small lawn trailer, cutting grass without pulverizing it (sickle blade, hedge trimmer, rotating blades) and how to get grass from gound level to the trailer (conveyor, vaccum blower, auger, oscillating fingers, rotating brushes). And it would be handy to figure out a way to unload the grass at the feeders.

Bob Hassett
2022-06-09 15:40:11

Hmm sounds like green chopping for cattle? What kind of volume is produced, how high does it have to be elevated? Maybe something like the old grain binders, sickle up front, rotating sweep, then a small elevator on the side or directing behind into a small manure spreader? So the sickle, sweep and catching canvas is in front of the garden tractor. The canvas rotates left or to right into a small elevator thats on the side, going up and into a pull behind small manure like spreader. The spreaders/forage box type that have chains that move the pile to the rear of the wagon?

JeffS
2022-06-10 10:36:06

I found this: Using Windows Subsystem for Linux (WSL2) with ROS https://groups.google.com/g/hbrobotics/c/9_MtHpycjIw

JeffS
2022-06-16 20:17:44

Info from today's video meeting:

===========================================

06162022 ROS Lawn Tractor Automation meeting This video: https://youtu.be/rzZ7O4wVHAU

Chat: Al: https://www.aliexpress.com/item/2251832810444969.html?spm=a2g0o.order_list.0.0.6dbf18021y06fP Jeff: https://learn.adafruit.com/adafruit-feather-m0-radio-with-lora-radio-module/using-the-rfm-9x-radio Al: https://www.youtube.com/watch?v=hL5wzYBbuYU Al: https://github.com/sandeepmistry/arduino-LoRa/blob/master/examples/LoRaDuplexCallback/LoRaDuplexCallback.ino Jeff: rf95.waitAvailableTimeout Al: https://github.com/CytronTechnologies/RFM-LoRa-Shield-Examples/wiki/Arduino-Sketches-Overview Al: https://www.seeedstudio.com/blog/2020/08/03/lorapedia-an-introduction-of-lora-and-lorawan-technology/

Index: 00:00 Al: Talks about his ESP-32 LoRa boards. Al asks if Jeff's communication is bi-directional. We track down some examples... 11:40 Al: Shows some code he found. 20:00 Jeff: Goes looking for his code... 23:40 Short discussion of old vs. new laptops. 26:00 Al: Logs into a remote computer looking for his Arduino code. 38:05 Some digging through the Cytron website.

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos Index for the original ROS Agriculture group (~250 videos) and the new Lawn Tractor Automation group: http://sampson-jeff.com/RosAgriculture/

YouTube
} Lawn Tractor Automation (https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ)
Al Jones
2022-06-23 10:35:10

Today's meeting is getting pushed to 3:30 (CT)/4:30(ET)

JeffS
2022-06-23 20:21:32

Info from today's video meeting

06232022 ROS Lawn Tractor Automation meeting This video: https://youtu.be/dOWqqKUjeBA

Chat: (I lost the link to Al's GIST page.) Al: https://randomnerdtutorials.com/power-esp32-esp8266-solar-panels-battery-level-monitoring/

Index: 00:00 Al: Talks about his ESP-32 LoRa boards. He goes through some code. 04:45 Short discussion of pre-compiler options. 08:25 Mixing code examples. 11:00 Al: Talks about powering his LoRa board with solar panels. 13:00 Jeff: Talks about measuring engine RPM on a small engine. 14:20 Method to read alternator waveform. 22:15 Method to read the magnets on the flywheel. 28:40 Demos of the proximity sensor and the Hall effect sensors. 40:45 If you have a magneto then the transistor circuit that was shown may work on the primary side. 42:25 Optical sensing. 45:50 Bob had asked about cows...

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos Index for the original ROS Agriculture group (~250 videos) and the new Lawn Tractor Automation group: http://sampson-jeff.com/RosAgriculture/

YouTube
} Lawn Tractor Automation (https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ)
Al Jones
2022-06-24 06:20:55

I have been able to get the send and receive example from Adafruit working with the TTGO ESP32 Lora boards

Adafruit Learning System
Bob Hassett
2022-06-25 08:37:49

Congratulations!

JeffS
2022-07-01 00:25:35

Info from today's video meeting

06302022 ROS Lawn Tractor Automation meeting This video: https://youtu.be/EbD1vzlYa-g

Chat: None

Index: 00:00 Al: Talks about his ESP-32 LoRa boards. 06:15 Al: Goes through some of his code. He talks about an addressable LED strip for status display. 08:55 Al: Talks about the code to run the LoRa radio. 12:45 Jeff: Shows his (remote control end) code and talks about it. 32:45 Some discussion of e-Stop condition vs. pause condition. 36:20 Discussion of timeouts. 44:20 Jeff: Shows his (vehicle end) code and talks about it.

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos Index for the original ROS Agriculture group (~250 videos) and the new Lawn Tractor Automation group: http://sampson-jeff.com/RosAgriculture/

YouTube
} Lawn Tractor Automation (https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ)
JeffS
2022-07-07 19:11:38

Info from today's video meeting:

07072022 ROS Lawn Tractor Automation meeting This video: https://youtu.be/f_n1r3Hva0U

Chat: Al: https://gist.github.com/jones2126/73eb93df2c8eead98ce4fab4d6cfe5fe Al: https://gist.github.com/jones2126/fd3a5d0ae8eac66f42afc491b2490573 Al's version 2 LoRa remote: https://youtu.be/Parj9fLj3Oo

Index: 00:00 Al: Talks about his ESP-32 LoRa boards. Posts links to code. 09:15 Jeff: Talks about his lawn tractor. 19:25 Al: Talks about using Google Remote Desktop. 21:30 Jeff: Talks about steering control and extra sensors.

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos Index for the original ROS Agriculture group (~250 videos) and the new Lawn Tractor Automation group: http://sampson-jeff.com/RosAgriculture/

YouTube
} Lawn Tractor Automation (https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ)
JeffS
2022-07-08 09:39:32

Here is a direct link to Al's LoRa remote version 2. I see if I delete a YouTube reference from a post, there doesn't seem to be a way to add it back on... https://youtu.be/Parj9fLj3Oo

YouTube
} Lawn Tractor Automation (https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ)
JeffS
2022-07-14 20:18:18

Info from today's video meeting

===========================================

07142022 ROS Lawn Tractor Automation meeting This video: https://youtu.be/UYDreA0QmGg

Chat: Al: https://github.com/jones2126/ttgo_projects Al: How to use GIT / Github in VSCODE for PlatformIO | Teensy | Arduino | Embedded System Al: https://www.youtube.com/watch?v=13wmV6gcb2A&t=329s Al: From https://randomnerdtutorials.com/vs-code-platformio-ide-esp32-esp8266-arduino/#2

Index: 00:00 Al: Explains that he has figured out git-hub. He is using it with VS-Code. He is also using PlatformIO. 11:30 Jeff: Asks about some finer points on building/maintaining the git-hub page. 17:15 Jeff: Gives an update on his lack of progress. 20:15 Al: Goes over a wish list. 20:55 Jeff: Asks about Lithium Ion battery holders. And then some talk about 3D printers.

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos Index for the original ROS Agriculture group (~250 videos) and the new Lawn Tractor Automation group: http://sampson-jeff.com/RosAgriculture/

Language
C++
Last updated
4 days ago
YouTube
} Lawn Tractor Automation (https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ)
Bob Hassett
2022-07-16 20:47:55

After watching the last 2 weekly meetings about LoRa I ran across this You Tube about LoRa and GPS. Kinda interesting. No sure I like the distance accuracy of zero to 2 meters. Maybe a better GPS module would work?

https://youtube.com/watch?v=90ziiwkOJFw&feature=share.

YouTube
} Sayanee Basu (https://www.youtube.com/c/SayaneeBasu)
JeffS
2022-07-16 21:16:16

I don't mean to be rude... But you need to listen to what they are saying. She goes on and on about batteries and 3D printing (and someting else I missed). But at no point does she mention precision GPS. She is throwing a bunch of random concepts together to make it sound like she knows what she is talking about.

You have have been following this long enough to say "Maybe a better GPS module would work?" So yes, you saw through what she was saying...

She is presenting lots of facts that mean nothing. I am proud of you Bob for seeing through her nonsense.!!!

VKuehn
2022-07-17 02:42:56

None Military GPS will never be more accurate. If you need that look for RTK which is basically two GPS with interpolated values.

Bob Hassett
2022-07-17 06:48:32

Thanks for the feedback! Like you said Jeff, I was just very interested in the basic concepts like sending GPS over LoRa and the discussion on batteries. Just wondering in general what kind of accuracy folks ARE getting and equipment needed used? If I remember, Jeff was using differential?

Bob Hassett
2022-07-17 07:09:08

I had to look up the mentioning of haversine calculations http://www.movable-type.co.uk/scripts/latlong.html Seems rather complicated. How are other people calculating GPS distance?

JeffS
2022-07-17 14:58:49

I am running RTK on u-blox F9P with free correction data from the Minnesota Department of transportation. I get 1-2 centimeter accuracy. The easiest way to convert lat/lon to a usable position is to just grab someone's code that does it.

Bob Hassett
2022-07-18 11:08:23

*Thread Reply:* Thanks for the info! Obviously that seems the best route to follow!

JeffS
2022-07-21 19:52:06

Info from today's video meeting:

===========================================

07212022 ROS Lawn Tractor Automation meeting This video: https://youtu.be/iDeE69qRH3k

Chat: Al: https://www.amazon.com/Leviathan-Penguin-Classics-Thomas-Hobbes/dp/0141395095/ref=sr_1_2?dchild=1&keywords=Thomas+Hobbes&qid=1620765914&sr=8-2 Al: https://youtu.be/faOb2YV_-Tg Al:https://github.com/DSG-UPC/Arduino-LoRa-Mesh

Index: 00:00 Al: Is talking about his LoRa project. He found a new LoRa library. 08:25 Jeff: Talks about his lawn tractor progress.

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos Index for the original ROS Agriculture group (~250 videos) and the new Lawn Tractor Automation group: http://sampson-jeff.com/RosAgriculture/

YouTube
} Lawn Tractor Automation (https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ)
JeffS
2022-07-22 18:39:07

After much screwing around, much guessing and much anxiety... I drilled down through my floor pan. (You can see the video yesterday to see the background on this.) Both sides did hit the center of the frame rails. The holes were a little further forward than I expected. But there was a lot of guess work that led up to this. I am (mostly) happy with the results I got. After I got everything bolted back together and clamped together it looks like it may (might?) work. Just grabbing it and shaking it, it seems fairly sturdy. Maybe I will dig out my welder tomorrow and make it permanent.

👍 Bob Hassett, Al Jones, Ross VonFange
JeffS
2022-07-26 15:30:41

I got my bottom brace welded today. I will have to see if it is adequate... (Note to self: Buy a bigger welder. Or watch YouTube videos to see how to do a better job...)

Ross VonFange
2022-07-26 16:32:11

If it's MIG your machine might have a feed/tem/material thickness chart to help get close to a setting

JeffS
2022-07-26 16:34:41

It is a the cheapest flux core wire feed welder. I realized after watching a couple YouTube videos that I should go look to see if it has a chart somewhere. I will go do that now...

Ross VonFange
2022-07-26 16:43:23

If you need to wing it and your on something like 1/4 material turn the welder up to 3/4 power and the feed up to 3/4 start a test weld and if the wire isn't melting (pushing) start turning down the feed speed until it stops "pushing/bunching" the wire and sounds like a smooth burning noise. If your burning through the material turn them down in tandem about the same amount.

Clean material (wire brush it first) helps a lot.

Putting the material flat and in an easy posistion helps even more.

I never have liked Flux core IMO the gas add on is well worth it.

Also dragging a bead instead of pushing one is much easier if your new at it.

Ross VonFange
2022-07-26 16:46:20

I'm assuming it's 110 unit. If you have an extension cord make sure it's heavy not a 14 or 16awg especially if it's very long.

JeffS
2022-07-26 17:03:06

This a $89 90amp Harbor Freight special. This is 1/8" material.

To address the original point. There is no chart. It says the "specs" are 55amps or 90amps. It has a switch that says min/max. I started with it set to max. When I just now looked, it is set at min. Which explains why I was getting blobs and no pentration. ( at one point I bumped it and it felt like I has changed a switch position) The first welds looked better.

So I probably need to get some sacrificial stock and practice.

The other points... It is 110VAC and plugged directly into an outlet. I have min and max current setting. I have 1-10 feed rate. And then you hope for the best.

I welded it a couple of times and ground it a couple of times.

JeffS
2022-07-28 15:42:28

Info from today's video meeting:

===========================================

07282022 ROS Lawn Tractor Automation meeting This video: https://youtu.be/YktscLCvVrc

Chat: Al: https://www.youtube.com/watch?v=dLCRxTQ73FA https://www.johnnyseeds.com/tools-supplies/harvesting-tools/greens-harvesters/baby-leaf-harvester-7980.html https://www.youtube.com/results?search_query=quick+cut+greens+harvester

Index: 00:00 Jeff: Talks about his lawn tractor progress. Mechanical stories. Welding stories. 12:10 Jeff: Talks about the impending "Loss of Data" on the Slack channel. 22:15 Al: Talks about his TTGO/LoRa boards. His Platform_IO has stopped working. We talk about his code. 34:05 Al: Shows a small greens harvester.

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos Index for the original ROS Agriculture group (~250 videos) and the new Lawn Tractor Automation group: http://sampson-jeff.com/RosAgriculture/

YouTube
} Lawn Tractor Automation (https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ)
JeffS
2022-07-30 20:41:05

I got my steering to move. As a first test it is working fairly well. I can probably give it way more power. But I didn't want to break anything. Next step is a feedback pot and a microcontroller. https://www.youtube.com/watch?v=_uxsaOqgomU https://www.youtube.com/watch?v=SxwuK75CF2U I had to add an adjustment bolt to keep the motor from pulling up as it actuates. Here is a picture of that.

YouTube
} Jeff Sampson (https://www.youtube.com/user/jws8675309)
YouTube
} Jeff Sampson (https://www.youtube.com/user/jws8675309)
Bob Hassett
2022-07-31 10:37:19

*Thread Reply:* 👍

Al Jones
2022-08-01 14:51:02

*Thread Reply:* I'm impressed how smooth the turning is.

JeffS
2022-08-01 15:51:30

*Thread Reply:* It is smooth because it is not being controlled. It is a constant PWM so the motor is getting constant power. I'm sure once I add closed loop feedback that it won't look so smooth.

Juan Eduardo Riva
2022-08-01 16:06:17

*Thread Reply:* Nice, congratulations.

Bob Hassett
2022-07-31 10:43:30

@Al Jones Maybe adapt/modify the leafy harvest or you found to include some features like the old time “binders” https://youtube.com/watch?v=NSLp7ciddCg&feature=share

YouTube
} 1videon (https://www.youtube.com/user/1videon)
👍 Al Jones
Al Jones
2022-07-31 19:05:53

Initial success using the RadioLib library and data Structures sending and receiving data between two TTGO LoRa ESP32s. Code here with hardcoded sensor values:

Slave/radio control: https://github.com/jones2126/ttgo_board/blob/main/radio_control_slave_v1/src/main.cpp Master/tractor: https://github.com/jones2126/ttgo_board/blob/main/radio_control_tractor_v1/src/main.cpp

🦾 Juan Eduardo Riva
Bob Hassett
2022-08-02 10:57:55

*Thread Reply:* Thanks @Al Jones for posting your code! Makes me want to program my stuff again!

JeffS
2022-08-04 16:21:26

Info from today's video meeting. I do recommend digging through the GOAT channel. (Although his comments about multiple LoRa radios seem a little fishy.)

===============

08042022 ROS Lawn Tractor Automation meeting This video: https://youtu.be/Evp_g1RZaSg

Chat: Jeff: Jeff's steering motor videos https://www.youtube.com/watch?v=_uxsaOqgomU https://www.youtube.com/watch?v=SxwuK75CF2U Al: Code https://gist.github.com/jones2126/11557c73abbde5d32298918804950342 Jeff: The GOAT channel https://www.youtube.com/channel/UC_fquXcal5kvQXsbDxuiJhA

Index: 00:00 Al: Talks about his radios and computer configuration. 06:30 Jeff: Talks about Slack messages and the 90-day message limit. 13:40 Jeff: Talks about his power steering motor on his lawn tractor. 34:50 Jeff: Talks about adding videos to his personal page instead of the Lawn Tractor page. 38:40 Jeff: Talks about YouTube maintenance. 40:00 Jeff: Mentions the exposure on YouTube, specifically the old ROS Agriculture page. 41:20 Jeff: Complains about his lighting for Zoom videos. 42:30 Al: Talks about his C code. 44:45 Jeff: talks about "GOAT Industries" that he ran across.

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos Index for the original ROS Agriculture group (~250 videos) and the new Lawn Tractor Automation group: http://sampson-jeff.com/RosAgriculture/

YouTube
} Lawn Tractor Automation (https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ)
Bob Hassett
2022-08-04 19:58:12

*Thread Reply:* I know next to nothing about LoRa Spreading Factors.

I took a look at the GOAT’s 2 videos and came away with more questions than answers. I am suprized he is using RPis instead of something faster.

  1. His interpretation of Spreading Factors.

This https://support.machineq.com/s/article/What-is-the-Spreading-Factor-SF implies for a SINGLE radio.

But he implies that using 4 radios in parallel he can get more SF. I don’t understand his reasoning why he can boost SF. If all radios are set at 7 how does going parallel multiply the SF? Would they all be the same at 7? There for the end result of the 4 is still 7?

  1. He only uses 1 radio to send correction data.

How can that be as good of SF as using 4 radios to boost SF.

Bob Hassett
2022-08-05 10:54:46

*Thread Reply:* I took another look at https://youtu.be/ckd_9kuyRCI.

BTW one can follow the video with the transcript on the side. That helps a lot.

At about 5 minutes he states that with 4 modules he gets zero errors. So does that mean that if you add enough radios you get no errors? So he is blasting out a signal with four radios, like a shot gun saturating a space on a target? I wonder how his coding can look at multiple radio signals and report getting zero errors? Seems rather an expensive solution?

YouTube
} Goat Industries (https://www.youtube.com/channel/UC_fquXcal5kvQXsbDxuiJhA)
JeffS
2022-08-06 19:25:05

I updated the post about this week's meeting video and added the index...

JeffS
2022-08-11 15:56:23

Info from today's video meeting

===========================================

08112022 ROS Lawn Tractor Automation meeting This video: https://youtu.be/fu09BCyIdWM

Chat: https://github.com/jones2126/ttgo_board https://www.cubcadet.com/en_US/snow-blowers/3x-28inch-snow-blower%C2%A0/31AH5DVB710.html#start=0 Kyler Laird's remote control (At around 6:30 is where it lurches): https://www.youtube.com/watch?v=TatrSXJiq0I All of Kyler's Tractobots: https://www.youtube.com/c/KylerLaird/videos

Index: 00:00 Al: Talks about his new 3D printed box for his LoRa remote. 02:00 Al: Presents some code. 07:30 More discussion about the box. 09:00 Jeff: Tells story about garage clean out. And a story about a snow blower. 13:10 Al: Suggests making a snow blower computer controlled. 17:20 Jeff: Talks about his "green screen" and controlling background images. 20:15 Al: Shows an industrial remote control he found. 37:05 Jeff: Comments on where videos were posted on YouTube, and the results.

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos Index for the original ROS Agriculture group (~250 videos) and the new Lawn Tractor Automation group: http://sampson-jeff.com/RosAgriculture/

YouTube
} Lawn Tractor Automation (https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ)
YouTube
JeffS
2022-08-16 11:13:21

Here is something interesting: https://www.youtube.com/watch?v=qWp_-F_zcwo

YouTube
} The DIY Farmers (https://www.youtube.com/c/TheDIYFarmers)
Bob Hassett
2022-08-16 16:08:19

Here you go @Al Jones!

Al Jones
2022-08-16 18:33:23

*Thread Reply:* Perfect

Bob Hassett
2022-08-16 19:10:41

Just pocket change for you oil executives @Al Jones https://www.lely.com/exos/ ;-))

lely.com
JeffS
2022-08-18 23:56:12

Info from today's video meeting.

===========================================

08182022 ROS Lawn Tractor Automation meeting This video: https://youtu.be/1YoKlHvj5hI

Chat: Jeff: https://esp32io.com/tutorials/esp32-button Jeff: batteryhookup.com

Index: 00:00 Al: Talks about progress for his LoRa remote control. He points out some switches and talks about his status LEDs. And battery monitor. 06:25 Al: Talks about his eStop switch. 07:10 Jeff: Asks if the OLED is viewable in sun light. 08:30 Al: Talks about displaying the battery status on his status LEDs. 11:35 Al: Points out where to get cheap batteries. 13:05 Jeff: Isn't doing anything. Then launches into a story about a dirty workbench.

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos Index for the original ROS Agriculture group (~250 videos) and the new Lawn Tractor Automation group: http://sampson-jeff.com/RosAgriculture/

YouTube
} Lawn Tractor Automation (https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ)
JeffS
2022-08-22 14:06:28

Here is something posted on "Weekly Robotics". If anyone has a Raspberry Pi Pico and is running ROS2 you could try it. https://robofoundry.medium.com/raspberry-pi-pico-ros2-via-micro-ros-actually-working-in-1-hr-9f7a3782d3e3

Medium
Reading time
6 min read
JeffS
2022-08-25 14:31:25

@Al Jones I think this is the reference to fiber optic gyros you were asking about. You have to read through to see how long his cable was... https://hackaday.io/project/2744-1-d-laser-ring-gyroscope

hackaday.io
JeffS
2022-08-25 15:23:50

Info from this week's video meeting

===========================================

08252022 ROS Lawn Tractor Automation meeting This video: https://youtu.be/V_MBBNDW6WQ

Chat: None

Index: 00:00 Jeff: Tells story about unloading junk on some scrap guys. 03:40 Jeff: Mentions some thoughts on testing. 06:30 Al: Talks about I/O pins on his TTGO ESP32 board. 15:15 Al: Talks about fiber optic gyros. (from an experimental point of view) 23:25 Jeff: Mentions email from Ardusimple. 24:40 Jeff: Talks about YouTube exposure and Slack channel members. 27:50 Conversation moves to the impending Slack channel changes. (and if they are actually valid) Note: They are really going to do this: https://slack.com/help/articles/7050776459923-Pricing-changes-for-the-Pro-plan-and-updates-to-the-Free-plan#free-plan-changes

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos Index for the original ROS Agriculture group (~250 videos) and the new Lawn Tractor Automation group: http://sampson-jeff.com/RosAgriculture/

YouTube
} Lawn Tractor Automation (https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ)
Bob Hassett
2022-08-26 10:35:15

Kinda wish we had this back in our strawberry farming days ;-) https://www.youtube.com/watch?v=M3SGScaShhw

YouTube
} AGROBOT (https://www.youtube.com/channel/UCAFVchD9uIR-1AdC-wyyQMg)
Behzad Samadi
2022-08-26 10:37:20

*Thread Reply:* This is amazing!

Behzad Samadi
2022-08-26 10:37:57

These are the robots we have built since 2014: https://youtu.be/ilNIkZJ3NwY

YouTube
} Advanced Intelligent Systems Inc. (https://www.youtube.com/c/AdvancedIntelligentSystemsInc)
Behzad Samadi
2022-08-26 10:38:23

This is our latest robot: https://youtu.be/idD_xI074bY

YouTube
} Advanced Intelligent Systems Inc. (https://www.youtube.com/c/AdvancedIntelligentSystemsInc)
Bob Hassett
2022-08-26 18:10:29

Very interesting bots you have Behzad! I like the customer selected modules idea and Big Top for blueberries! Can you talk more about the available modules? Talk about how the bots sense and navigate their environment? Know what when where and how to do their tasks?

Bob Hassett
2022-08-26 20:42:39

Here is your green chopper @Al Jones https://www.youtube.com/watch?v=ayLcdy5LPmE

YouTube
} Stephen Murray (https://www.youtube.com/channel/UCthP4i3TquCTai5Dl4gXeBg)
😂 Al Jones
JeffS
2022-09-01 15:26:44

Info from today's video meeting.

=========================================== 09012022 ROS Lawn Tractor Automation meeting This video: https://youtu.be/HVwxZ48opYE

Chat: Jeff : Index of ROS Agriculture and Lawn Tractor meetings: http://sampson-jeff.com/RosAgriculture/ Jeff: My YouTube page: https://www.youtube.com/user/jws8675309/videos Jeff : Lawn Tractor meetings: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/featured Jeff: GOAT: https://www.youtube.com/watch?v=flXaL9d_CaM&list=PLYSpcfRJNQHPACEoVBRTK7H3WjZ0e59Wu&index=2 Al: https://www.powersportsmax.com/product_info.php/products_id/20784&utm_source=shopping&utm_medium=cpc&utm_id=atv-t045?msclkid=73aa11ec951015fade8572fc707f0a6a

Index: 00:00 Al: Gives a re-cap of his remote control system. 04:30 Al: Talks about learning Fritzing. 05:50 More discussion of the radio control architecture. And the OLED display. 07:50 Al: Shows some info in Fritzing. Making printed circuit boards with Fritzing. 15:45 Jeff: Mentions other PCB software. 18:00 Al: Shows where is going to mount a push button on his box. 19:30 Jeff: Talks about go-cart parts for parts. 29:10 Jeff: Talks about the mini quad bike that G.O.A.T. Industries is using. 33:40 Jeff: Mentions using two motors in the rear instead of using a differential. 39:00 Jeff: Asks Matt if he wants an invite to the Slack channel. 39:50 Discussion of the Slack "improvements". 40:35 Brief re-cap of how to access our group.

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos Index for the original ROS Agriculture group (~250 videos) and the new Lawn Tractor Automation group: http://sampson-jeff.com/RosAgriculture/

YouTube
} Lawn Tractor Automation (https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ)
Al Jones
2022-09-05 07:40:34

I'm having a go at designing and fabricating a PCB for my radio control to reduce soldering the TTGO board. We'll see how it goes.

Al Jones
2022-09-08 16:59:39

*Thread Reply:* Boards arrived. Holes for TTGO are spaced correctly, but are too small in diameter.

JeffS
2022-09-05 22:07:35

If you don't get Weekly Robotics news letter, there was a link to a remote controlled lawn tractor. https://offthegrid.dev/blog/remotely-controlled-lawn-mower You can see how he solved making the lawn tractor "drive by wire".

Off The Grid
JeffS
2022-09-08 14:48:26

Info from today's video meeting.

===========================================

09082022 ROS Lawn Tractor Automation meeting This video: https://youtu.be/kmN7HNAVxSw

Chat: None

Index: 00:00 Al: Talks about ordering a PCB that he created using Fritzing. 30:20 Jeff: Talks about reusing R/C cars. 37:40 Jeff: Talks about Go Cart parts and/or fabricating parts.

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos Index for the original ROS Agriculture group (~250 videos) and the new Lawn Tractor Automation group: http://sampson-jeff.com/RosAgriculture/

YouTube
} Lawn Tractor Automation (https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ)
JeffS
2022-09-15 16:22:35

Info from today's video meeting,

===========================================

09152022 ROS Lawn Tractor Automation meeting This video: https://youtu.be/NKd29mZpR1Q

Chat: Fancy/expensive robots on eBay: Search eBay for "ros ackermann robot"

Index: 00:00 Al: Talks about his LoRa remote. Shows his new PC board made with Fritzing. 13:00 Jeff: Suggestion for holes too small. 19:40 Al: Goes over a TO-DO list. 21:20 Jeff: Talks about random thinks he is thinking about or researching. Differentials, transaxles... 25:20 Jeff: Creating steering to match the size and scale of the backend. 40:40 Jeff: Using off-the-shelf kid's cars. 48:30 Differences between Go Carts and robots. (precision) 50:30 Jeff: Fancy/expensive "ROS Ackermann" robots on eBay. 1:05:25 Trying to search for "ros ackerman robot gps". Cheap vs. precise GPS. 1:09:00 Thoughts on R/C cars for ROS robots.

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos Index for the original ROS Agriculture group (~250 videos) and the new Lawn Tractor Automation group: http://sampson-jeff.com/RosAgriculture/

YouTube
} Lawn Tractor Automation (https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ)
Bob Hassett
2022-09-16 12:53:50

Have any of modified kiddie cars or go carts replaced the Ackerman steering with large pneumatic swivel tires? Has anyone seen robotic zero turn kiddie cars or go carts? Something like this https://hackaday.com/2020/01/10/diy-autonomous-mower-in-the-wild/

Hackaday
JeffS
2022-09-16 15:20:21

I'm not quite sure what you are asking... If your current "kid's car" has two independent drive motors in the back, then just do it. But the cheap plastic "tires" they use will not have enough traction. But... Amazon lists a couple of differential drive "kid's cars". https://www.amazon.com/Kidzone-Electric-Vehicle-Control-ASTM-Certified/dp/B08BL2HFY6/ref=sr148?crid=IRSGFHAM9PGL&keywords=ride+on+kid%27s+car&qid=1663358567&sprefix=ride+on+kid%27s+car%2Caps%2C412&sr=8-48|https://www.amazon.com/Kidzone-Electric-Vehicle-Control-ASTM-Certified/dp/B08BL2HFY6[…]id=1663358567&sprefix=ride+on+kid%27s+car%2Caps%2C412&sr=8-48 https://www.amazon.com/Huffy-Ride-Green-Machine-Vortex/dp/B07YBVLG16/ref=sr134?crid=2U3ZU7008NGD6&keywords=ride+on+zero+turn+lawn+mower+for+kids&qid=1663352576&sprefix=ride+on+zero+turn+%2Caps%2C175&sr=8-34&ufe=appdo%3Aamzn1.fos.304cacc1-b508-45fb-a37f-a2c47c48c32f|https://www.amazon.com/Huffy-Ride-Green-Machine-Vortex/dp/B07YBVLG16/ref=sr134?cri[…]4&ufe=appdo%3Aamzn1.fos.304cacc1-b508-45fb-a37f-a2c47c48c32f Camp Peavy from Home Brew Robotics found a differential drive kid's car for Robomagellan: https://www.youtube.com/watch?v=MBptwD1ODKo I don't recall what product he bought, but I can find out if you want to know. But you might want to search for wheel chair robots for inspiration: https://www.youtube.com/results?search_query=wheel+chair+robot This turns up a video of a "Power Wheels": https://www.youtube.com/watch?v=TwCL0BEUXjs I don't see that available for purchase any more... But back to the "wheel chair robots"... You may find a used wheel chair on Craig's List. Or you can buy wheel chair motors on eBay or Amazon. (But I recommend getting the motor and wheel as a unit, so you don't have to mix and match.) But you imply converting an over priced cheap kid's car into a very expensive (industrial/commercial) "zero turn" lawn mower. That seems like a leap in logic to me...

What are you really asking?

Bob Hassett
2022-09-17 09:26:51

First off, thank you for all the usefull links. Maybe I should have ask the questions with more context? I watch the latest YouTube and the discussion of Ackerman linkages and such. Also about all the videos you watched. Also there was a comment about making (?) something that was smaller for a back yard. So the zero turn concept came to mind. Just speculating which method, Ackerman vs zero turn, would be less complex to make and program? Just wondering. I dont plan on using zero turn. Also I do not want to spend a lot of money on the jeep. Dealing with its Ackerman steering will help me understand the Ackerman on my tractor. The Ackerman vs zero turn was just a mental exercise about which method is complex, hardware and software wise. About the jeep…there are 2 independent 12 v motors driving the thing. I could drive them independently or together. Together would mimic my tractor better. About the plastic wheels slipping…i thought I could cannibalize a car tire. Just cut out the tread part and glue and fasten it on the plastic tire, if slipping is a problem. So for a small area to mow, which method of steering would be the simplest in hardware and software to implement?

JeffS
2022-09-17 15:31:00

First point... You can easily convert your Jeep to differential drive. Since it has independent rear drive, you just have to add castor wheels. Just get a board (plywood or 1x6 pine board) and screw one or two castor wheels to it. Then bolt the board to the bottom of your Jeep. Just make sure it rasies the front end enough that the existing front wheels no longer touch the ground. So at moments notice you can install or un-install the castor wheels. Then drive the back wheels independently to get differential drive. So this is a relatively un-complex approach.

Another thing to keep in mind. When you use a cator wheel, make sure the pivot point is vertical after you get it mounted. Also use fairly large diameter castor wheel if you want to drive through the grass. Or just run on flat surfaces.

JeffS
2022-09-17 16:13:31

"Just speculating which method, Ackerman vs zero turn, would be less complex to make and program? Just wondering."

Mechanically, as I just mentioned, you can easily convert your Jeep back and forth from Ackermann to differential. To control Ackermann steering, you need some form of a position control actuator. Because it depends on the setting a steering angle to what the software specifies. On my mini-tractor or on your Jeep, the giant R/C servo seems to be a good fit. But they are somewhat expensive. Otherwise you have to create your own close-loop position actuator. Differential drive, you just control the speed of the two independent pack wheels.

Now on the software side, if you are running ROS, it will generate velocity commands to drive a path of its choice. It is up to you to get your vehicle to respond to the requests. Traditionally ROS has generated a "standard" "command velocity message". So the result of the multiple layers of software is to generate an instantaneous foward velocity and rotational velocity. For differential drive, this converts very easily left wheel speed and right wheel speed. If you are going to use Ackermann steering then you have to convert forward velocity and rotational velocity to forward velocity and steering angle. That is just a few lines of code and is supplied by an extra convertor node supplied in TEB Planner package.

So the bottom line is... It doesn't matter if you use differential drive or Ackermann steering. You just need to supply the appropriate convertor nodes between ROS navigation and the low level control in your vehicle. And you can instantly switch back and forth by starting the appropriate launch file.

Bob Hassett
2022-09-17 16:15:34

Thanks I might try that combo steering method!

JeffS
2022-09-17 16:15:39

As far as glueing tire treads to the plastic Jeep wheels... That seems extreme to me. But maybe that would work.

Bob Hassett
2022-09-17 16:16:12

👍

JeffS
2022-09-17 22:47:35

Speaking of castor wheels... This guy did something I would never thought of. He is using castor wheels as his front wheels of an Akermann steered vehicle. I think he welded a tab to each wheel. https://www.youtube.com/watch?v=WO-9hQtDoHw

YouTube
} Abah Dedek (https://www.youtube.com/c/AbahDedek)
👍 Al Jones
Bob Hassett
2022-09-18 09:06:58

*Thread Reply:* Looks like a good solution to be able to switch back and forth from Ackerman to zero turn, and vis versa.

Al Jones
2022-09-18 06:31:16

Today I'm working on testing the Cytron motor controller that controls steering using the TTGO board via Lora. The significance of this is additional safety as it will allow steering control without ROS running (i.e. Like @JeffS does 🙂 )

JeffS
2022-09-18 13:54:25

I watched this video: https://www.youtube.com/watch?v=zuXqg4q3cQ8 I noticed they modified the back tires in some way. Some searching turns up something called "Traction Bands". https://backyartisan.com/power-wheels-traction-bands/ This seems easier than hacking car tires.

YouTube
} colorclocks (https://www.youtube.com/user/colorclocks)
The Backyartisan
Written by
Lisa
Time to read
7 minutes
Bob Hassett
2022-09-18 14:21:41

Wow, right up my alley, thanks @jeff

Al Jones
2022-09-21 08:53:10

Testing 4 spim08hp batteries wired together as a replacement for my lead acid battery.

Al Jones
2022-09-22 05:43:23

*Thread Reply:* test results and @JeffS is correct, there is no BMS. I think the term @Matt Droter uses is "hillbilly". At 14.2 that means each cell is at 3.6. If I drained it to 12.5 then each cell would be 3.1. https://1drv.ms/v/s!AlSRhxzgYnAliItv9fmR7tZQRqsI4w?e=61QaDh|Video

JeffS
2022-09-21 12:36:07

I don't see much battery management in the photo.

JeffS
2022-09-21 17:24:16

There will be no video meeting this week (Thursday).

Al Jones
2022-09-28 18:44:52

Testing Cytron motor controller with a PID. Overview video: https://1drv.ms/v/s!AlSRhxzgYnAliIwLRvWLATq63dUP6w?e=AMH1cK|link; (Forgive the sound quality. Need to work on that.) Gist with code: link

JeffS
2022-09-29 09:51:19

@Al Jones Here is a complete example of a scratch built steering servo. Both a video and a web page... https://dronebotworkshop.com/custom-servo-motor/ https://www.youtube.com/watch?v=vFMwAy7BaH0

DroneBot Workshop
👍 Al Jones
JeffS
2022-09-29 14:09:27

Here is another example of making a servo motor. https://www.youtube.com/watch?v=3pYWLF8qw-g

YouTube
} James Bruton (https://www.youtube.com/c/jamesbruton)
JeffS
2022-09-29 16:26:56

Info from today's video meeting.

===========================================

09292022 ROS Lawn Tractor Automation meeting This video: https://youtu.be/ZACEihL96Zo

Chat: Motor running on table: https://youtu.be/MHd0v3Arq_g Plot of motor running: https://youtu.be/EkU9EA50GnY

Index: 00:00 Al: Talks about his new code for controlling his power steering motor. 06:10 Jeff: Has comments on what Al is doing. 06:15 - Convert pot value to an intermediate angle value. 10:50 - Discussion of center steer value. 14:15 - Just use P out of P, I, D. Unless you have problems. 18:45 - Ways to debug strange results. 23:30 - Setting artificial end limits in code so don't smash anything 34:50 - Debug print statements may screw up your timing. 44:25 Al: Says he may post updated code. 45:35 More random comments. 48:20 Jeff: Gives another run-down on parts to build a steering system. 53:00 Jeff: Complains that his robot is too heavy. So we talk about Al's Lithium batteries. And voltage regulators (or lack of regulator).

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos Index for the original ROS Agriculture group (~250 videos) and the new Lawn Tractor Automation group: http://sampson-jeff.com/RosAgriculture/

YouTube
} Lawn Tractor Automation (https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ)
Al Jones
2022-10-02 08:22:42

Updated testing program to figure out steering PID values. Included in this version is changing to "angles" per @JeffS’s suggestion. The next issue I want resolve is the high pitch whining coming from the motor. I think I've seen some videos explaining the frequency issue. Gist link.

Al Jones
2022-10-03 07:15:21

I think this qualifies as a blooper... https://1drv.ms/v/s!AlSRhxzgYnAliI9zmLaqsFv0lIB3CA?e=hnmkPL|link (if it does not play, try downloading it) - testing motor controller, code being used: link

JeffS
2022-10-03 16:42:09

@Al Jones You might want to rethink what you are doing with the output of your PID function. Normally you just use that as your power level for your motors. But you seem to be doing some magical remapping, which probably renders the PID function useless...

Al Jones
2022-10-04 06:31:19

*Thread Reply:* Thanks for looking at the code. Last Thursday I understood you to suggest using angle because later on angle is what will be fed from the ROS steering algorithm. This is my attempt to do that. Its now not clear to me what you are suggesting to feed as input into the PID and how to manipulate the motor power to reach the target angle. 🤔

JeffS
2022-10-05 12:00:36

*Thread Reply:* I am busy until about 3:30 Central time today. After that I may make some comments and tell some stories...

JeffS
2022-10-05 16:27:54

*Thread Reply:* Well, it is now 4:15 PM (my time). Nobody showed up...

Let's start at the beginning, A PID function expects that you supply two input variables. One is usually the current state, the other is a new state,

This can be temperature, position. speed, amount of light. Anything...

But it expects the two inputs to be in the same units and in the same scale.

It will attempt to make the current state match the new requested state.

So in this case, you are providing the current steering position and you are requesting a new steering position. The PID algorithm will calculate the "error" by simply subtracting the two inputs to determine the difference between the two. Then it applies a proportional correction, a derivative correction and an integral correction. The sum of these three is the output. The output is used to moved the current value towards the requested value.

Oh. the clowns are here, an hour and a half late. I'll continue this when they are gone.

JeffS
2022-10-05 16:49:00

*Thread Reply:* Well, false alarm, sort of... If you want to hear the whole story then tune in for the weekly meeting before we start recording...

So, the PID takes two input values and produces an output value. The output value is considered to be a correction factor. If the inputs are temperature values then you either turn on a heater to turn on cooling. In the case of steering postiton it is treated as a power value to your steering motor. It will drive the steering motor in the direction to make the error value 0.

So you don't want to remap that value to anything else, just feed it directly to your motor as a power/direction value.

So at that point. just adjust the PID values to give a result that works.

Let me start another rant/soapbox...

JeffS
2022-10-05 17:42:56

*Thread Reply:* So, my original point was... Just convert the target pot to an angle. Then it will match the value that ROS will send you (assuming you are running TEB planner with the flag set for "produce steer angle instead of rotational velocity". So my thought was you can substitute the ROS angle for the target pot angle.

But I see you converted everything to an angle. That will work, as long as both inputs to the PID are an angle. So the PID can accept either A/D counts or an angle. As long as both inputs are the same units and the same range.

Then the output should be treated as power. And yes you should clip/clamp the output value to what ever the PWM driver wants to see. But don't try to scale that to something else. Feed it to your motor (and honor the direction based on a positive/negative value)

JeffS
2022-10-05 17:49:51

*Thread Reply:* Now, I said to look at your position feedback pot and kill the output if you went too far. If you would take those extra lines of code (that you added) and merge them below into the "if error > 0" or "if error < 0" then you will be able to recover from going too far. So figure out which block (i.e., error > ?) is right and which is left, put the check in the appropriate block. Then, if you go too far, you can back out by specifying the opposite direction. What you have will lock up the motor completely and you are done, until you manually back the motor off.

JeffS
2022-10-05 17:53:25

*Thread Reply:* Another issue at this point. Don't compare against error. Error is local to you PID function. Use the output of you PID ("output") instead. When you get "output" from your PID function, that is the power value to send to your motor. You don't have to remap anything.

JeffS
2022-10-05 18:04:12

*Thread Reply:* Another thing I noticed... You are sampling your "target pot" at a 5 second interval. Speed that up. In fact sample the target pot and your feedback pot at the same time. You will get much better results for testing. And I notice that you are averaging your feedback pot, but not averging the target pot (or PID parameter pots). Is the feedback pot that much worse? Or didn't you notice?

I probably had a couple more comments, but I started drinking when the "clowns" didn't show up when they were supposed to...

Let me know if I confused you even more. (Oh damn, now I have to get up early again tomorrow for the video meeting... See you then.)

JeffS
2022-10-05 18:31:51

*Thread Reply:* Oh, another comment. Eventually you may want to do "slew rate limiting". So when you specify a new target position that is not close. (I.e., a new location that is a considerably faraway), you may want to consider controlling how fast it attempts to reach that position. You can check each time through the loop and incemantally increase the position each time. Then you are attempting to reach a closer position. That allows you to crank up the motor power to attempt to reach a close position. Intead of specifing a far location and slamming the motor to full power. Which would cause it to overshoot.

We can talk about this more later...

JeffS
2022-10-05 18:07:43

@channel Just a reminder... The way Slack works, threads can never be archived (unless you are much smarter than me) So in 90 days, this last thread will disappear forever.

JeffS
2022-10-06 17:43:50

Info from today's video meeting.

===========================================

10062022 ROS Lawn Tractor Automation meeting This video: https://youtu.be/GzAQU0ZhkrA

Chat: None

Index: 00:00 Al: Goes over version 3 code for his power steering motor. Mention of "ledc" which is a high-frequency PWM function. 04:20 Conversions between counts and angles. 28:45 Discussion of noisy analog and resulting jitter. 37:00 Tour of Al's physical layout. 48:00 Jeff: Shows the results of using plastic blocks for steering components. 54:40 Jeff: Points out ways to make a back end for testing. 57:20 Jeff: Size consideration. 1:00:20 Al: Asks about naming and asks what is next.

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos Index for the original ROS Agriculture group (~250 videos) and the new Lawn Tractor Automation group: http://sampson-jeff.com/RosAgriculture/

YouTube
} Lawn Tractor Automation (https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ)
Al Jones
2022-10-07 10:44:49

Updated PID configuration helper link. I now have settings that can be used for field test. Full left to right takes about 2 seconds while sitting still on concrete with max power setting at 150. The output of the PID is now directly fed into the motor power of the Cytron motor controller. Thanks @JeffS

Al Jones
2022-10-10 06:02:24

Currently working on getting my LoRa handheld radio control to be the source of data for moving the steering and throttle instead of the hard wired potentiometers I used for getting the PID settings defined. Just started. I noticed that even though I have the Tractor sending packets back to the Radio Control 2x/sec, and the rssi is ok, there is a long lag between packets received at the Radio Control. Continuing to debug....

Radio Control code link; Tractor code (initial basic shell): link

JeffS
2022-10-14 23:20:37

Info from this week's video meeting

===========================================

10132022 ROS Lawn Tractor Automation meeting This video: https://youtu.be/4_HCT0AA8cw

Chat: Al's remote code: https://github.com/jones2126/ttgo_board/blob/main/radio_control_v2.1/src/main.cpp Al's vehicle controller: https://github.com/jones2126/ttgo_board/blob/main/radio_control_tractor_v1/src/main.cpp Video about Cub Cadet seat switch: https://www.youtube.com/watch?v=qwqORlyu7r8

Index: 00:00 Al: Gives progress update on his lawn tractor controller and the remote controller. 05:20 Jeff: Shows how he mounted his laptop computer. 08:30 Al: Asks how to secure the screen. I say I just close the lid. Al asks how to prevent it from sleeping. We talk about where to find the setting to control that. 13:45 Al: Mentions powering the laptop from the vehicle battery. 16:30 Jeff: Asks if we are going to get a demo of the tractor moving. 16:50 Jeff: Asks if Al has the eStop figured out with the fuel injected version of the tractor. 22:35 Jeff: Briefly mentions his lack of progress on a new smaller tractor.

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos Index for the original ROS Agriculture group (~250 videos) and the new Lawn Tractor Automation group: http://sampson-jeff.com/RosAgriculture/

YouTube
} Lawn Tractor Automation (https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ)
JeffS
2022-10-14 23:58:34

When I got up today the snow on my car reminded me that I have wasted another entire year...

JeffS
2022-10-20 21:43:17

Info from today's video meeting

===========================================

10202022 ROS Lawn Tractor Automation meeting This video: https://youtu.be/bkBEDjLSARU

Chat: Al: https://clonezilla.org/downloads.php Al: Radio control software https://github.com/jones2126/ttgo_board/blob/main/radio_control_v2.1/src/main.cpp Al: Tractor software: https://github.com/jones2126/ttgo_board/blob/main/radio_control_tractor_v1/src/main.cpp Al: https://www.youtube.com/watch?v=qwqORlyu7r8 Al: https://www.youtube.com/watch?v=ArEKafd0oBM

Index: 00:00 Al: Gives progress update on his lawn tractor controller and the remote controller. 02:45 We see a video of Al's lawn tractor driving. 07:00 Jeff: Talks about his progress on building a smaller robot. 21:00 Al: Asks about data logging. 34:50 Discussion of the seat switch and wiring. 42:45 Jeff: Asks if the laptop has a mechanical drive or a solid state drive. (for vibration) 47:15 Jeff: Complains about the way Zoom works... 49:00 Laptop mounting. 50:15 More video demos.

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos Index for the original ROS Agriculture group (~250 videos) and the new Lawn Tractor Automation group: http://sampson-jeff.com/RosAgriculture/

YouTube
} Lawn Tractor Automation (https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ)
Bob Hassett
2022-10-22 13:05:22

*Thread Reply:* @JeffS watching the latest video where you are discussing your next small bot…..I missed how this new one will be different than the other small bots you have create in the past? What new sensors and or mission capabilities will it have? I thought I heard camera?, vacuum cleaner scanner? …?

JeffS
2022-10-24 00:06:43

Well, I mentioned more than once that I want something smaller, lighter, less sloppy steering and two drive motors instead of a single drive motor with a differential.

As far as "mission capabilittes", I just want to prove that two drive motors instead of one will work.

JeffS
2022-10-27 11:25:21

I'm assuming we will not have a video meeting this week. The meeting has not been started and I can't log in to start it...

JeffS
2022-10-27 17:36:30

I was viewing ROS Agriculture meetings for references to my various steering stages. Before mounting any servo: https://youtu.be/SsqqjrB5-0U?t=1439 After mounting the Super Servo200: https://www.youtube.com/watch?v=-BewtBuwrtw After upgrading to the open frame "giant servo": https://www.youtube.com/watch?v=Xr0XDVY8wpU

JeffS
2022-11-01 13:47:05

When I turned on my computer today I had problems with Yahoo mail, Youtube preferences, Slack and Firefox updated and forced me to restart. It could be that the Firefox update and restart deleted my cookies.

But when I tried to sign in to Slack it presented me with a page saying they sent me a secret code that I must enter. But they never emailed me the code. If you click at the bottom on "click here to sign on with password" WITHOUT entering your email address, it takes me back to the normal sign in with password. But if you enter your email address and on "click here to sign on with password", then you will be stuck in a loop going back to the magic code.

A guy at Slack is looking at why the magic code is not being sent out.

👍 Al Jones
JeffS
2022-11-03 18:04:07

It turns out the problem logging in was (ultimately) my problem. One of my SPAM filters decided (incorrectly) that the emails from Slack were SPAM, and flagged them as such. It then bounced the message back to Slack saying I will not accept SPAM. So they conveniently marked me as a problem and refused to send me anything (all without my knowledge, you know, a Skynet thing). So I went through and attempted to stop all of my SPAM filters from doing stupid things. After a couple of days it is working again. I may have figured out how to prevent gmail from screwing me over. I need to poke harder at Yahoo mail, because they are still marking things a s SPAM. But I think I convinced pobox not to silently bounce messages which is causing major problems...

Have I mentioned lately that I hate computers? In reality I just hate stupid people that make computers do stupid things...

JeffS
2022-11-03 19:27:41

Info from today's video meeting.

===========================================

11032022 ROS Lawn Tractor Automation meeting This video: https://youtu.be/WEJI0AgxsK8

Chat: Al: https://docs.google.com/document/d/1iQgvms-inNsP_-TtOGxOjQipT-mIIxHGuhmcW948AYo/edit Al: https://docs.google.com/document/d/1w-nADgWnSuUZCkjbIYt2L3B5GJlkTXXfgxCJSgD9p9k/edit Al: https://www.mcmaster.com/90447A160/

Index: 00:00 Al: Gives progress update on his lawn tractor controller. Mention of remote login. Disk imaging. 04:30 Al: Has his GPS board installed. 05:40 Discussion of udev rules. 13:50 GPS and NavSat driver. 15:45 Jeff: Quick review of the pieces for a a new small robot. 16:20 Jeff: Some thoughts on reducing the size. And methods of fabrication. 21:20 Jeff: Talk about making the front end match the width of the back end. Discussion of bolt sizes. 24:50 Talk about different ball joints from Amazon. 26:00 Talk about cutting threads. 28:10 Pros and cons of metric vs. SAE hardware. 31:35 Prices at hardware stores vs. Menard's vs. Fleet Farm. More random discussions and complaints...

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

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

YouTube
} Lawn Tractor Automation (https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ)
JeffS
2022-11-07 18:00:14

I probably won't be available for the video meeting on Thursday 11/10. I "MAY" be getting a new water heater.

👍 Al Jones
Al Jones
2022-11-08 11:35:31

No joy getting nmea driver running so far....

JeffS
2022-11-08 11:45:07

The line that says: usr/bin/env: 'python': No such file or directory Probably indicates you have a mismatch between python and python3. Did you get the new version of the nmeanavsat that is for Noetic? Does your launch file says something like "python nmeanavsat..."? Maybe changing that to "python3 nmea_navsat..." will get past that. Otherwise, I assume you have a reference to python buried somewhere.

Al Jones
2022-11-10 12:03:27

I switched away from the ROSAG specific version and I have now cloned https://github.com/ros-drivers/nmea_navsat_driver.git, fought through a few issues and have nmea sentences coming into the tractor laptop now.

JeffS
2022-11-10 15:50:27

Info from today's video meeting.

===========================================

11102022 ROS Lawn Tractor Automation meeting This video: https://youtu.be/gvmQ-t7D3Cc

Chat: None

Index: 00:00 Al: Talks about updating his GPS driver to work with ROS Noetic. 06:15 Al: Talks about Odom. (looks like left and right wheel sensors) 07:10 He is installing simulator on his lawn tractor laptop (for some reason).

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

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

YouTube
} Lawn Tractor Automation (https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ)
JeffS
2022-11-10 21:31:08

I was trying to make the YouTube channel more obvious. I thought I could add a banner image and put text on the image that says "Click About tab for more info". I couldn't figure that out. But I was able to add a link that says "More Info" which takes you to the About page.

The banner image is just a random image from pixabay.con.

👍 Al Jones
Al Jones
2022-11-15 15:40:00

@JeffS I'm trying to figure out how to change from what I call "your simulator" to the actual physical world. Q: Will src/myodompublisher/src/odom.py need to be modified to read gps position and convert to odom?

JeffS
2022-11-15 19:38:24

I don't understand why you are starting with anything to do with a simulator if you are trying to get your physical lawn tractor to run.

It appears that the code you are showing extracts a location from Gazebo and publishes something. I would think what you want is the original code that subscribes to your GPS messages and publishes results (offset in meters? transform?)

If you are going to start with code that was made to keep the simulation world happy, then you will have to understand how that code is different from the physical world code.

(I don't mean to be short, but I have been drinking and my sewer backed up. So I had to do an emergency sewerectomy.)

JeffS
2022-11-16 16:02:38

I can't find anything anymore. But I was digging through here: ROS Agriculture Slack General Channel 7-15-2019 to 12-24-2020.pdf (I have a local copy on my harddrive. The original appears to have been under https://github.com/ros-agriculture/ros_lawn_tractor/wiki/, but the wiki is gone.) I found this link: https://gist.github.com/droter/c96e12deea000cac4da566dac2c91c23 You need some version of this for a physical vehicle. It subscribes to navsat/fix to get lat and lon. It also subscribes to heading, which may be from IMU or from a modified GPS message. But you should be able to get all three from GPS and not require IMU or Odometry or LIDAR. Then it needs to publish an odometry message for Move Base and a odomtobaselink transform. (which I think it does)

If you get heading from GPS, remember the heading is not valid if you are not moving.

JeffS
2022-11-16 16:33:18

Here is a description of using just GPS: https://youtu.be/kHBzMp5E-lU?t=2132

Al Jones
2022-11-17 08:03:50

Long way from working, but hoping to use ekflocalizationnode (e.g. https://blog.abdurrosyid.com/2021/07/22/fusing-wheel-odometry-imu-data-and-gps-data-using-robot_localization-in-ros/) #random Anyone done this in the physical world?

JeffS
2022-11-17 17:01:18

@Al Jones I am watching today's meeting video. On your Teensy encoder problem... it is more likely your encoder is putting out something different than it used to. Maybe check for range and verify it goes from 0 to max in a linear ramp.

👍 Al Jones
JeffS
2022-11-17 18:07:40

I got the video meeting for this week published. The indexing was particularly tedious this time since we were all over the place. I'll give it a few minutes since I can't figure out how to force Slack to start a new message...

JeffS
2022-11-17 18:15:49

Info from today's video meeting.

===========================================

11172022 ROS Lawn Tractor Automation meeting This video: https://youtu.be/up1TMz-FOi0

Chat: Al: https://automaticaddison.com/how-to-publish-wheel-encoder-tick-data-using-ros-and-arduino/ Al: https://chiprobotics.gitbook.io/chip-robotics/sensors/imu-sensor/getting-started-guide Al: https://chiprobotics.gitbook.io/chip-robotics/sensors/imu-sensor/getting-started-guide Al: https://www.youtube.com/watch?v=dEPvZZ4luV4 Al: https://gist.github.com/jones2126/0f98af1cad3ca73df3b0e759cc30dc3f Here is a description of using just GPS and gps_odom.py to do localization. https://youtu.be/kHBzMp5E-lU?t=2132

Index: 00:00 Jeff: Shows his axle that he cut to reduce the length. 01:50 Al: Gives a status update. Comments on GPS, encoder. 03:45 Al: Talks about trying to get his Chips IMU running again. 05:30 Al: Watched some GPS videos. 05:55 Al: Mentions the original gpsodom.py code. Posts another link to a navigation video. 06:10 He is thinking about jumping into EKF and applying all of his sensors. 08:45 Al: More details about what he plans to do. PlatformIO, another video 10:00 Jeff: Suggests not jumping into EKF and just using GPS. 12:05 Discussing the "modified" NMEA NavSat driver. 14:50 Jeff: Complains about trying to use Google Drive. 17:20 Jeff: Mentions a script that extracts velocity and heading from a standard navsat/vel message. Back to gpsodom.py Mentions this meeting where the multiple copies of gps_odom.py were running: 10082021 Lawn Tractor Automation meeting https://www.youtube.com/watch?v=GddLZDXx75Q 20:20 Talk about fixing or removing behavior trees that were added for the stage simulator. 22:35 Jeff: Mentions difference between various navigation packages. 23:20 Jeff: Again complains that he can't find any of the old data. 29:15 Snow??? 29:45 Al: Points out he has his own backups. 33:50 Jeff: Babbles incoherently... 34:35 Al: Says his Teensy code no longer compiles. 41:30 Al: Mentions he is going to use the URDF file from my Gazebo simulator code. I missed it when he said that, but I caught it when he says it again later... 42:10 Jeff: More excuses for a small robot. 43:25 More reiteration on what Al is about to do. 44:30 Jeff: Asks which computer is running which nodes. 46:30 We start looking at launch files and I suggest going back to the original launch files and nodes from his RPi. 55:20 Al: Points out he is determined to use some of the shiny new code from my simulator project, that does not apply. And this is where he says he wants to use the URDF from the simulator. I said "Don't". Part of the confusion may be due to missing ROS packages. 59:30 "The Punch Line"

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

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

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
JeffS
2022-11-17 18:27:46

Does anybody know what this means? "That looks like a GitHub Gist link. Do you want us to import it and all future GitHub Gist links from you?"

It asks me that repeatedly. And I have no idea what they are asking me.

Al Jones
2022-11-18 12:10:27

*Thread Reply:* Sorry, I've not seen that. I googled it, but no decent hits.

Al Jones
2022-11-18 16:07:35

@JeffS Regarding the code for tracking encoder rollover, here are some results and test code. “Movement” is calculated correctly in 3 of the 4 examples, but when last position is 20 and current position is 16383, the movement is incorrect (i.e. -21 vs 16,363 (16,383 – 20)).

uint16_t current_position = 10; uint16_t last_position = 1; int16_t position_movement; int32_t rotational_position = 0; uint16_t bitshift_cur_pos = 0; uint16_t bitshift_last_pos = 0; int16_t bitshift_pos_delta = 0;

void setup() { Serial.begin(115200); Serial.print("code tester program has started "); Serial.println(); Serial.println();
perform_calc(); print_info(); current_position = 20; perform_calc(); print_info();
current_position = 16383; // (pow(2,14)-1) - the highest value before rollover perform_calc(); print_info();
current_position = 1; perform_calc(); print_info();
}

void loop() { // put your main code here, to run repeatedly:

}

void print_info(){ Serial.print("last pos: "); Serial.print(last_position); Serial.print(", bitshift_last_pos: "); Serial.print(bitshift_last_pos);
Serial.print(", current pos: "); Serial.print(current_position); Serial.print(", bitshift_cur_pos: "); Serial.print(bitshift_cur_pos);
Serial.print(", movement: "); Serial.print(position_movement); Serial.print(", total movement: "); Serial.print(rotational_position); Serial.println(); last_position = current_position;
} void perform_calc(){ bitshift_cur_pos = current_position &lt;&lt; 2; //Bitshiftleft - The leftmost 2 bits in current_position are shifted out of existence bitshift_last_pos = last_position &lt;&lt; 2; bitshift_pos_delta = (bitshift_cur_pos - bitshift_last_pos); position_movement = bitshift_pos_delta &gt;&gt; 2; //BitshiftRight 2 bits rotational_position += position_movement; // Update the absolute position values. (Position of this encoder since CPU reset.) }

JeffS
2022-11-18 18:05:06

I will have to spend some time and look at it harder...

JeffS
2022-11-18 20:09:55

Well, all 4 steps here look right me. Keep in mind that 16383 is actually -1 as a signed number.

Is your encoder still putting out a 14-bit unsigned number through one full rotation? If you watch the output of the encoder and run it through a full revolution (or possibly 3 revolutions), does it start at 0 and ramp up to 16383 and then jump back to 0 and repeat?

Al Jones
2022-11-19 10:38:49

Still not quite sure what is different, but I have it working again. source The encoder is still 14 bit (i.e. rolls over at 16,384.)

Al Jones
2022-11-19 17:38:20

@JeffS I can't get gpsodom.py to start. Actually I can't get an example from geonavtransform to work either. Both attempts fail on the line import geonav_transform.geonav_conversions as gc I followed these instructions and there was no error: $ cd /home/tractor/catkin_ws/src $ git clone <https://github.com/bsb808/geonav_transform.git> $ cd /home/tractor/catkin_ws/ $ catkin_make $ source devel/setup.bash; The error for gpsodom.py is rosrun beginner_tutorials gps_odom.py Traceback (most recent call last): File "/home/tractor/catkin_ws/src/beginner_tutorials/scripts/gps_odom.py", line 12, in &lt;module&gt; import geonav_transform.geonav_conversions as gc ModuleNotFoundError: No module named 'geonav_transform' tractor@tractor-HP-ProBook-645-G1:~/catkin_ws$ I'm going to try and hard code the path in the gpsodom.py to see if I can force it to find geonav_transform.

Al Jones
2022-11-20 08:48:21

*Thread Reply:* Seems like this info would be useful

Al Jones
2022-11-20 09:30:29

*Thread Reply:* A little progress

Al Jones
2022-11-20 13:48:40

*Thread Reply:* moving geonavconversions.py to /home/tractor/catkinws/src/geonavtransform/src/ and then including the statement below in gpsodom.py helped find the module sys.path.append('/home/tractor/catkinws/src/geonavtransform/src/')

Now the statement below fails reload(gc)

rosrun beginnertutorials gpsodom.py

tractor@tractor-HP-ProBook-645-G1:~$ rosrun beginnertutorials gpsodom.py Traceback (most recent call last): File "/home/tractor/catkinws/src/beginnertutorials/scripts/gps_odom.py", line 15, in <module> reload(gc) NameError: name 'reload' is not defined tractor@tractor-HP-ProBook-645-G1:~$

JeffS
2022-11-20 14:12:45

*Thread Reply:* Maybe try commenting out that reload statement. I normally don't see that used. PLus, I don't know what it is supposed to do. Or maybe you need to import another module to support the reload statement?

JeffS
2022-11-20 15:31:43

*Thread Reply:* @Al Jones Here is the issue with reload. First it looks like it is used to allow you to change the source code and automatically continue on. So it sounds like it is not strictly required. But this page shows different formats depending on which version of Python you are running. https://www.geeksforgeeks.org/reloading-modules-python/

GeeksforGeeks
JeffS
2022-11-19 18:45:14

This page: https://get-help.robotigniteacademy.com/t/no-module-name-geonav-transform-geonav-conversions/14494/6 Says cd /home/user/catkin_ws/src git clone <https://github.com/bsb808/geonav_transform.git> cd /home/user/catkin_ws/ catkin_make source devel/setup.bash; rospack profile Maybe adding the ; rospack profile will help?

Al Jones
2022-11-20 18:09:09

error with gps_odom.py after resolving the reload statement by using "from imp import reload" [ERROR] [1668989152.252446]: bad callback: &lt;bound method MainClass.gps_callback of &lt;__main__.MainClass object at 0x7f6ac4acc160&gt;&gt; Traceback (most recent call last): File "/opt/ros/noetic/lib/python3/dist-packages/rospy/topics.py", line 750, in _invoke_callback cb(msg) File "/home/tractor/catkin_ws/src/beginner_tutorials/scripts/gps_odom.py", line 82, in gps_callback odom_broadcaster.sendTransform((_xg, _yg, 0.0), self.odom_quat, rospy.Time.now(), "base_footprint", "odom") File "/opt/ros/noetic/lib/python3/dist-packages/tf/broadcaster.py", line 63, in sendTransform t.transform.rotation.x = rotation[0] IndexError: tuple index out of range

Al Jones
2022-11-20 18:18:11

*Thread Reply:* I'm sorta thinking I have to get the /heading topic working now...

JeffS
2022-11-20 18:29:48

*Thread Reply:* You got an error so gpsodom died. You try to echo /heading but apparently it is not being published. You did an info and it said /nmeaserialdrivernode is supposed to be publishing it. It says it has no subscribers since gps_odom died.

But yes, /heading should be getting published at this point. You could put deubg statements in /nmeaserialdriver_node to see why it isn't publishing.

Al Jones
2022-11-21 10:42:49

*Thread Reply:* Well I have no idea if its accurate, but I'm getting an odom statement out of gps_odom.py now.

Al Jones
2022-11-21 10:49:02

*Thread Reply:* I would still need to improve to get heading from GPS when the tractor is moving. Right now the driver is just taking the imu data.

Al Jones
2022-11-22 09:50:49

I'm thinking my next step is to get my tf tree fully built (e.g. map -> odom -> basefootprint -> baselink -> gps). At the moment this is all I have.

Al Jones
2022-11-22 10:06:25

*Thread Reply:* I can get to this by adding the code below to the startup launch file.

&lt;!-- ************ Fake localization for map and gps ********** --&gt; &lt;node pkg="tf" type="static_transform_publisher" name="map_to_odom" args="0.0 0.0 0.0 0 0 0.0 map odom 100"/&gt; &lt;node pkg="tf" type="static_transform_publisher" name="map_to_utm" args="0.0 0.0 0.0 0 0 0.0 map utm 100"/&gt;

JeffS
2022-11-22 12:08:10

*Thread Reply:* I see you are putting your odom directly on map. That should be correct for you are doing now.

Get rid of the map to utm. You don't have utm. As far as I know you have never had utm. I think it came from an alternate to gps_odom node.Something that was associated with the EKF stuff.

I see odom to basefoot print is being supplied by gpsodom, which should be correct.

When you start your robotstatepublisher (which reads your URDF file), you should get base_footprint to baselink transform. And you should get your baselink to gps transform.

Al Jones
2022-11-22 15:09:38

*Thread Reply:* A little more progress. frames.pdf is looking better to my untrained eye.

updated launch file link

Al Jones
2022-11-23 10:19:51

This launch file seems to be successfully launching mbfcostmapnav and mapserver. My issue at the moment is I am unable to get this urdf and mesh filename argument to enable rvis to load lawntractor.dae file. I also did not include "pkg="lawntractornavigation" name="mbfbehaviortree"" which was in the legacy lawn_tractor.launch The red sphere is the gps.

Al Jones
2022-11-23 11:13:44

*Thread Reply:* Still a ways to go

Al Jones
2022-11-23 10:28:34

"file:/home...." works, "... does not work.

JeffS
2022-11-23 13:36:37

I would suggest not spending a lot of time trying to get the robot model to display. It is just there for decoration and it hides the real information you need to see to debug (transforms).

PS: This statement doesn't make sense to me: "file:/home...." works, "... " does not work.

Al Jones
2022-11-23 16:42:15

*Thread Reply:* The statement below in the urdf resolved displaying the dae file. Using file: 2 slashes, which was referred to in some posts, does not work.

&lt;mesh filename="file:/home/tractor/catkin_ws/src/lawn_tractor_sim/meshes/lawn_tractor.dae" scale='1 1 1'/&gt;

Al Jones
2022-11-23 16:43:21

My current problem statement is no cmd_vel topic is triggered after initiating a 2D Nav goal in RVIS.

Al Jones
2022-12-01 14:54:07

Debugging my lack of cmlvel message after issuing movebase_simple/goal ... it does not appear to be going anywhere. @JeffS Let me know if you are around to sleuth this.

Al Jones
2022-12-01 15:02:47

*Thread Reply:* Interesting https://uos.github.io/mbfdocs/tutorials/beginner/basicnavigation/#:~:text=MoveBase%20expects%20goal%20Messages%20%28geometrymsgs%2FPose%29%20on%20topic%20movebasesimple%2Fgoal.,launched%20from%20within%20Move%20Base%20Flex.%20mbfmbac%3Dactionlib.%20SimpleActionClient%28%22movebaseflex%2Fmovebase%22%2Cmbfmsgs.|link that show remapping We used Move Base Flex by relaying mb_msgs/MoveBaseAction to mbf_msgs/MoveBaseAction in a standard Move Base goal callback. This is useful in case you want to use Move Base Flex as a drop-in replacement for Move Base and want to take advantage of continous replanning, which is built into Move Base Flex, but not Move Base.

Al Jones
2022-12-01 15:10:36

*Thread Reply:* Looks like Vinny monitored movebasesimple/goal here

Al Jones
2022-12-02 13:04:40

*Thread Reply:* More sleuthing needed. After doing these things: • Make a package "lawn_tractor_navigation " ◦ $ cd .. ◦ $ cd src ◦ $ catkin_create_pkg lawn_tractor_navigation rospy • Copy down the src folder • Make .py executable, $ chmod +x mbf_state_machine.py • copy down the file lawn_tractor/lawn_tractor_navigation/CmakeLists.txt • copy down the file lawn_tractor/lawn_tractor_navigation/package.xml • copy down the folder lawn_tractor/lawn_tractor_navigation/include I'm getting a clean catkin_make, but during start up this error is being generated: [mbf_behavior_tree-2] process has died [pid 80213, exit code -6, cmd /home/tractor/catkin_ws/devel/lib/lawn_tractor_navigation/movebaseflex_bt_node __name:=mbf_behavior_tree __log:=/home/tractor/.ros/log/54da8f4a-725e-11ed-951f-ab510d278eeb/mbf_behavior_tree-2.log]. log file: /home/tractor/.ros/log/54da8f4a-725e-11ed-951f-ab510d278eeb/mbf_behavior_tree-2**.log The referenced log file is empty. master.log show: [roslaunch][ERROR] 2022-12-02 11:28:31,000: [mbf_behavior_tree-2] process has died [pid 80213, exit code -6, cmd /home/tractor/catkin_ws/devel/lib/lawn_tractor_navigation/movebaseflex_bt_node __name:=mbf_behavior_tree __log:=/home/tractor/.ros/log/54da8f4a-725e-11ed-951f-ab510d278eeb/mbf_behavior_tree-2.log]. @vinny ruia You around? Any suggestions? (hope all is well)

Al Jones
2022-12-03 16:13:56

*Thread Reply:* Trying to build movebaseflexbtnode

Using these steps: • $ cd /home/tractor/catkinws/src/lawntractornavigation • $ code . • Confirm CmakeLists.txt is present and the statement below is present ◦ addexecutable(movebaseflexbtnode src/mbfbehaviorTree.cpp) • Confirm mbfbehaviorTree.cpp is present • In VS Code, Select Terminal, New Terminal • $ mkdir build • $ cd build/ • $ cmake .. • $ cmake --build . I seem to have gotten a clean compile...

[100%] Linking CXX executable devel/lib/lawn_tractor_navigation/movebaseflex_bt_node [100%] Built target movebaseflex_bt_node tractor@tractor-HP-ProBook-645-G1:~/catkin_ws/src/lawn_tractor_navigation/build$

Al Jones
2022-12-03 16:20:40

*Thread Reply:* No joy, still not finding movebaseflexbtnode

  /
    mbf_behavior_tree (lawn_tractor_navigation/movebaseflex_bt_node)

ROS_MASTER_URI=<http://localhost:11311>

process[mbf_behavior_tree-1]: started with pid [30317]
terminate called after throwing an instance of 'std::runtime_error'
  what():  Internal error in realpath(): No such file or directory
[mbf_behavior_tree-1] process has died [pid 30317, exit code -6, cmd /home/tractor/catkin_ws/devel/lib/lawn_tractor_navigation/movebaseflex_bt_node __name:=mbf_behavior_tree __log:=/home/tractor/.ros/log/5a8aa39e-7358-11ed-89f9-492abb57fe04/mbf_behavior_tree-1.log].
log file: /home/tractor/.ros/log/5a8aa39e-7358-11ed-89f9-492abb57fe04/mbf_behavior_tree-1**.log
all processes on machine have died, roslaunch will exit
shutting down processing monitor...
... shutting down processing monitor complete
done
tractor@tractor-HP-ProBook-645-G1:~$

but it is actually here:

/home/tractor/catkin_ws/src/lawn_tractor_navigation/build/devel/lib/lawn_tractor_navigation/movebaseflex_bt_node
JeffS
2022-12-03 18:54:01

*Thread Reply:* I'm looking at your steps... I don't know why you created a build directory. I don't recall doing that step in anything that I have done. That might explain why your executable is under an extra "build" directory level.

JeffS
2022-12-03 19:00:19

*Thread Reply:* So instead of doing these steps: $ mkdir build $ cd build/ $ cmake .. $ cmake --build . I would just switch to to your catkinws directory and do a catkinmake... Or maybe I am missing something.

Al Jones
2022-12-03 19:21:29

*Thread Reply:* I seem to have 2 copies of movebaseflexbtnode , but neither are in the location that seems to be correct.

JeffS
2022-12-03 19:38:48

*Thread Reply:* Well, I would do the obvious... Delete the build directory that you created. Then delete: catkinws/devel catkinws/build Then switch to catkinws and do a catkinmake See what that gives you.

Al Jones
2022-12-03 20:21:58

*Thread Reply:* @JeffS Followed the steps above. Unfortunately same results.

  /
    mbf_behavior_tree (lawn_tractor_navigation/movebaseflex_bt_node)

ROS_MASTER_URI=<http://localhost:11311>

process[mbf_behavior_tree-1]: started with pid [38998]
terminate called after throwing an instance of 'std::runtime_error'
  what():  Internal error in realpath(): No such file or directory
[mbf_behavior_tree-1] process has died [pid 38998, exit code -6, cmd /home/tractor/catkin_ws/devel/lib/lawn_tractor_navigation/movebaseflex_bt_node __name:=mbf_behavior_tree __log:=/home/tractor/.ros/log/c355d7f6-7379-11ed-89f9-492abb57fe04/mbf_behavior_tree-1.log].
log file: /home/tractor/.ros/log/c355d7f6-7379-11ed-89f9-492abb57fe04/mbf_behavior_tree-1**.log
all processes on machine have died, roslaunch will exit
shutting down processing monitor...
... shutting down processing monitor complete
done
tractor@tractor-HP-ProBook-645-G1:~$

I only have one copy now.

JeffS
2022-12-01 19:57:43

Info from today's video meeting.

===========================================

12012022 ROS Lawn Tractor Automation meeting This video: https://youtu.be/DD53JInlFTY

Chat: None

Index: 00:00 Jeff: Gives a tour of his new small robot progress. 10:50 Al: Gives a status update. Points out he can't get his vehicle to move. 13:30 Al: Can't get current stuff to work so he is looking at other navigation packages. 14:05 Jeff: Says maybe he was too hasty in recommending stripping down the navigation stack. 18:45 Leading up to a live debug session... 24:30 Discussion of what RVIZ publishes when you click 2D-NavGoal. 31:30 Some searching to see what topic name movebaseflex wants to see. 39:00 Start of live debugging. 1:01:30 Jeff: Suggests to also check cmd_vel to see if it needs renamed.

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

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

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
JeffS
2022-12-03 15:56:11

I couldn't figure out how to edit the message about this weeks video meeting to add an image, so I will post it here.

Al Jones
2022-12-05 11:45:40

Current problem statement: When I run this https://github.com/jones2126/tractor_laptop_ROS_workspace/blob/master/src/lawn_tractor_sim/launch/mbf.launch

Which launches &lt;node pkg="lawn_tractor_navigation" name="mbf_behavior_tree" type="movebaseflex_bt_node" It fails with an error:

process[mbf_behavior_tree_1]: started with pid [38998] terminate called after throwing an instance of 'std::runtime_error' what(): Internal error in realpath(): No such file or directory [mbf_behavior_tree-1] process has died [pid 38998, exit code -6, cmd /home/tractor/catkin_ws/devel/lib/lawn_tractor_navigation/movebaseflex_bt_node __name:=mbf_behavior_tree __log:=/home/tractor/.ros/log/c355d7f6-7379-11ed-89f9-492abb57fe04/mbf_behavior_tree-1.log]. movebaseflexbtnode exists in

Al Jones
2022-12-05 12:24:57

*Thread Reply:* @JeffS Was correct. The executable is being found. I added two ROS_INFO statements. The first one is printed, but the second one is not.

```int main(int argc, char **argv) { ros::init(argc, argv, "mbfbehaviorTree"); ros::NodeHandle nh("~"); ROSINFO("In main() of mbfbehaviorTree.cpp"); std::string xmlfile; std::string pkgpath = ros:📦:getPath("lawntractornavigation"); // TODO: make this a param std::string filepathprefix = pkgpath + "/config/behaviortree/"; nh.param<std::string>("xmlfile", xmlfile, "movebaseflextree.xml");

std::string completeFilepath = filepathprefix + xml_file;

BehaviorTreeFactory factory;

factory.registerNodeType<WaitForGoal>("WaitForGoal"); factory.registerNodeType<GetPathActionClient>("GetPath"); factory.registerNodeType<ExePathActionClient>("ExePath"); factory.registerNodeType<RecoveryActionClient>("Recovery"); auto tree = factory.createTreeFromFile(completeFilepath); ROSINFO("mbfbehaviorTree.cpp - after createTreeFromFile xml"); NodeStatus status = NodeStatus::IDLE;```

Al Jones
2022-12-05 12:28:20

*Thread Reply:* The .xml file exists

Al Jones
2022-12-05 16:11:15

Here is a positive sign... a 2D Nav goal entered, a path appearing and data being published on /movebase/cmdvel

Al Jones
2022-12-08 06:42:47

sharing fyi. Links to Ackermann projects... https://discourse.ros.org/t/nav2-reference-ackermann-robot-simulation/24901

ROS Discourse
Reading time
1 mins 🕑
Likes
10 ❤️
JeffS
2022-12-08 11:25:15

If we have a meeting today I will give another video tour of my robot progress...

JeffS
2022-12-08 14:43:01

This is a size comparison from my bigger robot (Sammy2) to the new one. Sammy wheel width center-to-center is 18". The new one is 13". I was surprised the new wheel base is only about 3" shorter than the old one. The new one will stay small, if I don't pile a whole bunch of crap on top.

Bob Hassett
2022-12-08 14:56:19

*Thread Reply:* ANY chance you could show a line up of all your bots?

JeffS
2022-12-08 14:57:12

*Thread Reply:* No, If it were warm out I might be able to.

JeffS
2022-12-09 16:39:51

This weeks video meeting was on Friday instead of Thursday. Here is the info.

===========================================

12092022 ROS Lawn Tractor Automation meeting This video: https://youtu.be/vGMxhmObOtA

Chat: Jeff: My older robots: http://www.tcrobots.org/members/jsamp.htm Al: https://www.youtube.com/watch?v=ySlU5CIXUKE

Index: 00:00 Jeff: Gives a second tour of his new small robot progress. 05:25 Bottom view showing servo mounted to axle. Steering control arms. 08:00 Discussion of weight. 10:50 Image for size comparison. (Wrong screen confusion.) 15:05 What about batteries? 17:10 Robot line-ups. 20:15 What GPS to use. uBlox M8T and RTK-Lib? 22:00 Al: Gives a status update. 23:05 Al: Suggests loading a new computer with his tractorlaptopROS_workspace and see if it still works. 23:45 Al: Explains his current problem. And adding a map. 33:30 Google Maps vs. Google Earth. 34:05 Discussion/confusion about various origins. 56:20 Origin vs. origin. [Pause] 57:35 Al gives a recap of what we hashed out. 1:00:45 Jeff gives a recap of his interpretation.

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

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

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
JeffS
2022-12-15 10:34:15

There is no video meeting today. And I see it didn't get mentioned. It has been scheduled for tomorrow at the regular time. (Noon Eastern time)

PS. There is a pinned message at the top of General channel. It doesn't show up unless you click on "1 Pinned". It has various links that may be helpful.

Al Jones
2022-12-15 15:37:32

Intrinsic acquires ROS maker Open Source Robotics Corp https://www.therobotreport.com/intrinsic-acquires-ros-maker-open-source-robotics-corp/#:~:text=Intrinsic%20is%20also%20acquiring%20Open%20Source%20Robotics%20Corporation,from%20OSRC%20and%20OSRC-SG%2C%20which%20are%20for-profit%20businesses.|link the for profit part of Open Source Robotics Foundation, which is the developer of the Robot Operating System (ROS)

The Robot Report
Written by
Steve Crowe
Est. reading time
4 minutes
JeffS
2022-12-16 14:34:50

Info for today's video meeting.

===========================================

12162022 ROS Lawn Tractor Automation meeting This video: https://youtu.be/PmTr2Jwofrw

Chat: Al: https://github.com/jones2126/tractor_laptop_ROS_workspace

Index: 00:00 Jeff: Shows the mostly completed steering on his new small robot. 10:45 Al: Starts with a status update. New bag file, RVIZ problems. New battery management system for his LIPO battery. He has pots for real time control of his PID parameters. He is consolidating his code, pictures and documentation on his github site. 12:30 Al: Shows his development roadmap. 13:20 Al: Shows his RVIZ screen. 13:50 Al: Shows pictures of his electronics on his lawn tractor. 15:25 Al: Goes back to a live RVIZ screen. 20:55 Jeff: Asks about battery monitoring. (with the fancy new BMS) 22:55 Al: Shows pictures of his phone app to show battery monitoring. 30:50 Al: Sums up where he is.

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

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

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
Al Jones
2022-12-21 16:30:47

I think I have my map reasonable sorted, but I have an issue with my TF to sort out. I drove the yard and on playback it looks pretty close.

JeffS
2022-12-21 16:57:25

On your TF problem, the three frames listed are supplied from your URDF file. Maybe you are not loading that file, or it had errors.

Or you don't have a connection from odom to basefootprint (which is supplied by gpsodom.py. So that may not be running or it has errors.

Maybe run the "show frames", or whatever it is called to see where the TF is broken. Or look at the startup messages on your terminal windows to see what might be complaining.

JeffS
2022-12-22 21:15:13

After Terry talked about using cordless drill batteries (on today's video that I haven't posted yet) I pulled out the two drills I have. They are both 18V, maybe NiMh or NiCad. One was dead, the other had a good charge. I connected the charged one to my giant R/C servo (which wants 12-24V). It runs on that and is pretty snappy. It is not chattering and shutting down like it was on my random lead acid battery.

So I will have to look into buying (or making) an adapter for one or both of those. One battery foolishly has unprotected tabs sticking out so it would be easy to short it out and watch the flames. But it also easy to clip on alligator clips. The other one is close to Terry's Milwaukee batteries and I have to shove metal tabs in to get connection.

TERRY SCHUMACHER
2022-12-23 08:21:59

*Thread Reply:* @JeffS I have two follow ups.

TERRY SCHUMACHER
2022-12-23 08:25:31

*Thread Reply:* oops, pressed Enter when I shouldn't have

  1. I got my Milwaukee M18 battery connector on Amazon with the title of "2 Pack Power Wheels Adaptor for Milwaukee M18 Battery 18v Dock Power Connector 12 Gauge Robotics dpsweb23569395011?ie=UTF8&node=23569395011&field-lbrbrandsbrowse-bin=Anztek|Brand: Anztek>"
  2. I looked on Hackaday.com and was unable to find anything on the M18 BMS protocol. I know their tools communicate with the battery, but have not found the protocal. It would probably same me having to add my own voltage measurements. It was great sitting in on the meeting yesterday.
JeffS
2022-12-22 23:02:14

Info from today's video meeting. This turned into a massive debug session. Which turned out to be a typo/oversight at 1:06:20.

===========================================

12222022 ROS Lawn Tractor Automation meeting This video: https://youtu.be/ecwIJu_NSH8 Chat: Al: https://github.com/jones2126/tractor_laptop_ROS_workspace/tree/master/project_support_files Al: https://automaticaddison.com

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

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

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

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
JeffS
2022-12-23 01:47:30

@Al Jones It concerns me that in RVIZ your maps and grid and local costmap are not square with the world.

In the panel on the right (Views) there is Angle,X,Y. That angle always show 0.22 on your screens. Try double clicking on the parameter for Angle (the 0.22) and enter 0 then press Enter. See if that squares up your mp on the view. If it does, try saving the RVIZ configuration and then see if it comes up squared next time you start it (or if you normally load a configuration file each time see if that comes up 0 angle then).

JeffS
2022-12-23 01:47:52

Or do you have a reason for it to be rotated?

JeffS
2022-12-23 02:47:38

@Al Jones Oh, I see on today's meeting video your maps and grid are square to N/S. You must have already figured it out.

Al Jones
2022-12-29 11:09:29

just so the URL is nearby for Zoom call started now: https://us02web.zoom.us/j/82088036016?pwd=K2lLc1FiWm9MU0dzRStxM2J2b3dpQT09

Al Jones
2022-12-29 14:34:38

I think this resolved my "driving below ground" issue

&lt;joint name="base_footprint_joint" type="fixed"&gt; &lt;parent link="base_footprint"/&gt; &lt;child link="base_link"/&gt; &lt;!-- &lt;origin xyz="0.0 0 0.1525"/&gt; --&gt; &lt;!-- &lt;origin xyz="0.0 0 ${tire_rear_dia}"/&gt; wheels are still off the ground --&gt; &lt;origin xyz="0.0 0 ${tire_rear_dia / 2}"/&gt;

JeffS
2022-12-29 15:02:51

You may have to adjust that on each wheel and when you specify basefootprint to baselink.

👍 Al Jones
JeffS
2022-12-29 15:09:24

If you search this: https://duckduckgo.com/?t=ffab&q=what+controls+forward+speed+in+teb+panner&atb=v343-1&ia=web You get various references to adjusting forward velocity and rotational velocity/angle using TEB planner.

👍 Al Jones
JeffS
2022-12-29 16:00:17

Let's try this... Since Slack doesn't work very well any more. I'll see if I can repost the pinned message from General.

Useful links: • Video conference link (Zoom): https://us02web.zoom.us/j/82088036016?pwd=K2lLc1FiWm9MU0dzRStxM2J2b3dpQT09 ◦ (The Zoom video meetings are Thursday at Noon (USA ET); ◦ Saved videos (link); Saved chats (link) • You Tube Video of Meetings: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ • Indexes made by Jeff: http://sampson-jeff.com/RosAgriculture/ • Google drive folder (link); Sheet with current configurations (link); Juan's action list (link); Rough work plan (link); Shared catkinws copies (link) • Robot Agriculture: https://github.com/ros-agriculture • Simulator: https://github.com/ros-agriculture/lawn_tractor/blob/master/simulator.md • Discourse: https://discourse.ros.org/c/ros-agriculture/63 • Discourse – Perception: https://discourse.ros.org/t/perception-project/17621 • Archived RosAg Slack content (link) That seems to have worked. Maybe I should consider doing this once a month...

JeffS
2022-12-29 17:04:26

Info from Today's video meeting.

===========================================

12292022 ROS Lawn Tractor Automation meeting This video: https://youtu.be/gDjq6gSq1j8

Chat: Al: https://protonvpn.com/support/how-to-set-up-protonvpn-on-openwrt-routers/ Jeff: rostopic pub -1 /turtle1/commandvelocity turtlesim/Velocity -- 2.0 1.8 Jeff: http://wiki.ros.org/ROS/Tutorials/UnderstandingTopics Jeff: rostopic pub [topic] [msgtype] [args] Jeff: https://github.com/jones2126/tractor_laptop_ROS_workspace Terry: https://www.adafruit.com/product/3800

Index: 00:00 Jeff: Gives a demo of the mostly completed steering on his new small robot. 05:15 Jeff: Talks about drill batteries. 10:10 Al: Compares his lithium batteries. 12:20 Al: Talks about Jeff's steering again. Questions about the position sensor in these R/C servos 17:45 Jeff: Talks about possibly adjusting the pot and getting better tracking. 20:15 Al: Shows a simulated vehicle so he can see the cmdvel that is coming out. 36:50 Al: Reiterates what he thinks he is getting. 40:00 Jeff: Suggests directly publishing a cmdvel to verify that works. 49:00 Okay, we finally figured out how to publish a cmdvel. 53:00 We proved the vehicle will drive faster. So the problem seems to be TEB planner parameters. 54:30 Terry: Gives a quick update and asks how to proceed. Discussion of simple motor control. And an Ada Fruit Itsy-Bitsy board. SAMDPWM function. Suggestion of rosserial. 1:02:15 Al: Gives a brief overview of how does low level motor control. 1:03:45 Jeff: Says where to find this github. But it also gets posted to chat. 1:04:10 More talk about rosserial. 1:05:00 Jeff: Talks about quadrature decode. 1:05:55 Al: Asks about Terry's Itsy-Bitsy board. 1:10:00 Al: Talks about simulation. Some exploration of his simulation shows up. Attempting to fix the vehicle being below the ground plane. 1:28:30 Some talk about how to create a map.

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

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

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
JeffS
2023-01-05 19:29:10

Info from today's video meeting.

===========================================

20230105 ROS Lawn Tractor Automation meeting Length 27:15 This video: https://youtu.be/4Y3q4dTHyOg

Chat: Al: https://www.aliexpress.us/item/2251832568712028.html Al: 180kg.cm Parameters: - Model: XJD-X1 Al: https://servodatabase.com/compare

Index: 00:00 Jeff: Mentions shorter screws and bolts. 00:35 Jeff: Talks about R/C servos, wire ferrules, cable clamps, grounding the frame 02:45 Jeff: Gives a status update on what Terry is doing. He has his dual channel Cytron driver board working with an Ada Fruit ItsyBitsy board. Possibly weird problems with ground wires. 05:10 Jeff: Talks about snow blower concepts. 05:50 Jeff: Is back to indexing ROS Agriculture videos. 200 of 250 completed. 07:20 Al: Talks about file maintenance. 09:50 Al: Talks about workspace maintenance. 13:30 Al: Found out why his internet connection was being rejected. 15:25 Al: Is trying to find old code/videos. We go through how to find the ROS Lawn Tractor Meeting index and the ROS Agriculture meeting index. Turns out it was the description of creating a path with Dubin's is what he was looking for.

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

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

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
JeffS
2023-01-05 19:50:03

Just a side note... As I said on today's meeting video, I have an updated ROS Agriculture video index. Before I had 166 videos indexed. Now I have 200 videos indexed. That leaves 50 videos which seem to be averaging about 2 hours per video to create. So I'm not real motivated to jump back in right now to finish them...

Al Jones
2023-01-06 07:15:08

*Thread Reply:* Thanks for putting the investment in time you have done so far.

Al Jones
2023-01-11 10:31:00

I've made it easier to run the lawn tractor in simulation and published the instructions on github. https://github.com/jones2126/ros1_lawn_tractor_ws

Suggestions welcome. #random

Language
Makefile
Last updated
a day ago
JeffS
2023-01-12 16:30:26

Info from today's video meeting.

===========================================

20230112 ROS Lawn Tractor Automation meeting Length 52:57 This video: https://youtu.be/V3robck4V5c

Chat: Al's github page: https://github.com/jones2126 https://github.com/jones2126/tractor_laptop_ROS_workspace Al's instructions for installing a simulator: https://github.com/jones2126/ros1_lawn_tractor_ws

Index: 00:00 Al: Gives a status update. Modified some dimensions on his simulator model. 01:20 Al: Talks about path generation. Referring to this video: https://youtu.be/F3ycvmWkUl8?t=300 03:40 Al: Talks about his speed problem. 04:25 Discussion of velocity units. 07:20 Al: Talks about his github organization. And more comments of paths. 10:35 Jeff: Shows the crimp on wire ferrules he mentioned last week. 13:55 Jeff: Holds up a single channel Cytron board. And Terry's grounding issue is discussed. 16:25 Jeff: Random updates on what did (or did not) do. 17:15 Terry: Talks about the communication protocol for his drill batteries. 24:05 Terry: Talks about controlling his motors with a PID function. 28:40 Terry: Asks if ROS will control accel/decel or do you have to do it yourself. 30:20 Al: Brings up processor speed for quadrature decode. 33:15 Jeff: Again brings up the concept of using a cheap Blue Pill board as a smart peripheral. And a discussion about SAMD21 vs. SAMD51. Because Jeff was confused. 34:45 Terry: Plans to address his motor control. Discussion of the Milwaukee drill battery. 38:40 Al: Shows his battery management software monitor. 40:30 Jeff: Asks about the battery adapter for the drill battery. 43:30 Terry: Shows a voltage convertor he ordered. 44:55 More discussion on decoding the battery protocol. 48:15 Terry: Points out where he is loading software. He is going to put Zener diodes on his voltage dividers. 49:15 Al: Points out the obvious. 49:50 Jeff: Talks again about automatically verifying his R/C servos.

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

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

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
JeffS
2023-01-16 12:11:16

Here is some discussion on the BNO055 IMU: https://groups.google.com/g/hbrobotics/c/3VC2sGo3qDM

Bob Hassett
2023-01-17 18:07:02

@JeffS when do you think you might get to making a video verifying servos?

JeffS
2023-01-17 18:59:07

I don't know. Whenever I get around to it.

I just did a foolish thing and ordered another giant servo, https://www.amazon.com/gp/product/B0B1DX3RFW/ref=ppx_od_dt_b_asin_title_s00?ie=UTF8&psc=1 This new version has the pot on top of the board so it easier to solder on a feedback wire. But I notice it has a position output pin. Which I assume is the voltage from the pot. (maybe buffered)

I should open a "normal" servo and see if the pot has a feedback voltage, or if it has some weird digital signal...

Bob Hassett
2023-01-17 19:06:31

Looking at the data sheet…it says remote control? Is that only RC control?

JeffS
2023-01-17 19:09:05

Without looking at the data sheet, the previous versions were selctable between R/C pulse width or a voltage input.

Bob Hassett
2023-01-17 19:11:09

Interesting. So one might need a blue tooth or WiFi module?

JeffS
2023-01-17 19:13:51

Well, you need something to supply R/C pulses or a control volatge. I don't see what that has to do with Blue Tooth or WiFi.

Bob Hassett
2023-01-17 19:23:29

I miss took “ remote control” to mean more than Just RC. That is, also capable to Control over blue tooth or WiFi some how. Ooops. I suppose one would need to add additional circuits to control over WiFi.

JeffS
2023-01-20 01:05:48

@Al Jones When I post the video I made comment at 1:48:06. And as I say it looks the global path is constantly replanning so it may confuse the local planner. As an experiment, go into nav_newteb.launch and change planner frequency from 5.0 to 0.0 and see if that makes a difference.

I have finished uploading and indexing the video but I have a few more steps to go...

👍 Al Jones
JeffS
2023-01-20 01:48:00

Info from today's video meeting. This one got quite long...

===========================================

20230119 ROS Lawn Tractor Automation meeting Length 2:27:36 This video: https://youtu.be/pina3Rx4kMI

Chat: Articulated Robotics: https://www.youtube.com/@ArticulatedRobotics Robot Shop of Horrors: http://sampson-jeff.com/rsoh/ Twin Cities Robotics meetings: http://www.tcrobots.org/mtgpics/picindex.htm Jeff's old member page: http://www.tcrobots.org/members/jsamp.htm

Index: 00:00 Jeff: Shows his dual motor drive train. 10:20 Jeff: Talks about selecting a microcontroller board. 20:50 Jeff: Talks about the latest version of the giant servo he ordered. And general R/C servo testing. 24:20 Jeff: Talks about some optoisolators he ordered. 30:30 Jeff: Stories of Robot Shop of Horrors and Twin Cities Robotics meetings. 32:10 Jeff: Servo testing, buying parts. 36:10 Terry: Talks about Articulated Robotics channel. 38:35 Terry: Gives an update on his motor control progress. 41:55 Al: Give a quick demo of his simulated vehicle to show the speed control problem. [Warning, we spend the 1-1/2 hours trying to figure out what the problem is.] 53:45 We fire up dynamicreconfigure to view and change parameters on the fly. We verify that we can view and change values. We can save all parameters and load them back in. 1:13:30 We come to the conclusion that baselocalparameters are probably not used at all. 1:16:30 We print out the loop rate that the planner is running at. 1:25:05 The question is asked if the forward velocity is reducing if the vehicle veers right and left. Yes, it looks like that is a problem. 1:40:40 Jeff's package just showed up. 1:44:10 Maybe the (modified)cmdvel to ackermann translator is changing values? 1:45:15 Terry leaves (so he knows where to pick this up if he wants to) 1:48:06 So in re-watching the video, I see at this point that I can see the global plan keeps replanning. That pulls the path out from underneath and hands it a new one. That could confuse it. You may be able to disable the global replanning. I think it is either a TRUE/FALSE in the global planner parameters. Or it is a global replan rate in the same place. 1:52:50 The concept of switching from Al's lawn tractor back to Jeff's mini-tractor comes up. 2:12:50 movebaseflex? 2:15:25 We go look at parameters after switching vehicles. 2:15:50 It just occurred to me that teb local planner needs to know wheelbase. So it is probably defined in the teb local planner yaml file. So that is another place to change values if switching between vehicles. 2:20:00 Discussion of how to get all these random variables to match up automatically. 2:23:10 Jeff: Shows his new ASMC-04B servo he just got in the mail.

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

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

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
JeffS
2023-01-20 03:09:36

I was confused in the meeting today. When Terry mentioned Articulated Robotics, I was thinking of this guy: https://www.youtube.com/@automaticaddison9709/videos I was quoting Articulated Robotics in this meeting: 03032022 ROS Lawn Tractor Automation meeting https://youtu.be/wn3YTXuOhdc

YouTube
YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
JeffS
2023-01-24 20:24:51

I got a ASMC-04B servo last Thursday. I assumed the "B" version was newer. But of course, I was wrong. The "A" and "B" version are different speed/torque versions:

ASMC-04A 110kg/cm - 0.12sec/60deg - $53 with no "servo plate" ASMC-04B 180kg/cm - 0.5sec/60deg - $57 with "servo plate"

So the "A" version turns 4 times faster but has lower torque. I got a ASMC-04A today. They both track quite well (just playing with a servo tester). The speed difference is quite noticeable.

JeffS
2023-01-24 20:33:27

Also, the ASMC-04 has a position output pin. So you don't have to solder a wire onto the pot to get the position voltage.

JeffS
2023-01-26 15:20:14

Info from today's video meeting:

===========================================

20230126 ROS Lawn Tractor Automation meeting Length 47:53 This video: https://youtu.be/xbPi8kgM8h4

Chat: Jeff: Giant R/C servos ordered from Amazon ASMC-04A 110kg/cm - 0.12sec/60deg - $53 with no "servo plate" ASMC-04B 180kg/cm - 0.5sec/60deg - $57 with "servo plate" Jeff: https://github.com/jones2126/tractor_laptop_ROS_workspace/blob/master/project_support_files/embedded_programs/tractor_control_2022/src/main.cpp Jeff: https://github.com/jones2126/ros1_lawn_tractor_ws/blob/master/project_notes/vehicle_dimensions_helper.ods Jeff: https://groups.google.com/g/hbrobotics

Index: 00:00 Jeff: Gives a demo of his giant R/C servos moving and talks about them. 06:50 Terry: Talks a bout PID libraries for Arduino type boards. Interrupts and volatile variables. 09:25 Al: Says he has a PID example in his github. We post a link in chat to Al's code. 14:30 Al: Presents his "Vehicle Dimension Helper" file. Foot Print definition. Talks about how to create the Foot Print. We post a link in chat to Al's spreadsheet. 22:30 Al: Mentions a Zoom meeting he listened in on. 23:45 Talk about all the various file locations for numbers. 25:10 We track down Al's spreadsheet on his github. 35:10 We track down the files that have the PID code. 40:45 Mention of how remote control ties into this. 43:30 Jeff: Asks what this is used for. It is the steering control. Some discussion which sensors are being used for steering.

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

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

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
Al Jones
2023-01-30 13:10:50

I posted this issue on Ros Answers today. Any advice is welcome.

https://answers.ros.org/question/412031/using-tebplanner-and-movebase-the-robot-on[…]-max-velocity-when-2d-nav-goal-is-set-in-a-certain-direction/

answers.ros.org
JeffS
2023-02-02 16:02:58

Info from today's video meeting.

===========================================

20230202 ROS Lawn Tractor Automation meeting Length 1:01:33 This video: This video: https://youtu.be/JTdYo8IAF5Q

Chat: Jeff: Giant R/C servos ordered from Amazon ASMC-04A 110kg/cm - 0.12sec/60deg - $53 with no "servo plate"

Jeff: Code change in odom.py to fix velocity: Was odom.childframeid = 'base_footprint' odom.pose.pose = result.pose # odom.twist.twist = result.twist

Now odom.childframeid = 'base_footprint' odom.pose.pose = result.pose # odom.twist.twist = result.twist x = float(result.twist.linear.x) y = float(result.twist.linear.y) odom.twist.twist.linear.x = float(sqrt(x * 2 + y * 2)) # odom.twist.twist.linear.z = float(atan2(y,x)) odom.twist.twist.angular.z = result.twist.angular.z

And you have to add this at the top somewhere: from math import atan2, sqrt

Jeff: Thread on HBRC about logic analyzers: https://groups.google.com/g/hbrobotics/c/vgeu9af-vUw/m/CtUhESNuCgAJ

A reference to the analyzers on eBay: https://www.ebay.com/sch/i.html?_from=R40&_trksid=p2510209.m570.l1313&_nkw=USB-SALEAE-24M-8CH-Logic-Analyzer-24M-8-Channel-with-Buffer-Support&_sacat=0

Big selection from Amazon: https://www.amazon.com/s?k=logic+analyzer&crid=1F5WHD0NPYMI5&sprefix=logic+%2Caps%2C151&ref=nb_sb_ss_ts-doa-p_10_6

Index: 00:00 Jeff: Gives a demo of his new fast giant R/C servos on his robot. 03:05 Jeff: Says he played with the simulator package to fix the speed. Describes the problem and possible fix. Demo coming up later. 06:45 Terry: Is working on his PID code. Shows some logic analyzer plots. Battery monitoring with A/D. Starting with ROS. Vacation plans. 11:30 Al: Random comments on code and PID. 12:15 Al: Skipped over the speed problems and is working with Move Base Flex and waypoints. 16:00 Al: Demo of what he is working on. 18:10 A question comes up about driving backwards. 22:10 More comments on purposely driving backwards. 24:40 Jeff: Gives an explanation for his changes. 29:30 Jeff: Starts a demo. 46:45 Al: Asks about Terry's logic analyzer. Terry describes his USBee-SX. 57:50 Some discussion on the current Gazebo simulation model and switching different models.

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

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

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
JeffS
2023-02-05 15:11:08

Just a side note... I looked out the front door and decided I can't run my robot in my front yard. I was just playing with my simulated 4-wheel Ackermann vehicle. So I started up the simulator and published an Ackermann message with 0.5 m/s speed and 0.25 radian steer angle. The vehicle drives around in a circle. The Ackermann command is at the top. Gazebo ground path shows it driving in a 4 meter diameter circle. The window on the right is the /odom topic created from Gazebo. The big window on the left is the /imu/data topic. The small window in the lower left is the /gps0/fix_velocity topic. The rotational velocity from /odom and /imu are showing 0.25 rad/s. The forward velocity is showing 0.5 m/s. The /gps is showing the published velocity vector. (I can extract velocity and heading directly from that. Then create rotational velocity from heading.) All of the numbers seem appropriate all the way through. So this should be valid to experiment with velocity and steering.

Al Jones
2023-02-06 07:00:01

That's some serious snow. Thanks for doing the testing. It's really insightful. I'm trying to run a Dubins path using teb_planner and starting with trying to run a circle using this program. Struggling a bit. Trying to work through it.

Al Jones
2023-02-07 16:55:00

Trying to tune my teb_planner. Using this script to run a consistent mission each time. At the moment it is a square. Performance is really bad. Lots of backing up. Still at it....https://github.com/jones2126/ros1_lawn_tractor_ws/blob/master/src/ackermann_vehicle/nodes/driving_square_example.py

Al Jones
2023-02-09 09:29:59

Link to screencast showing simulated robot running this mission https://github.com/jones2126/ros1_lawn_tractor_ws/blob/master/src/ackermann_vehicle/nodes/driving_star_example.py Although its better, I'm wondering if there is a way for the speed to be more consistent (i.e. Eliminate slowing down to a crawl as the robot gets closer to a way point.)

Al Jones
2023-02-09 09:32:50

Zoom meeting (Thursdays at Noon (ET)) <https://us02web.zoom.us/j/82088036016?pwd=K2lLc1FiWm9MU0dzRStxM2J2b3dpQT09#success>

JeffS
2023-02-09 16:48:34

This is the Dubins-RRT global planner I found. I don't know anything about it, but has nice pictures. https://github.com/jhan15/dubins_path_planning/

Stars
29
Language
Python
JeffS
2023-02-09 17:26:22

When I look at this Dubins-RRT, it looks like isn't for ROS.

JeffS
2023-02-09 17:26:43

But it still has great pictures.

Bob Hassett
2023-02-09 21:16:05

My new setup to explore computer vision. My pie in the sky is trying to use visual odometry. Luckily there is a you tube channel of 63 lessons to literally spoon fed me.

👍 Al Jones
JeffS
2023-02-10 14:27:16

Info from this week's video meeting.

===========================================

20230209 ROS Lawn Tractor Automation meeting This video: https://youtu.be/rMfrhUc0AgY

Chat: Al: https://fritzing.org/ Jeff: https://fritzing.org/download/ Al: https://github.com/adafruit/Fritzing-Library/blob/master/parts/Adafruit%20ItsyBitsy%20M4.fzpz Terry: https://www.reddit.com/r/MilwaukeeTool/comments/108d3j9/m18_fuel_battery_protocol/ Jeff: Set GPS to ideal to closer represent RTK: See note below... Al: https://ieeexplore.ieee.org/document/8918671 Al: Path Planning for Mobile Robot using Dubins-curve based RRT Algorithm with Differential Constraints https://github.com/FelicienC/RRT-Dubins Jeff: The global Dubins-RRT planner I found: https://github.com/jhan15/dubins_path_planning/ (Turns out this is not made for ROS)

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

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

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

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

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
Al Jones
2023-02-11 06:04:52

I posted this over at ROS Ag Discourse. Just trying to get some feedback. https://discourse.ros.org/t/ackermann-steering-bot-using-teb-planner-mbf-and-dubins-path-slows-down-at-each-goal-how-to-avoid-that/29731

ROS Discourse
Al Jones
2023-02-11 11:49:28

sharing fyi, http://rtk2go.com/

Al Jones
2023-02-15 09:38:49

Back in 2019 we had Dr. El Houssein Chouaib Harik speak to us from https://precisionag.no/ I sent an email over there this morning to see if anyone will take a call to talk again about their ROS experience. Thanks @JeffS for the video index. It helped me find https://www.youtube.com/watch?v=zOgJNwGXBSg

NIBIO
YouTube
} Robot Agriculture (https://www.youtube.com/@robotagriculture2265)
Al Jones
2023-02-16 10:33:11

Video link of running this simple Dubins path (link) in simulation. Not terrible efficient, but its a start.

JeffS
2023-02-16 22:52:35

Info from today's video meeting.

===========================================

20230216 ROS Lawn Tractor Automation meeting Length 1:02:30 This video: https://youtu.be/YMndWJp7Pls

Chat: Path to Al's stuff. https://github.com/jones2126/ros1_lawn_tractor_ws/tree/master/src/ackermann_vehicle/nodes/missions Jeff: Path to saved workspaces on Google drive. https://drive.google.com/drive/folders/1t2P2sfiranPe10fmUBUnnVvKNgrfybAV?usp=sharing Al: Some reference to path name. python script sub/pub

rospy.Subscriber('got_path', Float64, path_callback)
    path_pub = rospy.Publisher('/drive_path', Path, queue_size=10)

https://drive.google.com/file/d/1oHgs4eQg1ZwQ_JoquGgf-rm78N-NoccJ/view?usp=share_link Jeff: Link to YouTube video about using path_generator.py. 03052021 Lawn Tractor Meeting https://www.youtube.com/watch?v=F3ycvmWkUl8 Al: Instructions on using the path generator from above. https://docs.google.com/document/d/17bPVy9IUBp3xqllMGpGTsoqm8cyIUm37bdLj_oB9NDE/edit Jeff: Link to the F1tenth Pure Pursuit https://github.com/f1tenth-dev/pure_pursuit

Index: 00:00 Al: Talks about his progress with path following. Shows a video. Explains some code. 09:50 Jeff: Talks about path planning and suggests that MoveBaseFlex/TEBplanner may never give adequate results. Mentions Pure Pursuit. 11:20 Jeff: Brings up Matt and Juan's Pure Pursuit experiments. 12:00 Jeff: Goes searching for Juan's original source code. Found the Pure Pursuit package. We look at: Pure Pursuit gpsheading.py pathgenerator.py pathpublisher.py 22:40 Jeff: Incorrectly opens pathgenerator.py when he should have opened pathpublisher.py. But no one noticed... 24:25 Jeff: Tracks down the YouTube video where we were explaining some variation of pathgenerator.py. 28:50 Look at launch files. 34:50 We go back and look at Pure Pursuit code again. 39:40 Jeff: Goes looking for the Pure Pursuit code from last week. 43:15 Finally found the repository. 46:43 Finally found the Pure Pursuit controller code. 50:00 We go back and look at path_publisher from Juan's repository. 1:01:25 Al: Says is going to spend some time on his remote control.

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

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

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
JeffS
2023-02-18 21:28:12

This is why you need an e-Stop. And make sure everybody knows how to use it. (Russian robot clobbering a reporter.) https://twitter.com/i/status/1626877928444231680

JeffS
2023-02-22 18:20:01

Pardon the intrusion, I'm attempting to do some documentation and checking to see what will show up through Slack...

Al Jones
2023-02-22 19:20:20

*Thread Reply:* Looks good

JeffS
2023-02-23 22:17:29

Info from today's video meeting.

===========================================

02232023 Lawn Tractor Automation meeting Length 2:00:26 This video: https://youtu.be/3fwYPfUF6-o

Chat: Al: https://github.com/jones2126/lawn_tractor_embedded_code Story about Alan's scooter project: http://www.tcrobots.org/members/akili.htm#robot3 Search for "28 May 1999" And note the phrase "Arghhhhhhhh. I look at the switch, and I can see really pretty green explosions going on INSIDE the switch that is lighting up all the way through the switch's plastic parts." These old accounts of experiments are hilarious. That's why it was called "Robot Shop of Horrors"! Al: Jeff, is this the package you used? http://wiki.ros.org/purepursuit_planner Jeff: == Matt's demo of his Pure Pursuit == Quick mention Lawn Tractor Meeting 08232019 @56:00 https://youtu.be/zOgJNwGXBSg?t=3359 Lawn tractor meeting 11062020 @29:50 https://youtu.be/lq0xQs77Mmc?t=1787 Lawn Tractor Meeting-v4zdeQC9RCg @12:16 https://youtu.be/v4zdeQC9RCg?t=736

Index: 00:00 Terry: Got replacements for his Itsy-Bitsy board he blew out. He talks about wiring and relays. 02:05 Mechanical relays or solid state relays? Story of abusing switches. 06:20 When do you have to worry about your robots killing people? 07:30 Terry is working on wiring. 07:45 Terry: Talks about drilling stainless steel. And next steps. 10;10 Jeff: Mentions the Milwaukee drill battery project. 12:55 Al: github - speed, physical implementation, tuning. Organizing embedded software. Remote control. ESP32 communication. 16:25 Al: chatGPT 18:25 Terry: Asks where the 0.73 come from? 20:05 Differences between two-wheel differential drive and 4-wheel differential drive. 21:15 Jeff: Presentation on Pure Pursuit control. (For the next 1-1/2 hours) Hacking of existing code. 36:00 Terry: Asks if you can also control external functions. 40:35 Running multiple planners in parallel. 41:30 Creating actual scenarios to create path planning methods. 43:55 Creating maps to represent the real world. More description of Pure Pursuit. 53:55 Cross track error. 57:35 Starting in the proper location. 59:40 cmdvel, ackermannvel 1:02:05 Does Pure Pursuit currently control speed? 1:03:40 Demo time... 1:37:10 Running Pure Pursuit and Move Base at the same time. 1:42:55 Terry: Asks if rviz can plot the area covered by his snow plow. 1:45:10 Al: Asks what the launch file for Pure Pursuit looks like. 1:51:15 Jeff: Says this is how you fix the steering angle that he screwed up. The comment is how to fix the "rightsteeringjoint", but you also have to fix "leftsteeringjoint". 1:53:30 Al: Asks about "/got_path", Jeff says "throw it out". 1:56:40 Simulated vehicle vs. real vehicle. 1:57:40 ROS2 NAV2?

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

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

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
Al Jones
2023-02-24 03:24:39

Pretty cool to watch them progress.....https://www.farm-equipment.com/articles/21047-sabanto-releases-first-autonomy-kit-for-kubota-m5-tractors

farm-equipment.com
JeffS
2023-02-24 13:41:43

Terry asked how to display his snow blower coverage on RVIZ. Just playing with arrow size parameters for odometry looks like it might work. If you just want a visual indication of where it has been,

JeffS
2023-02-24 13:54:02

The message Al just posted has a side link. This is troubling. I guess all lawn equipment will have to switch to diesel engines (because they are not spark ignition). Because an uninformed person funded by money from anti-gasoline lobbies told this person to do so... https://www.farm-equipment.com/articles/21137-minnesota-to-consider-ban-on-gas-powered-lawn-equipment

farm-equipment.com
Al Jones
2023-02-25 08:01:48

Trying to get rosserial to work on my TTGO ESP32 board. Hoping the solution is similar to these folks. https://github.com/espressif/arduino-esp32/issues/4807

Comments
3
Al Jones
2023-02-25 18:42:09

*Thread Reply:* Unfortunately no luck so far. I made this post...https://community.lilygo.cc/topic/179/lora32-v1-0-esp32-development-board-continually-rebooting-when-using-ros

LILYGO
JeffS
2023-02-27 00:14:01

This video is quite informative for doing auto steer. https://www.youtube.com/watch?v=kEL2vY1CA8s

YouTube
} FarmerBrianTee (https://www.youtube.com/@FarmerBrianTee)
JeffS
2023-03-01 11:55:09

* REPOST *

It has been about 90 days since this was posted. So I will post it again.

Useful links: (The pinned message from the General channel.) • Video conference link (Zoom): https://us02web.zoom.us/j/82088036016?pwd=K2lLc1FiWm9MU0dzRStxM2J2b3dpQT09 ◦ (The Zoom video meetings are Thursday at Noon (USA ET); ◦ Saved videos (link); Saved chats (link) • You Tube Video of Meetings: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ • Indexes made by Jeff: http://sampson-jeff.com/RosAgriculture/ • Google drive folder (link); Sheet with current configurations (link); Juan's action list (link); Rough work plan (link); Shared catkinws copies (link) • Robot Agriculture: https://github.com/ros-agriculture • Simulator: https://github.com/ros-agriculture/lawn_tractor/blob/master/simulator.md • Discourse: https://discourse.ros.org/c/ros-agriculture/63 • Discourse – Perception: https://discourse.ros.org/t/perception-project/17621 • Archived RosAg Slack content (link)

YouTube
Al Jones
2023-03-02 05:44:46

I asked ChatGPT for a response to the question I posted on ROS Discourse. You can read the response here: https://discourse.ros.org/t/ackermann-steering-bot-using-teb-planner-mbf-and-dubins-path-slows-down-at-each-goal-how-to-avoid-that/29731/2

ROS Discourse
JeffS
2023-03-02 16:09:00

Info from today's video meeting.

===========================================

20230302 Lawn Tractor Automation meeting Length 46:47 This video: https://youtu.be/Rsmwa3C2OAc

Chat: Al: https://chat.openai.com/chat

Index: 00:00 Terry: Is again having trouble drilling his stainless steel panel. 02:05 Terry: Wiring plans. 03:15 More about drilling stainless steel and tempered steel. 06:00 Al: Talks about his embedded code. ROS Serial. 10:20 Jeff: A quick way to show path coverage in RVIZ. 22:10 Jeff: Talks about cross track error. 29:00 Jeff: Talks about choosing a processor board (yet again). Wiring methods. 35:55 Jeff: Comments about using a Blue Pill board as an Arduino. 36:50 Using uart communication between low level boards. 43:25 Discussion about remote control.

===============

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

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

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
Al Jones
2023-03-09 10:02:55

Just a reminder, meeting in 58 mins.

Zoom meeting (Thursdays at Noon (ET)) <https://us02web.zoom.us/j/82088036016?pwd=K2lLc1FiWm9MU0dzRStxM2J2b3dpQT09#success
JeffS
2023-03-09 23:28:46

Info from today's video meeting.

===========================================

20230309 Lawn Tractor Automation meeting - Length 1:32:06 This video: https://youtu.be/D0T9628aaZ8

Chat: Jeff: Ubuntu Mate 20.04 Raspberry Pi 3B (This wasn't obvious, so I'm not going to make any recommendations.) Al: Prebuilt Raspberry Pi image notes. https://docs.google.com/document/d/1QFE9bjuWu2TFPzNrz0wPjaYWnLHPU8j6e5EXUDqmovQ/edit Jeff: Ubiquity images : https://learn.ubiquityrobotics.com/noetic_pi_image_downloads LinoRobot code: https://github.com/linorobot/linorobot/wiki Presentation: https://www.youtube.com/watch?v=Hj7m2xwlhWY Al: sample udev rules https://github.com/jones2126/lawn_tractor_embedded_code/blob/main/05-serial.rules Jeff: Linux command to show secrets... dmesg OR dmesg --follow OR dmesg -w Jeff: The quadrature decode example for STM32. https://github.com/chrisalbertson/quadratureBluePill Al: $65 Cortex M4 https://www.thanksbuyer.com/stm32-development-board-cortex-m4-small-system-board-stm32f429igt6-core-board-61091 Al: Roger Clark site https://www.rogerclark.net/ Jeff: Other Roger Clark / STM32duino links: https://github.com/rogerclarkmelbourne https://www.stm32duino.com/ https://github.com/stm32duino/Arduino_Core_STM32/wiki/Upload-methods#stm32cubeprogrammer https://github.com/rogerclarkmelbourne/Arduino_STM32/wiki/Bootloader

Index: 00:00 Terry: Battery mounting. Wiring - switches, power convertors, fuse block. 02:10 Terry: Loading ROS on Raspberry Pi. Desktop vs. server. Ubiquity image? Lino Robot image? Discussion on installing different images. 09:45 Terry: Talks about his ROS to microcontroller communication method. ROS Serial or hand built protocol. UART Vs. USB. 15:40 Terry: Wants some way to identify which port is plugged in. We discuss udev rules. 23:55 Jeff: Talks more about serial interfaces. 29:00 Terry: Asks how to power the boards. 33:45 Back to serial discussion. 36:30 Terry: Asks which diode to use. 38:10 Jeff: Mentions bootloaders. Then talks about a quadrature decode example. Will not compile on Windows. Loaded Arduino and a STM32 core on Linux. That compiles. Long story of loading drivers to get the STM32 ST Link module to work. 42:00 Jeff: Goes back to Windows machine to fix it. Replacing the STM32 core fixed it. But ST Link module no longer works. 43:05 Jeff: "Now I can compile and upload under Arduino on Linux." 43:15 Jeff: Back to bootloaders. 46:00 Back to the quadrature story. 47:05 Back to bootloaders again. 50:50 The ultimate goal of total in-circuit programming. 51:25 Down the stm32duino rabbit hole. 56:20 Other than that, Jeff hasn't been doing anything, except thinking about wiring up a physical board. Can be compiled and programmed with either Arduino IDE or ST Micro IDE. 59:15 Al: Asks for confirmation that this is all figured out. 1:05:00 Jeff: Talks about difference between ROS Serial and hand built protocol. 1:14:40 Al: Goes over changes he is making. Messages, servo resolution, mode switch, test driving, PID settings. Next steps. 1:17:15 Al: Shows his current board and goes through code changes. Changing from ESP32servo.h to ledc.h to improve servo resolution. Other changes and description.

===============

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

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

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
YouTube
} Home Brew Robotics Club (https://www.youtube.com/@hbrobotics)
JeffS
2023-03-13 18:10:50

I have been playing with the Blue Pill STM32F103CC8 boards for Arduino for about a week and a half. I can't recommend them (yet).

In the last couple of days I have an HID bootloader working that appears to be stable (even without the infamous "change the resistor value"). I wasted a lot of time on the Roger Clark STM32duino bootloader I haven't gotten it to download even once.

Depending which "Arduino Core" you run, they act differently. The "official" STM Arduino Core (which is supported by ST Micro) appears to use HAL libraries (Hardware Abstraction Layer - which people refer to as "big and bloated"). The Roger Clark STM Arduino Core (and derivatives) uses something else (CMSIS libraries?) These are different ways ST Micro has developed over the years to "make programming easier". But if you find sample code then it may or may not work with the different "core" types.

I had found a hardware quadrature encoder example that will compile with the Roger Clark flavor of "core", but not on the ST Micro flavor of "core". After digging through the forums I found an example of hardware quadrature decode (in HAL?) that compiles and works with the ST Micro flavor. So I have something to proceed with.

If you don't do "special stuff" that requires direct register access, then either version "core" should work to do "standard" Arduino code. But if you need to play with registers then you have to pick one or the other.

So in my frustration, I ordered 3 Black Pill STM32F401 boards on Saturday (@$5.30 each). They showed up today. I can't talk to them because it says I have to load the STM32CubeProgrammer package (as opposed to the ST-Link binaries that work with the STM32F103). So I have to figure that out next.

But the Black Pill boards have 4 times the code space (256KB) and three times the RAM space (64KB) and have a built-in DFU USB bootloader in addition to the serial bootloader. So I will let you know how that works out after I get the STM32CubeProgrammer loaded.

The encoder code I have compiled for the Blue Pill is taking about 24K out of 62K (64K total - 2k bootloader). So the extra code space on the Black Pill may be needed.

In case you can't tell by my comments... I am quite annoyed at this point.

JeffS
2023-03-13 20:27:23

So I got the STM32CubeProgrammer loaded. It would have been handy if they had usable documentation. But a little guessing got me running.

It works in both ST-Link SWD mode and in USB DFU mode. You have to change a switch to put it into DFU mode.

The blink program seems to coincidentally take 24KB of space but the new chip has 256KB total with no space required for a user bootloader. Both download modes are quite fast. The SWD is about 0.75 seconds and the DFU is about 1.018 seconds.

Now I will see if I can get the encoder to run on the new board.

JeffS
2023-03-16 00:28:10

I'm much happier now. I just now got the first encoder readings out of my Black Pill STM32F401 board. I built the code with the STM32CubeIDE instead of Arduino. The final thing that made it work was to slow down the clocks for the board and now it works. I still haven't gotten it to work with the STM32ArduinoCore. I will have to dig through their clock setup and see if I can modify it.

🙌 Al Jones
Al Jones
2023-03-16 10:04:31

Just a reminder, meeting in 56 mins. Zoom meeting (Thursdays at Noon (ET)) <https://us02web.zoom.us/j/82088036016?pwd=K2lLc1FiWm9MU0dzRStxM2J2b3dpQT09#success>

JeffS
2023-03-16 10:07:53

Oh, yeah. We had a time change last weekend...

JeffS
2023-03-16 21:06:08

Info from today's video meeting.

===========================================

20230316 Lawn Tractor Automation meeting - Length 1:39:53 This video: https://youtu.be/LavOitWonAo

Chat: Al: GitHub initial use instructions (rough) https://docs.google.com/document/d/1SSOxppbL0xE6TJTNi88JQj_6uKqhQ5eyVVkR58dwTBE/edit?usp=sharing

Index: 00:00 Al: Talks about speed control. Speed sensing, PID control. 03:20 Al: Playback of speed control testing. 06:25 Al: Shows the code he is using. 07:55 Al: Next steps. 08:25 Terry: Asks about one wheel sensor vs. two. 09:15 Al: Goes over how his encoders work. 12:45 Terry: Talks about his progress. Battery mounting, wiring, 15:25 Terry: Loading software on RPi and laptop. 16:00 Terry: Next steps. Battery monitoring, RPi to laptop communication, mount circuitry on robot. VNC server on RPi. Start going through ROS tutorials. 19:30 Bump sensors and IR distance sensors. 21:40 A discussion about github. 25:15 Al: Shows a quick demo of VS Code integration with a github. 34:40 Jeff: Launches into to his experiments/progress on Blue Pill and Black Pill boards. Blue Pill with Arduino and bootloader. Differences in Arduino cores. 40:45 Gave up on DFU bootloader and switched to an HID bootloader that seems to work. 43:00 Trying to get encoder code to run. 44:55 Out of frustration, the Black Pill boards were ordered. Some description of Black Pill. Differences between programming the Blue Pill and Black Pill boards. 47:50 Black Pill board will not run the encoder code from the Blue Pill. 49:00 Installed STM32CubeIDE to attack the problem a different way. Figured out how to get the USB port to act like CDC serial port. Encoder and USB working for STM32F103, but on STM32F401. 50:40 Assumption the clocks are wrong, played with clock configuration. 55:30 Encoder now working on Black Pill STM32F401. Comparison of usage and programming. 58:45 Standard Arduino function vs. non-standard functions. 59:30 What next? 1:00:00 Physical prototyping and development. Which peripherals is Arduino using? What peripherals do I need to make my robot work? 1:08:00 Communication between low level controller and high level controller. ROS Serial? 1:08:55 Terry: Suggests adding limit to switches to steering (or whatever you are moving). 1:16:20 Al: Suggests monitoring current to detect a mechanical fault condition. 1:18:45 Al: Asks about setting programming mode on Black Pill board. 1:21:05 Al: Asks about using interrupts instead of I2C interface. Some discussion of his magnetic absolute shaft encoder chip. 1:34:50 Discussion on transporting your vehicle to a testing location. 1:36:00 Comments on Terry's automated snow blower.

=====

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

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

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
JeffS
2023-03-23 16:10:17

Info from today's video meeting.

===========================================

20230323 Lawn Tractor Automation meeting - Length 45:20 This video: https://youtu.be/YyTRvCFoUL4

Chat: None

Index: 00:00 Terry: Talks about a dead laptop. Loading a spare laptop. 04:30 Terry: Is documenting his plans/progress. 07:00 Jeff: Continuing saga of ST Micro processor boards. Probably giving up on Arduino for STM32. The Arduino for STM32 has various problems that I can't figure out. Bluepill (STM32F103), Blackpill (STM32F401), STM32F407VE, F4-Discovery (STM32F407VG). 11:50 Moving to STM32CubeIDE, libraries, USB. 13:45 Comments about using the A/D inputs. 14:10 Comments about encoders and other timers. 15:00 Giving up on Arduino IDE. 15:20 Setting the clock speed the same across boards to allow cut and paste between projects. 16:00 Testing and verifying the 3 "extra" timers. 16:20 Showing a couple of encoders used for testing. 18:10 Prototyping methods. 19:25 UARTs for remote control and debug. 20:25 Configuring the processor. Peripherals vs. pins. 21:15 Adding the LORA radio board. 22:00 Al: Asks which board will be used. Size vs. pins vs. peripherals vs. pin configuration. 24:20 Al: Asks about encoders. 25:20 Header pins. 27:00 Al: Shows his status. He is working on wheel odometry. Problems with IMU. 29:10 Terry: About heading vs. Yaw vs. rotational rate. More on Al's code. 34:40 ROSSerial. 38:30 Jeff: More comments about analog inputs on ST Micro parts. 40:50 Al: Shows how he tracks his pins. 42:35 Pin remapping on modern processors. One more advantage/headache.

=====

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

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

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
JeffS
2023-03-24 11:40:24

Wow! This is worth looking at... https://groups.google.com/g/hbrobotics/c/L_MW26-Q1ac This video demonstration is referenced, but I think it is someone else's: https://www.youtube.com/watch?v=NUBm9b8YQMQ

YouTube
} upgrdman (https://www.youtube.com/@upgrdman)
Al Jones
2023-03-29 08:49:16

@JeffS Thanks for the clue. I now have an improved, but not perfect tf tree attached. Wheel odom code is here: https://github.com/jones2126/ros1_lawn_tractor_ws/blob/master/src/ackermann_vehicle/nodes/odom_wheel_230329.py

JeffS
2023-03-30 15:11:53

Info from today's video meeting.

===========================================

20230330 Lawn Tractor Automation meeting - Length 50:45 This video: https://youtu.be/lRiSvOvub88

Chat: Jeff: SerialTransfer for Arduino communications: https://github.com/PowerBroker2/SerialTransfer

Index: 00:00 Jeff: Continuing saga of ST Micro processor boards. Bluepill (STM32F103), Blackpill (STM32F401), STM32F407VE, F4-Discovery (STM32F407VG). Overall description of pros and cons. Shows the dual processor master/slave prototype. 10:20 Al: Asks about the visualizer software that was posted to slack. 11:25 Al: Talks about implementing wheel odometry. 14:50 Jeff: Mentions difference between "real" wheel odometry and what Gazebo is providing. 17:55 Terry: Suggests periodically "syncing" the wheel odometry to the GPS. 24:05 Jeff: Mentions that Ros Serial also works on the Blue Pill board. And that you could use something different from a Blue Pill board as your master processor. SerialTransfer can use UART or I2C or SPI for a connection. 26:00 Terry: Talks about loading Ubuntu on laptops. Future plans. 33:15 Mention of zones and speeds. 35:35 Enabling VNC. 37:30 Jeff: Asks about the steps Terry used when loading Ubuntu. Discussion of Terry's several computers. Jeff is confused about Terry's Windows computer. Laptop memory.

=====

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

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

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
JeffS
2023-04-06 14:28:02

@Al Jones (from meeting today) If you look at this page: https://docs.ros.org/en/noetic/api/sensor_msgs/html/msg/Imu.html the z field of angular_velocity is your rotational velocity.

JeffS
2023-04-06 15:24:36

Info from today's video meeting.

===========================================

20230406 Lawn Tractor Automation meeting - Length 42:14 This video: https://youtu.be/C2KhruVG8N0

Chat: Al: https://www.amazon.com/gp/product/B07DW646GY/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1 Al: https://frame.work/products/laptop-diy-12-gen-intel

Index: 00:00 Jeff: Continuing saga of ST Micro processor boards. Talks about powering boards from either USB or externally, or both. USB hub vs. hacking USB cables. Modular design. Physical relays vs. solid state relays for eStop circuit. 13:10 Al: Asks what the extra lines were on the diagrams. Which USB hub to use? 17:00 Terry: Laptop stories. Buying a new laptop. 23:55 Terry: Is working with the tutorials and writing new code. 25:10 Terry: Currently: VNC, prototyping, ROS on RPi. 25:40 Al: Asks about Terry's code experiments. 27:55 Al: Posts a link to configuring/building laptops and a link to a USB hub. 28:55 Al: Talks about odometry/location progress. 34:40 Al: Ordered two of the Black Pill F411 boards. STM32 bootloaders. 40:20 Al: Asks Jeff where he got his LORA boards.

==

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

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

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
Bob Hassett
2023-04-07 11:30:09

@JeffS I was following this weeks video. Could you post a good picture of the various power and comm options you discussed? BTW I hope you guys dont mind,I downloaded the transcript and intend to deep dive in what you guys where talking about. All this is just for my personal use.

JeffS
2023-04-07 14:06:51

@Bob Hassett I assume you mean "zoomed in" for "good picture". These were random concepts out of my notebook for my own benefit. Basically "cartoons" of what I was thinking. They were never meant to be accurate. So I am not going to post a zoomed in version of these (unless I add a disclaimer that says these are nonsense).

What I should do is create a detailed version of this presentation to point out the problems and the solutions. Maybe I will do something for the next meeting. Or maybe I should post it to the real world, on may YouTube page. Or maybe do nothing...

Bob Hassett
2023-04-07 14:15:51

Good to know. No worries.

Al Jones
2023-04-08 15:57:33

The image below represents the course travelled by my lawn tractor testing the odom publishing program using wheel odometry plus getting heading from my IMU. Previously I was trying to calculate heading based on meters travelled by the left and right wheel, but decided the IMU data has more accuracy.

# Calculate the change in x and y position of the robot
#delta_x = distance ** cos(self.heading_radians_wheels)
#delta_y = distance ** sin(self.heading_radians_wheels)
delta_x = distance ** cos(self.heading_radians_imu)
delta_y = distance ** sin(self.heading_radians_imu)

As mentioned on our calls, I'm hoping to use this odom data when I lose GPS RTK fix and then return to RTK derived odom when fix is returned. That is code yet to be written. Link https://github.com/jones2126/ros1_lawn_tractor_ws/blob/master/src/ackermann_vehicle/nodes/odom_wheel_230329.py

Al Jones
2023-04-11 12:26:20

Testing my odom publishing program that uses wheel odometry when RTK Fix is not available. The biggest shift comes at the beginning when Fix first starts and wheel odom has been running for about 20 seconds. So far I'm pretty happy with it. More testing needed.

Bagfile here: https://drive.google.com/file/d/1PJ63h97h0YQ2P90CkHfBvK5tNtmY4UlF/view?usp=share_link Odom publishing code here: https://github.com/jones2126/ros1_lawn_tractor_ws/blob/master/src/ackermann_vehicle/nodes/odom_from_wheel_and_gps.py

Al Jones
2023-04-12 14:52:20

Following @JeffS lead, I have some initial success at using /drivepath and purepursuit in simulation.

Al Jones
2023-04-13 10:06:11

Reminder... Zoom meeting (Thursdays at Noon (ET)) <https://us02web.zoom.us/j/82088036016?pwd=K2lLc1FiWm9MU0dzRStxM2J2b3dpQT09#success>

JeffS
2023-04-13 22:57:39

Info from today's video.

===========================================

20230413 Lawn Tractor Automation meeting - Length 1:03:28 This video: https://youtu.be/_SUk36E5LGM

Chat: Al: https://www.uugear.com/product/7-port-usb-hub-for-raspberry-pi/ Jeff: https://abra-electronics.com/robotics-embedded-electronics/arm-development/stm32f411ceu6.html Jeff: https://docs.zephyrproject.org/3.1.0/boards/arm/blackpill_f411ce/doc/index.html Al: STM32F411CEU6 core board V3.0 Freq. 100MHZ ROM:512KB RAM:128KB Jeff: https://stm32-base.org/boards/STM32F401CEU6-WeAct-Black-Pill-V3.0.html Jeff: https://stm32-base.org/boards/

Index: 00:00 Terry: Goes over progress learning TurtleSim and writing code to drive it. 04:50 Al: Shows his wheel odom and GPS odom test results. 09:40 Al: Talks about his Pure Pursuit experiments on a simulator. 13:20 Al: Issues with git. 14:20 Al: What's next. 14:40 Jeff: Talks about his project powering multiple Adruino-type boards. 21:00 Jeff: Says his snow is gone so he could start playing with his lawn tractor again. 22:35 Jeff: Mentions the variations of cmdvel, modified cmdvel, ackermanncmdstamped, and ackermann_cmd. 36:15 Al: Shows his USB hub. 38:25 Al: Talks about his new Black Pill F411 boards. (For rest of meeting)

==

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

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

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
JeffS
2023-04-14 19:20:50

I see the our last video meeting put us at the 100 video mark. A few of those are shorts and tutorials, but most are meetings. 💯

Al Jones
2023-04-15 06:11:13

There are few things going on here. First the path from the garage to the starting point of a dubins test, running the dubins test using pure pursuit, manually driving a hard right turn, then continuing with a manual hard left turn and returning to the garage. So this was the first time in the real world to test letting the lawn tractor be guided by pure pursuit. Lots to adjust and refine.

Al Jones
2023-04-20 15:03:38

Crazy prices on GNSS equipment. https://www.aliexpress.com/store/1101386350?spm=a2g0o.detail.1000007.1.7fde29fctLYsr9 No, of course I don't need another receiver. Just looking at the Base Station container https://www.aliexpress.com/store/1102602874?spm=a2g0o.detail.1000007.1.7f5933c7zuuZQV

JeffS
2023-04-20 17:15:45

@Al Jones At around 40:00 in today's video Al says he is using pose.orientation.z but that is actually part of a quaternion. If you want z, use the yawdeg (or convert that to radians). Or convert the quaternion to x,y,z, but that should be the same value as yawdeg...

JeffS
2023-04-20 18:24:59

Info from today's video meeting.

===========================================

20230420 Lawn Tractor Automation meeting - Length 43:08 This video: https://youtu.be/B6ITWNVfY1M

Chat: None

Index: 00:00 Jeff: Random updates. Cell modem doesn't work. 3G vs. 4G? Screwed up his cell phone during debug. Various alternate methods of transferring correction data. 03:00 Jeff: New fiber optic Internet (that isn't hooked up yet). 04:25 Al: Has a list of things he is doing. Pure Pursuit, vehicle speed. Status lights. IMU problems. Black Pill won't program. Ideas for organizing a GPS base station. 07:25 Al: Shows some plots. 11:35 Jeff: Asks about turning radius. 17:55 Al: Now has a mysterious offset when he starts up. 19:10 Al: Talks about his status LEDs. 21:20 Al: Safety features. 23:55 Al: Ardusimple survey package. (As an example) 26:05 Discussion about programming a Black Pill board. 30:15 Al: Next steps. 31:25 Jeff: Asks about Al's IMU. 37:50 git problems. Back to the problem. 39:30 More analysis of plots.

==

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

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

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
Al Jones
2023-04-21 09:24:07

Controlling my speed has become an issue. Part of that problem is the connection between my SuperServo200 and the transmission. It appears the shaft coupler that I had welded to a connecting strip is wearing on the shaft and has become a little loose. I might need to change to a clamp-style coupler to get more surface area to hold on to the servo shaft.

Bob Hassett
2023-04-21 11:19:28

*Thread Reply:* @Al Jones how about a shaft collar with set screws?

Al Jones
2023-04-21 12:47:16

Thanks for weighing in. The control arm is not loose because the set screw was absent or became loose. I thought I was being clever the last time the set screw was loose. I tightened it down as far as I could and used Loctite RED. Now I've bent an allen wrench trying to get the setscrew out. The set screw has actually gouged the shaft somewhat. I was able to get the control arm off with force. Now it seems to get the set screw out I would need to heat it up. Or make a new control arm. A new collar is enroute from McMaster Carr.

JeffS
2023-04-21 22:47:54

Do you still have the round plate that came with the servo. You're not going to get a much better fit than that. You can bolt a metal arm to that.

JeffS
2023-04-27 14:53:54

Info from today's video meeting.

===========================================

20230427 Lawn Tractor Automation meeting - Length 43:55 This video: https://youtu.be/-mRuvFu-ro8

Chat: None

Index: 00:00 Jeff: Cell modem account cancelled. Now what? 02:50 Terry: Has another dead Unbuntu install. Need backup? 07:30 Jeff: Asks about updates on using drill batteries. 08:15 Al: Talks about his giant R/C servo for transmission control. Shows pictures of his servo arm. Shows graph of speeds. 17:00 Jeff: Asks about GPS speeds vs. wheel speeds. Calculated angular rotation vs. rotation directly from IMU. Mounting plate that came with Super Servo. 23:25 Removing the spring from inside of the transmission. 25:40 Jeff: Asks about Al's big tractor. 26:00 Software speed control loop fighting the engine governor speed control loop. 32:00 We start looking at actual data from odometry and IMU. 38:20 Quaternions in Plot Juggler. And custom series.

==

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

Index for the original ROS Agriculture group (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (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
2023-05-04 16:09:00

Info from today's video meeting.

===========================================

20230504 Lawn Tractor Automation meeting - Length 43:33 This video: https://youtu.be/qgptDyHIDdw

Chat: Al: Something to share https://github.com/yoneken/rosserial_stm32 # might be useful if trying to use STM32 board http://wormfood.net/avrbaudcalc.php https://github.com/ClemensElflein/open_mower_ros https://wiki.openmower.de/index.php?title=FAQ#What_is_OpenMower? http://wiki.ros.org/wit-imu-driver https://wiki.openmower.de/index.php?title=FAQ#Who_created_OpenMower? https://github.com/Inspur-ROS/WIT-IMU https://allentown.craigslist.org/grd/d/macungie-craftsman-trac-drive/7606249290.html ESP-NOW https://www.youtube.com/watch?v=bEKjCDDUPaU (DroneRobot Workshop) https://www.youtube.com/watch?v=6NsBN42B80Q (Andrea Spiess) https://www.youtube.com/watch?v=oz0a7Ur7nko (packet loss analysis) Robo Tank https://github.com/SensorsIot/RoboTank

Index: 00:00 Terry: Updates on laptops and software experiments. 02:20 Jeff: Talks about telemetry radios. 14:30 Also have LORA and WiFi to try instead. 15:00 Maybe make a GPS base station. 16:45 Jeff: Pulled an EarthWise reel type push mower out of the trash. 20:15 Al: Talks about sending parameters to his vehicle microcontroller. 22:20 Al: Talks about different versions of ROS-Serial he has tried. 27:15 Al: Safety switches. (Stopping on loss of signal) 32:20 Al: Interesting links to share. 37:00 Al: Next steps - Pure Pursuit and velocities. 39:40 Jeff: We need to create a list to modify on the "standard" Pure Pursuit package.

==

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

Index for the original ROS Agriculture group (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (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
2023-05-05 12:26:58

A couple of videos of RVIZ results; One a simulated 3 turn mission and the second is a failed attempt at running in the real world. Next step is to debug what the heck went wrong. https://drive.google.com/drive/folders/1u2zG9WfJiiIcmby0f9IYj108OB1lsngI?usp=share_link

Bob Hassett
2023-05-08 18:20:59

Here is my current test bed. I’m combining an old pic based Vex EDR system with heavy current motor drivers. Right now I’m using 12 volts to drive motors. Eventually I’ll use 24v. Vex uses 8 volts to power their motors. I don’t presently have a 5 volt source to provide logic high to the heavy current motor drivers. do I tap the battery pack or hang a step down of the 12 volt source?

Good design says keep the 2 circuits separate. But I have to compromise.

So what to do?

Bob Hassett
2023-05-08 20:21:38

Ah NUTS !… system does not work. Seems the vex module does not produce a PWM system that the Cyton motor boards like or want. Hmmm maybe the vex uses RC PWM? Back to the drawing board.

Bob Hassett
2023-05-08 20:48:06

I’m now thinking some kind of converter from RC PWM to a PWM.. something like https://www.hicomponent.com/4-channel-pwm-to-0-5v-converter-module.html any opinions?

hicomponent.com
JeffS
2023-05-08 21:42:27

I don't think that board does what you want. It looks like it converts 100% PWM to a voltage.

You could create your own converter with an Arduino type board. Put code to decode R/C PWM to get a number. Then use that number to create PWM and DIR to run your Cytron board.

Bob Hassett
2023-05-08 21:44:53

Thanks for the idea!

Bob Hassett
2023-05-09 17:17:05

While following with Jeff’s suggestion, I stumbled across this one. Looks interesting and flexible for now and future adaptations. https://www.dimensionengineering.com/products/sabertooth2x12rc

JeffS
2023-05-11 15:42:50

Info from today's video meeting.

===========================================

20230511 Lawn Tractor Automation meeting - Length 40:30 This video: https://youtu.be/PmbywXZOvFM

Chat: None

Index: 00:00 Terry: Discusses his laptops. Dual boot, replacing hard drives, external hard drives. 06:30 Jeff: Adding old scrap lawn mowers to the Sammy2 mini-tractor. 09:15 Jeff: Talks about his telemetry radio experiments. 14:00 Al: Talks about ground plots. 15:35 Al: Radio problems. Blocking calls affecting loop rate. 28:30 Jeff: Breaks in with urgent news... 28:45 Jeff: Makes comments on the ground plots from earlier in this video. 33:15 Al: Shows some connectors and asks for some advice.

==

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

Index for the original ROS Agriculture group (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (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
2023-05-17 14:57:46

Finally got the Sawtooth 2x12 controller to work. Now I can remote control 2 motors. One for steering and one to fwd/reverse. I’ll have to put 2 12v batteries in series if I want 24v to drive the motors…go faster. Found out I can’t use a step up for 24v because of the regeneration feature.

🙌 Al Jones
Al Jones
2023-05-17 19:31:23

Still testing LoRa communications between my DIY purpose built radio control and my tractor using the jgromes radiolib library on ESP32 boards. At the moment I can send a 30 character packet to the tractor and get a 22 character packet back from the tractor at a rate of 20 messages every 10 seconds (i.e. ~2 Hz). So far that is about the best I can do. Code for testing is:

Initiator (for me this would be my radio control): https://github.com/jones2126/lawn_tractor_embedded_code/blob/main/ttgo_LoRa_initiator_2/src/main.cpp

Receiver (for me this would be my tractor): https://github.com/jones2126/lawn_tractor_embedded_code/blob/main/ttgo_LoRa_receiver_2/src/main.cpp

Bob Hassett
2023-05-17 19:40:28

*Thread Reply:* @Al Jones I’m jealous!

JeffS
2023-05-17 21:35:03

I have been playing with the telemetry radios. The short story, they work. I haven't done any range testing. I have checked the received data by decoding it with the RTKlib "convbin" software with no complaints. And the F9P does not report any checksum errors. I can get a "float" and "fix" solution.

But I notice my F9P GPS is acting goofy. The last thing I did was disable all of the Galileo satellites and it seems to have settled down.

Here is an image showing the incoming RTCM3 status. You can also see the Galileo satellites popping in and out.

JeffS
2023-05-18 11:11:55

Image after turning off Galileo satellites.

JeffS
2023-05-18 18:44:51

Info from today's video meeting.

===========================================

20230518 Lawn Tractor Automation meeting - Length 1:06:12 This video: https://youtu.be/yQh7S0jG4tc

Chat: Command to fetch correction data and send it to the radio. str2str -in ntrip://'USERID':'PASSWORD'@mncors.dot.state.mn.us:9000/'RTCM32NAD83(2011)'#rtcm3 -out -p 45.01249983 -93.24395717 235 -t 0 -n 1000

Command to fetch correction data and save it to a file str2str -in ntrip://'USERID':'PASSWORD'@mncors.dot.state.mn.us:9000/'RTCM32NAD83(2011)'#rtcm3 -out -p 45.01249983 -93.24395717 235 -t 0 -n 1000

Command to convert correction data to a readable format. convbin usb1.bin -r rtcm3

Index: 00:00 Jeff: Talks about his telemetry radio experiments. Verifying data. Logging with Putty or writing to file using RTKlib str2str tool. Shows wiring and explains connections. Explanation of more experiments. 32:15 Thoughts on range checking. 35:10 Terry: Asks about correction data reliability. 39:00 Jeff: Shows the two types of radios that he has. 42:55 Jeff: Mentions also trying to get cell phone to provide correction data. 47:55 Terry: Talks about laptops. And he has another new laptop. 54:20 Al: Talks about his LORA radios. 59:00 Discussion of loop rates and stopping distance. 1:01:00 Another discussion about stopping distance. Some final comments about safety.

==

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

Index for the original ROS Agriculture group (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (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
2023-05-20 23:14:40

I mentioned on the video meeting that I was going to make another attempt to get my cell phone to provide GPS correction data. The phone is a Samsung A20 with a Tracfone cell phone plan. They have the Wifi and Bluetooth tethering locked out.

I loaded this software: https://www.ardusimple.com/introducing-gnss-master-app/ And this adapter cable: https://www.amazon.com/JSAUX-Adapter-Compatible-MacBook-Samsung/dp/B07BS8SRWH/ref=sr11?crid=1A420OXK020V1&keywords=USB%2BC%2Bto%2BUSB%2BAdapter%2B%5B2%2BPack%5D%2C%2BJSAUX%2BUSB%2BType%2BC%2BMale%2Bto%2BUSB%2B3.0%2BFemale%2BOTG%2BCable&qid=1684641521&sprefix=usb%2Bc%2Bto%2Busb%2Badapter%2B2%2Bpack%2B%2C%2Bjsaux%2Busb%2Btype%2Bc%2Bmale%2Bto%2Busb%2B3.0%2Bfemale%2Botg%2Bcable%2Caps%2C200&sr=8-1&th=1|https://www.amazon.com/JSAUX-Adapter-Compatible-MacBook-Samsung/dp/B07BS8SRWH/ref=sr[…]to%2Busb%2B3.0%2Bfemale%2Botg%2Bcable%2Caps%2C200&sr=8-1&th=1 And this FTDI adapter: https://www.amazon.com/HiLetgo-FT232RL-Converter-Adapter-Breakout/dp/B00IJXZQ7C/ref=sr118?crid=1WE111HRW2S6H&keywords=ftdi+ttl-232r-3v3+usb+board&qid=1684641614&sprefix=ftdi+ttl-232r-3v3+usb+board%2Caps%2C192&sr=8-18|https://www.amazon.com/HiLetgo-FT232RL-Converter-Adapter-Breakout/dp/B00IJXZQ7C/ref=[…]41614&sprefix=ftdi+ttl-232r-3v3+usb+board%2Caps%2C192&sr=8-18

And much to my surprise, it works. It successfully bypasses whatever Tracfone attempted to lock me out.

I have only run it on Wifi, but I assume it will work on cell network data...

ArduSimple
Al Jones
2023-05-25 17:47:04

I was struggling getting my purpose-built radio control LoRa ESP32 board, my tractor LoRa ESP32 and Laptop running ROS and using rosserial to work together so I just rolled my own serial, data passing, test code to see how that might work. At first I struggled and then @JeffS and @TERRY SCHUMACHER set me straight today. Just testing I set the laptop to ESP32 at 100 Hz and the ESP32 to laptop at 50 Hz and it looked like it was able to handle 99 and 49 Hz respectively. I will likely only need 10 and 5 Hz. Code below:

ESP32 side: ```#include <Arduino.h> //#define BATTERY_PIN A0 // analog pin for battery voltage

float linearx = 0.0; float angularz = 0.0; float voltage = 0; float incomingHz = 0.0;

unsigned long currentMillis = millis(); unsigned long previousSendVoltage = 0; unsigned long previousDisplay = 0; unsigned long previousHzCount = 0; const long intervalSend = 200; // 5Hz = 200; 50 Hz = 20 (e.g. ((1/50)**1000)=20 rate for sending battery voltage const long intervalDisplay = 1000; const long intervalHzCount = 5000; int incomingCount = 0;

include <Adafruit_SSD1306.h>

define SCREEN_WIDTH 128 // OLED display width, in pixels

define SCREEN_HEIGHT 64 // OLED display height, in pixels

define row_1 0

define row_2 9

define row_3 18

define row_4 27

define row_5 36

define row_6 45

define row_7 54

AdafruitSSD1306 display(SCREENWIDTH, SCREEN_HEIGHT, &Wire, -1);

void startOLED(){ pinMode(OLEDRST, OUTPUT); digitalWrite(OLEDRST, LOW); delay(20); digitalWrite(OLEDRST, HIGH); Wire.begin(OLEDSDA, OLEDSCL);
if(!display.begin(SSD1306
SWITCHCAPVCC, 0x3c, false, false)) { // Address 0x3C for 128x32 while(1) delay(1000); // SSD1306 allocation failed - loop forever and don't continue } display.clearDisplay(); display.setTextColor(WHITE); display.setTextSize(1); display.setCursor(0,row_1); display.print("start OLED"); display.display(); delay(2000); }

void updateDisplay(){ if (currentMillis - previousDisplay >= intervalDisplay) { display.clearDisplay(); display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(0, row_1); display.println("INCOMING READINGS");

display.setCursor(0, row_4);
display.print("Incoming Hz: ");
display.print(incomingHz); 

display.setCursor(0, row_6);
display.print("linear x: ");
display.print(linear_x); 
display.setCursor(0, row_7);
display.print("angular z: ");
display.print(angular_z);  
display.display();
previousDisplay = currentMillis;

} }

void sendVoltage(){ // 5Hz rate for sending battery voltage or other tractor data if (currentMillis - previousSendVoltage >= intervalSend) { //float voltage = analogRead(BATTERY_PIN) ** (3.3 / 4095.0); // Replace with your specific conversion function voltage = voltage + 1; // just using as a placeholder Serial.println(voltage); previousSendVoltage = currentMillis;
} }

void checkSerial(){ // Receiving linearx and angularz data at 10Hz if (Serial.available() > 0) { String incomingData = Serial.readStringUntil('\n'); int commaIndex = incomingData.indexOf(','); if (commaIndex != -1) { linearx = incomingData.substring(0, commaIndex).toFloat(); angularz = incomingData.substring(commaIndex + 1).toFloat(); // add a safety feature to make sure the values are within an acceptable range or confirm it's done elsewhere incomingCount++; // increment the count of incoming messages } } }

void calcIncomingHz(){ if (currentMillis - previousHzCount >= intervalHzCount) { incomingHz = incomingCount / (intervalHzCount/1000); incomingCount = 0; // reset the counter every 5 seconds previousHzCount = currentMillis; } }

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

void loop() { currentMillis = millis(); sendVoltage(); checkSerial(); calcIncomingHz(); updateDisplay(); } Python Laptop side import serial import time

ser = serial.Serial('/dev/ttyACM0', 115200, timeout=1) ser.flush()

voltage = 0.0 linearx = 0.0 angularz = 0.0 previoustimesend = time.time() previoustimereceive = time.time() previoustimedisplay = time.time() voltage_count = 0

while True: current_time = time.time()

# Receiving voltage data at 5Hz
if ser.in_waiting &gt; 0:
    line = ser.readline().decode('utf-8').rstrip()
    voltage = float(line)
    #print(f"Voltage: {voltage}")
    voltage_count += 1

# Sending linear_x and angular_z data at 10Hz
if (current_time - previous_time_send) &gt;= 0.1:
    previous_time_send = current_time
    ser.write(f"{linear_x},{angular_z}\n".encode('utf-8'))

# For testing, we can simulate linear_x and angular_z changes
if (current_time - previous_time_receive) &gt;= 1.0:
    previous_time_receive = current_time
    linear_x += 0.1
    angular_z += 0.2  # Adjust the increment to suit your needs

# Displaying the voltage count every 10 seconds
if (current_time - previous_time_display) &gt;= 10.0:
    previous_time_display = current_time
    print(f"Number of voltage messages received: {voltage_count}, incoming Hz: {(voltage_count/10)}")
    voltage_count = 0  # reset counter        ```
JeffS
2023-05-25 22:01:10

Info from today's video meeting. I added a link to the Slack channel in the description. We'll see if that attracts anyone new.

===========================================

20230525 Lawn Tractor Automation meeting - Length 35:30 This video: https://youtu.be/Jk5CwawWj7k

Chat: The new Ardusimple GNSS Master cell phone app. https://www.ardusimple.com/introducing-gnss-master-app/

Index: 00:00 Jeff: Got his cell phone to provide RTK correction data for the F9P GNSS receiver. 08:50 Terry: Talks about laptops. And here is going next. And the Linux history command. 11:40 Al: Talks about his LORA radios. Println vs. ROS Serial. 18:20 Discussion about sending messages both directions. 27:00 Al: Has another dead laptop. 27:30 Mentions of Linux swap file size. 29:00 Al: Mentions "ESP Now" for communications. 32:35 Jeff: Asks about Al's previous experiments.

==

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

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

Index for the original ROS Agriculture group (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (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
2023-06-01 17:51:13

Info from today's video meeting.

===========================================

20230601 Lawn Tractor Automation meeting - Length 47:41 This video: https://youtu.be/SaqsdcoYjq8

Chat: None

Index: 00:00 Jeff: Quick mention of the cell phone CORS RTK correction data. 01:00 Jeff: Yes, after all this time, the Sammy2 robot still moves... And next steps. 02:00 Jeff: Steering calibration, yet again. Doing everything from remote control box and not using ROS command line. Rotational velocity vs. steering angle for control. 09:00 Using the switches on the remote for other control situations. 12:00 Using the switches to specify a path to be run. 15:50 Or, if running a navigation stack, have it post preprogrammed nav goals. More random discussion about procedures and remote control modifications. 38:00 Al: Status and ToDo list. LORA radio libraries. Some description of how his code works.

==

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

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

Index for the original ROS Agriculture group (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (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
2023-06-07 12:49:11

I had a thought yesterday. What if you convert the power steering motor on a lawn tractor directly to R/C control? There are lots of people on YouTube showing how to do that. They just use a controller board from a scrap R/C servo, a power driver board, and a pot attached to you motor.

I haven't thought through all of the advantages and disadvantages. But it might be something to consider.

JeffS
2023-06-07 12:54:25

I had a thought yesterday. What if you use your actual vehicle as a debug tool? Start your simulator and navigation software. Give it a path to follow and watch it run. Then have your steering controller on your vehicle subscribe to the same movement commands you are using (cmdvel or ackermanncmd). Then watch the steering on the vehicle as it just sits there. You can compare the physical vehicle to the simulated vehicle. The simulator is in complete complete control. The physical vehicle just mirrors the steering.

Al Jones
2023-06-07 19:02:50

*Thread Reply:* @JeffS Thanks for giving it your thoughts. Both good ideas. I am currently struggling getting my low level ESP32 controller to work with LoRa and passing data back and forth to ROS. We can chat tomorrow if you are available at out regular time.

JeffS
2023-06-09 00:42:06

Info from today's meeting.

===========================================

20230608 Lawn Tractor Automation meeting - Length 51:17 This video: https://youtu.be/NtOn3eJ0cZk

Chat: Jeff: Examples of driving big motors from R/C signals. Using R/C servo https://www.youtube.com/watch?v=bURsvNdro4o Using Arduino https://www.youtube.com/watch?v=3pYWLF8qw-g Driver boards from videos: https://www.amazon.com/Driver-Channel-Current-Stepper-Controls/dp/B0C6JZFQP8 https://www.amazon.com/BTS7960-H-bridge-Double-Current-Diagnostic/dp/B09W8VV6RH

Index: 00:00 Jeff: Possibly convert big (power steering) motors into R/C servos. 19:20 Jeff: Ponders running your vehicle steering in parallel with a simulator. 27:25 Al: Says he may modify his firmware just to listen to cmd_vel for this test. 27:45 Al: Explains his current control architecture. 30:25 ROS Serial vs. custom serial. 31:10 Diagrams of Al's control system. 44:15 Visio vs. Freeform vs. hand drawn 47:00 Al: No GPS, udev rules, communications.

==

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

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

Index for the original ROS Agriculture group (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (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
2023-06-09 07:22:40

I'm running a path in Gazebo using pure pursuit and getting some cmdvel.angular.z values > steeringangle_limit: 0.785 which is meant to be set in pure pursuit yaml file. Starting to investigate....

path: 23.5 3.3 1.64 23.5 13.3 1.64 21.5 13.3 3.21 21.5 3.3 4.78 19.5 3.3 1.64 19.5 13.3 1.64 17.5 13.3 3.21 17.5 3.3 4.78

Al Jones
2023-06-09 07:43:57

*Thread Reply:* @JeffS When you have a minute can you check your pure pursuit.cpp code and see if your code has commented out when 'yt' is negative? (line 240-244)

Al Jones
2023-06-09 09:38:37

*Thread Reply:* So I un-commented the code to handle negative values and the angular.z values seem more understandable.

Al Jones
2023-06-09 09:52:02

*Thread Reply:* Link to video of running the path in simulation: https://drive.google.com/file/d/1W-K6tMXfqNShEgWeFHk8hTltnQy45dUe/view?usp=drive_link

JeffS
2023-06-09 22:18:39

*Thread Reply:* First, my code does have the lines that you showed commented out. They are commented out in mine also. More importantly, those are not in the original repository, So somebody added these after the fact and then commented them out. I didn't intentionally make changes to the Pure Pursuit code. I did modify the ackermann_cmd type, then switched it back because I converted it externally.

JeffS
2023-06-09 22:23:55

*Thread Reply:* I see you are playing with the cmd_vel topic. I shouldn't even mention this again. But keep in mind you probably don't want the rotational velocity output, but the steer angle instead. My stuff was using the steer angle that was output in an ackermann topic. But basically I'm not sure what you are trying to do. Maybe you are just distracted by the funny rotational velocity you were plotting out.

JeffS
2023-06-09 22:28:47

*Thread Reply:* You mention in passing that the Dubins planner adds extra intermediate data points. And that you just created a path with corner points only. That's not really a valid path for the Pure Pursuit follower. It uses those intermediate points to do its job. But I'm not sure what you are testing for,

JeffS
2023-06-09 22:33:00

*Thread Reply:* I also noticed in passing the you did not update the wheel base value in your parameter file. You still have my value of 0.505 instead of your value (which I thought was 1.26).

JeffS
2023-06-09 22:37:22

*Thread Reply:* I couldn't get your video to play. I finally had to wait for Google drive to say it was done converting. Even downloading ahead of time did not work. After it thought it was done converting it seemed to play okay.

Al Jones
2023-06-11 14:20:33

*Thread Reply:* Link to bagfile running this path in the real world outside. On a scale of 1-10 I would put it at about a 4. Speed still needs adjusting and steering is "wobbly" so I'm hoping PID tuning will improve that. At least the tractor generally ran the path and finished.

Al Jones
2023-06-12 06:56:33

I was watching my transmission servo arm while the tractor was running its path and it would frequently move to neutral for a brief moment. I'm thinking my LoRa signal was dropping or the over protection on the servo was kicking in to protect the motor. My transmission connecting rod is ~2" from the servo center of rotation. That equates to about 44 lbs of torque capacity on the Super200 servo which is about what the rough bench testing showed the hydro-static transmission control arm required. I still need to look at the data closer, but I may need to see if I can reduce the distance from the center of rotation down to about 1.5-1.3".

JeffS
2023-06-15 16:47:46

Info from today's video meeting.

===========================================

20230615 Lawn Tractor Automation meeting - Length 44:05 This video: https://youtu.be/krF_3aVBGQU

Chat: None

Index: 00:00 Terry: Gives quick update on his status. 00:35 Jeff: Makes comments about his attempts to convert a power steering motor to R/C control. 06:40 Jeff: Shows some AS5600 magnetic shaft encoders from Amazon. Monitor carburetor throttle plate, for example. 12:20 Al: Gives update on his path following experiments. Comments about his transmission not maintaining constant speed. 25:00 Jeff: Mentions providing a valid path that Pure Pursuit expects. 25:50 Jeff: cmdvel vs. ackermanncmd. 39:20 Jeff: Makes comments on the difference between rotational velocity and steer angle.

==

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

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

Index for the original ROS Agriculture group (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (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
2023-06-19 14:41:53

Works on the bench. Now to install on the tractor. One motor for steering and one for fwd/reverse, two stick control.

JeffS
2023-06-22 15:29:08

Info from today's video meeting.

===========================================

20230622 Lawn Tractor Automation meeting - Length 18:43 This video: https://youtu.be/ucg0tIzKKco

Chat: None

Index: 00:00 Jeff: Says he hasn't gotten anything done. (comments about making power steering motor into R/C servo) 01:00 Terry: Also says he hasn't gotten anything done either. 01:20 Al: Shows his giant R/C servo he built from scratch. 03:10 Al: Shows a new giant R/C servo (Model DH-03x). And a 3D printed mounting bracket. 04:40 Terry: Asks Al about making counter sunk (beveled?) holes with the 3D printer. 06:10 Jeff: Says the DH-03x servo is the same one he used on his Sammy2 Mini-tractor for steering. 07:15 Jeff: Adds more info about the "giant servos". 12:00 Jeff: Mentions a YouTube video he just watched: https://www.youtube.com/watch?v=0nhxqqtfhoc Here is another one: https://www.youtube.com/watch?v=bRsKDwj_J3o 16:05 Jeff: Asks about Al's numbers for steer angle vs. rotational velocity. 16:30 Comments about using a small(ish) robot to do something useful.

==

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

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

Index for the original ROS Agriculture group (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (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
2023-07-03 18:32:46

Remote control of tractor steering works. That was the easy hook up. Next is a hard one. Trying to hook up the forward/reverse peddle.

Bob Hassett
2023-07-06 15:12:38

Some progress but the joy sticks are very very sensitive. The response is way to touchy. I have to figure out some thing to deal with that issue. Back to the shop AGAIN.

Al Jones
2023-07-13 08:56:49

*Thread Reply:* Congratulations. That is really awesome.

Al Jones
2023-07-13 09:11:11

*Thread Reply:* @Bob Hassett Can you tell us more above what you did here? Size of motor? How much pressure do the pedals need? How you connected the pedal? I'm thinking about how I need to control my clutch and brake on a JD 5055.

Al Jones
2023-07-13 08:55:01

Just a reminder, Zoom meeting (Thursdays at Noon (ET)) <https://us02web.zoom.us/j/82088036016?pwd=K2lLc1FiWm9MU0dzRStxM2J2b3dpQT09#success>

Jash Mota
2023-07-13 08:57:52

*Thread Reply:* That's in 2hrs?

JeffS
2023-07-13 09:01:09

*Thread Reply:* Yes

Bob Hassett
2023-07-13 09:39:48

*Thread Reply:* So it’s 11 m Minnesota time? We are out of town right now. @Al Jones was curious about my latest postings. All I have to work with is an iPhone right now and fat fingers. I do have Zoom loaded, maybe I can log in? If someone can display my photos maybe I could explain that way? Spoiler alert. This will not be a permanent solution. I just got impatient for remote control.

JeffS
2023-07-13 09:44:33

Bob said: "So it’s 11 m Minnesota time?" I assume you mean 11 AM... If so, yes it would be 11AM Central time. I have never logged in with a phone, but I assume it works.

Bob Hassett
2023-07-13 09:45:55

See you at 11 am with my fat fingers.

Bob Hassett
2023-07-13 10:09:38

First test set up. Vex motors and servo motors in a bank to test code. Then switching to heavier motors.

Bob Hassett
2023-07-13 10:36:52

Docs for vex edr pic v 0.5 this was a 2005 system intended for high school competitions. Much of the developed knowledge base is missing because of newer systems. No one uses it any more.

Bob Hassett
2023-07-13 13:53:07

My old white board. I have to update it to to include remote control progress. Can people see it? You will have to zoom in to to see details. https://miro.com/app/board/o9J_kzvV0Pw=/

JeffS
2023-07-13 15:47:48

I can view your whiteboard.

Bob Hassett
2023-07-13 15:52:38

*Thread Reply:* Maybe I’ll start document the VEX tractor project.

Al Jones
2023-07-13 15:58:34

*Thread Reply:* I can too. Very nice.

Bob Hassett
2023-07-13 16:01:00

*Thread Reply:* Maybe by next week it’ll be updated?

Al Jones
2023-07-16 20:53:04

*Thread Reply:* Thanks @Bob Hassett for introducing this tool. I've started converting my current diagram here: https://miro.com/app/board/uXjVM1yzdFo=/?share_link_id=869571444353

Bob Hassett
2023-07-17 08:06:15

*Thread Reply:* Wow, now I really have to clean up my Whiteboard.

JeffS
2023-07-14 00:21:56

Info from today's video meeting.

===========================================

20230713 Lawn Tractor Automation meeting - Length 1:23:45 This video: https://youtu.be/n_e7xKt9wZs

Chat: Jash: remoteteleop.com Bob's strawberry farm from about 20 years ago: http://sampson-jeff.com/rsoh/010617/ Software for robot arms: https://moveit.ros.org/ Al: https://github.com/jones2126/ros1_lawn_tractor_ws/tree/master

Index: 00:00 Jeff: Explains why we didn't have meetings. 01:00 Jeff: Talks about the state of his software and ways to fix it. 05:50 Jash: Joins the meeting. He introduces himself and his project. 07:00 Jeff, Al and Bob give short description on their projects. 13:10 Jash and Bob discuss strawberries. And other applications. 17:50 Jash: Posts a link to his project. 19:00 General discussion of operator assisted autonomous agriculture vehicles. 20:40 Short discussion about Internet connectivity in a typical farm field. 27:45 Short discussion of public disclosure about projects. 30:00 How do you test/train a remote operator. 32:30 Jeff: Gives a brief description of his "Sammy2" mini-tractor. 37:00 ROS1 vs. ROS2. 39:40 Jash: Asks if the Lawn Tractor Automation group has a documentation repository. Al: Posts a link to his github. Some talk about the video indexes and the way Slack and Zoom work. 51:00 Al: Gives a status update. Talks about his R/C servo for his hydrostatic transmission. 54:00 Al: Talks about publishing topics in a format that Plot Juggler will recognize. 54:50 Jeff: States that you should take advantage of "ros bags", if you are not already doing that. 56:50 Al: Makes comments about finding things in his github. 1:00:00 Bob talks about his tractor and control systems. 1:17:40 Jeff: Asks about Al's new giant R/C servo. Comments about buffering the feedback signal.

==

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

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

Index for the original ROS Agriculture group (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (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)
👍 Jash Mota
Bob Hassett
2023-07-18 15:03:36

*Thread Reply:* @Jash Mota here is a video of autonomous berry picking. Maybe your any where in the world driving software could interface with it https://m.youtube.com/watch?v=M3SGScaShhw&feature=youtu.be|https://m.youtube.com/watch?v=M3SGScaShhw&feature=youtu.be

YouTube
} AGROBOT (https://www.youtube.com/@agrobot2811)
Bob Hassett
2023-07-15 21:25:04

A graphic of what I was trying to say last Thursday. Maybe you view can zoom in for details? I’m using FreeForm (Apple App)

Bob Hassett
2023-07-16 09:24:22

I tried attaching the graphic to comments of the video meeting. No go, only takes text?

Al Jones
2023-07-18 12:46:23

@JeffS What LoRa boards are you using? The reason I ask is because integrated ttgo LoRa ESP32 board is not providing reliable results. I can explain the chart on Thursday.

Bob Hassett
2023-07-18 12:55:48

My LoRa project is on hold for now, depending on my portable case system development. I’m thinking of adding another processor and “dumb” vision.

JeffS
2023-07-18 14:23:15

I think I am running these: https://www.adafruit.com/product/3231 https://www.adafruit.com/product/3178 It is not obvious to me what you mean by "not providing reliable results".

Al Jones
2023-07-18 14:50:26

*Thread Reply:* My LoRa safety switch triggers if the Tractor does not receive a LoRa message within one second. (code) In a 15 minute test run the safety trigger was set off 7 times.

Bob Hassett
2023-07-19 15:36:37

*Thread Reply:* @Al Jones just curious about your testing environment? Outside how far away?

Al Jones
2023-07-19 17:10:58

*Thread Reply:* The distance from my Tractor and DIY radio control is typically 5-15 feet. I'm typically walking behind or beside the Tractor until I get more comfortable with it.

Bob Hassett
2023-07-19 20:21:40

*Thread Reply:* You are the cautious one!

Al Jones
2023-07-19 17:08:55

Messing around with pure pursuit and I need to set steer angle limits. Currently this statement (link), uses one value for 'steeringanglelimit' which I need to set to 48 degrees which is the measured angle change from straight to a hard left turn. A hard right turn can go a bit higher, but I'll just stick with 48 degrees or .84 radians.

JeffS
2023-07-19 21:16:24

@Al Jones Yes that sounds correct. I'll make note of this and we can talk about it in the meeting tomorrow.

JeffS
2023-07-20 18:41:40

Info from today's video meeting.

===========================================

20230720 Lawn Tractor Automation meeting - Length 1:04:30 This video: https://youtu.be/QxoeBne2Xx0

Chat: Al: https://miro.com/app/board/uXjVM1yzdFo=/?share_link_id=539014993193

Index: 00:00 Jeff: Hasn't done anything. 00:20 Al: Publishing topics as arrays. Miro white board. Testing, changing steering parameters. 03:10 Al: Posts a link to his white board. Shows a few details. 09:50 Al: Has a clever way to measure wheel steer angle. And how he uses those numbers. 12:50 Difference between rotational velocity and steer angle. 16:45 Al: Talks about his LORA timeouts. Some analysis of steering control. 32:00 Jeff: Suggests controlling the steering velocity. 40:40 Jeff: Talks about low level limit checking. 52:50 Jeff: The dividing line of control between ROS and your vehicle.

==

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

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

Index for the original ROS Agriculture group (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (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
2023-07-20 19:11:46

As I am screwing circuit boards down on to painted plywood, it occurred to me maybe I better not touch the solder side down as to touch the painted plywood?

Al Jones
2023-07-21 06:51:04

*Thread Reply:* Latex paint is a polymer (such as acrylic, vinyl acrylic, or styrene acrylic) suspended in water. These components do not conduct electricity well. If you used some other type of paint you can Google its components.

Bob Hassett
2023-07-21 11:47:08

*Thread Reply:* Thanks @Al Jones

JeffS
2023-07-20 20:53:16

I would not expect paint to be a problem. But if it acts funny then maybe it is a problem.

Al Jones
2023-07-21 09:52:43

What you are looking at is a plot of the time gap between receiving LoRa messages at my Tractor and the radio control unit. 17 times in 45 minutes there was a 10 second delay. Besides those events the age of the LoRa messages run between 100 and 300 milliseconds. More digging needed.

Al Jones
2023-07-24 11:24:21

@JeffS I could use your help when you have a moment. I'm field testing and the calculations for steering angle by pure_pursuit.cpp are going up and down. If you have a moment to jump on a call so I can explain I would appreciate it. I've taken some notes here: https://miro.com/app/board/uXjVM1yzdFo=/?moveToWidget=3458764560052849149&cot=14

JeffS
2023-07-24 14:43:51

@Al Jones Before I dig any further, I'm going to have to insist you give this a valid path to follow. Either fill in the "extra" points between you sparse points. Or just create a path with that generate_points.py (or what ever it is called).

Al Jones
2023-07-25 18:53:30

Blue line is actual path. Red line was "lookahead" path based on pure_pursuit.cpp. Still "wavey" steering. More debugging needed.

JeffS
2023-07-25 21:15:05

@Al Jones I'm looking at your Miro page. You have a block labeled "CALCULATING PURE PURSUIT PATH". It has some Python code and some C code (that is labeled pseudo code). What is that stuff? Did you run Python code or C code on the tractor? Did you run the same thing on both the simulation and the real tractor?

I'll have to find a different computer that has PlotJuggler loaded on it.

Al Jones
2023-07-25 21:30:47

*Thread Reply:* "pseudo code" was not run. Those are just notes trying to look at different ways to calculate a look ahead value. 'purepursuit.cpp' is located here. Purepursuit.cpp was run on both simulation and field test. Although pure_pursuit was the same in both settings, one significant difference is how the odom message is created. In the field test the odom comes from the gps. I think the tf too.

JeffS
2023-07-27 17:20:51

Info from today's meeting.

===========================================

20230727 Lawn Tractor Automation meeting - Length 1:08:43 This video: https://youtu.be/UV85342JqBE

Chat: Al: https://miro.com/app/board/uXjVM1yzdFo=/?share_link_id=10226424350 Al: https://github.com/jones2126/ros1_lawn_tractor_ws/blob/master/src/ackermann_vehicle/nodes/odom_from_wheel_and_gps.py Al: How did you plot it out in degrees instead of radians?

Index: 00:00 Jeff: Talks about Al's current experiments (Pure Pursuit) and shows plots. 33:30 Jeff: Suggests analyzing control inputs to Pure Pursuit controller. 34:50 Some discussion of where heading is coming in both cases. 39:20 Al: Goes over some issues. 49:50 Tips/Hints when running PlotJuggler.

==

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

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

Index for the original ROS Agriculture group (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (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
2023-07-27 20:13:19

Based on the conversation earlier today I started looking at yaw (derived from quaternion) for both the IMU and TF. When comparing data from the simulation and field test rosbag files it seems the IMU yaw from quaternion is different than the IMU yaw in simulation. More analysis needed.....

Bob Hassett
2023-07-30 08:36:51

*Thread Reply:* Dog gone it @Al Jones ! Why do you have to find such complicated problems! Now I have to research all those terms so I can understand the language you guys are using!

Al Jones
2023-07-30 12:21:18

Another live field test. I would score this run about 80 out of 100. Green is planned path, orange is actual. Bagfile link Corrections that I had to make were updating the IMU driver to better adjust for initial heading, changes to odomfromwheelandgps.py to use the updated IMU orientation and change the launch file so pure pursuit used basefootprint instead of baselink. Video link

JeffS
2023-07-30 19:12:18

That looks much better. I don't know what you expect 100 out of 100 to look like... But if you would generate your path with a 1/10 meter spacing (instead of 1 meter spacing) and set your lookahead to 1 meter instead of 2 meters than it will follow your path much closer.

JeffS
2023-07-30 22:30:07

I finally got your video to play. It does look like is very deliberate about what it is doing. If you turn the blade on it will leave a history of where it has been.

👍 Al Jones
Al Jones
2023-07-31 12:18:33

I tried reducing the step size in the path generator from 1 meter to 0.1 meters and reduced the look ahead from 2 meters to 1 meters in the pure pursuit .yaml file. What is odd is the first 'straight' tracked well, but the others did not perform as well. Will try different config settings to see the results.

Bob Hassett
2023-08-01 10:51:04

*Thread Reply:* Couldn’t help noticing the similarities of the corrections during travel. Reminds me of a line following bot hunting back and forth because of the distance between sensors and speed of travel.

Al Jones
2023-08-01 12:42:24

*Thread Reply:* Hunting back and forth seems to be exactly what it is doing.

Bob Hassett
2023-07-31 21:00:03

I saw a YouTube some place about a guy using his iPhone and iPad over FaceTime. He used his R/C controller to control his lawn mower. His iPhone was on the mower and his iPad was with his r/c controller. He could “see” where the mower was going. It took me awhile to figure out how he did it. I ended up using two different emails in gmail. Both are registered in my contacts. Long story short, it works. I’m itching to try it out when we get back home. We are at the lake. Next I want to try some kind of Zoom just over our home router. Just on our home net work. Not going back over the modem to the outside world.

Al Jones
2023-08-01 12:34:18

*Thread Reply:* Sounds cool.

Bob Hassett
2023-08-01 12:21:11

Does our Zoom meetings use our phone numbers or email addresses?

Al Jones
2023-08-01 12:39:24

*Thread Reply:* @Bob Hassett If I go into Zoom and copy the meeting invitation below is what I get. So I don't think Zoom uses your phone number or email. You only need the URL below to join.

> AlJones is inviting you to a scheduled Zoom meeting. > > Topic: LawnTractorAutomation > > Join Zoom Meeting > https://us02web.zoom.us/j/82088036016?pwd=K2lLc1FiWm9MU0dzRStxM2J2b3dpQT09 > > Meeting ID: 820 8803 6016 > Passcode: 172310

Bob Hassett
2023-08-01 12:49:48

*Thread Reply:* Thanks @Al Jones from what I’ve read, invitees don’t need a Zoom account. So I’m thinking I have to setup an account for the VexTractor with iPhone/iPad combo and then invite my device. I’ll have to decide which device will go on the tractor. Maybe the pad and then phone next to remote controller. I just keep experimenting.

Al Jones
2023-08-01 12:32:39

More testing earlier today. (). One of eight is tolerable - test 3. The others have issues. I'm trying not to change many variables between tests. These have different step sizes and look ahead distances. Image attached here is test 3.

JeffS
2023-08-01 17:44:39

@Al Jones When you are running the Dubins path planner, what are you specifying as the radius? Was it the same every time you ran it?

I'm going to dig into your bag files, but I thought I would ask before I start.

Al Jones
2023-08-01 17:52:15

*Thread Reply:* @JeffS turning_radius was 1.2, the same each time. I was trying to force a tight circle.

After the 8 tries I tried 3 more with these parameters: turningradius = 2.0, stepsize = 1.0, lookaheaddistance = 2.0; turningradius = 1.8, stepsize = 1.0, lookaheaddistance = 2.0 ; turningradius = 1.6, stepsize = 1.0, lookahead_distance = 2.0

None of those were any better. :(

JeffS
2023-08-01 18:04:42

*Thread Reply:* So what is the actual turning radius of your vehicle? If you set the steering to max right or max left, what is the resulting radius?

It doesn't do any good to tell it to turn sharper than what it is capable of doing.

That would be like asking it to drive forward at 100 mph, it can't do that. You have to stay within the physical limits.

Al Jones
2023-08-01 20:08:24

*Thread Reply:* Based on tracking the x, y coordinates it appears the actual turning radius is 2 meters.

JeffS
2023-08-01 21:53:11

@Al Jones In your Miro board, you have a plot of yaw of GPS vs. IMU. Where is the GPS coming from? It does seem awfully noisy. And it is not following the IMU yaw closely. Is that being derived from /gps/vel, or somewhere else? Is it being created in gps_odom.py (or whatever it is called now)?

JeffS
2023-08-02 00:09:44

@Al Jones I'm sitting here watching the Ukrainian war update and casually browsing your documentation. It appears you are running ackermanncontroller.py. That is specifically for the Gazebo simulation. I also see you are running vehiclestate_publisher so I assume you are running the full URDF from the simulator. That may work, but 99% of that data is not needed. It may not be a problem, or it may be,..

JeffS
2023-08-02 12:54:03

I came up with various thoughts... First, maybe your GPS yaw (is that COG [course over ground] ?) is noisy simply because your engine is running and vibrating. Next time you are testing, come to a stop, turn off the engine and set the free wheel lever in the back and just push the thing some distance across the yard, Then you ca start the engine and back to testing. Later check the bag file to see if the noise went away.

JeffS
2023-08-02 13:09:15

Another thing you could do is use a different pattern. Put your 3 vertical lines on top of each other so it drives up and down on the same exact path. (i.e., you drive back and forth between the same two points)

Make another pattern that is a square. That might tell you if the direction is causing some weird problem. Or maybe make a triangle. First leg north/south, next leg east /west and the final leg is a diaganol nack the start point. So that gives you 3 angles to try to follow.

JeffS
2023-08-02 13:15:54

Another thing you could try is to mark the points in you yard. Either just lay something there, or put a squirt of spray paint to mark it. Or push in some "big nail like things" at each location and stretch as string between them. With the stakes and string you have both end points marked and a visible line you can manually follow.

JeffS
2023-08-02 13:22:04

So lets assume you have a string between two points. Start your lawn tractor without starting Pure Pursuit. Manually drive up and down the line a few times. Then start over and start Pure Pursuit and leave it in manual, Then drive up and down the line a few times. So that means you are manually driving on the line and you can see how Pure Pursuit is reacting to any errors you have trying to stay on the line. Then maybe start a new test with Pure Pursuit and put it in auto (just so you have a record of how acted on the same day).

JeffS
2023-08-02 13:25:31

Another thing I thought of... You said you did something to artificially move the GPS location. Maybe you did that wrong. Try patching that out and see it affects the wavyness. I was going to suggest you temporarily move you GPS antenna directly over baselink, but I see you have a laptop computer in the way.

Al Jones
2023-08-02 13:26:08

@JeffS Thanks for looking at it:

  1. I believe I can comment out ackermanncontroller.py for running in the real world. As far as I know I'm not using what it is publishing on (i.e. leftfrontwheel/steeringcontrollername and rightfrontwheel/steeringcontroller_name)
  2. I have an additional set of variables that I'm capturing today. One of them is the GPS COG. COG matches the IMU very well. I'll post a plot later today.
  3. Regarding the new patterns, definitely will try that. I'll have to go back and re-look at how.
  4. Will buy a can of paint so there is a visual.
Bob Hassett
2023-08-02 20:16:25

Messing around with wiper motors. This is running 12v continuous. I’m guessing it rotates back and forth about 120 degrees. It runs to fast. Sooo maybe I step down the voltage supply to 3 volts to slow it down for my controller. Then figure out how to tell it where to go and hold. But just seems like a lot of trouble to make it into a servo.

Bob Hassett
2023-08-02 21:03:42

I suppose I could canibalize an RC servo. Mount the pot on top of the yellow shaft. Or go on the top side and belt the rotating shaft over to a pot stem. Maybe add a small H bridge? Then there is figuring current draw. I don’t know. PID control is getting to fancy I think? I want KISS.

JeffS
2023-08-03 10:00:01

The video meeting starts in one hour (from now). Noon Easterm time, USA. https://us02web.zoom.us/j/82088036016?pwd=K2lLc1FiWm9MU0dzRStxM2J2b3dpQT09

JeffS
2023-08-03 12:00:01

Useful links: • Video conference link (Zoom): https://us02web.zoom.us/j/82088036016?pwd=K2lLc1FiWm9MU0dzRStxM2J2b3dpQT09 ◦ (The Zoom video meetings are Thursday at Noon (USA ET); ◦ Saved videos (link); Saved chats (link) • You Tube Video of Meetings: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ • Indexes made by Jeff: http://sampson-jeff.com/RosAgriculture/ • Google drive folder (link); Sheet with current configurations (link); Juan's action list (link); Rough work plan (link); Shared catkinws copies (link) • Robot Agriculture: https://github.com/ros-agriculture • Simulator: https://github.com/ros-agriculture/lawn_tractor/blob/master/simulator.md • Discourse: https://discourse.ros.org/c/ros-agriculture/63 • Discourse – Perception: https://discourse.ros.org/t/perception-project/17621 • Archived RosAg Slack content (link) (edited)

YouTube
JeffS
2023-08-03 17:42:28

Info from today's video meeting.

===========================================

20230803 Lawn Tractor Automation meeting - Length 1:09:39 This video: https://youtu.be/mtfZVkfVc6g

Chat: Al's Miro: https://miro.com/app/board/uXjVM1yzdFo=/?share_link_id=10226424350 Video where we talked about creating paths with the Dubins path planner tool. 03052021 Lawn Tractor Meeting https://www.youtube.com/watch?v=F3ycvmWkUl8 If you have access to the Google Drive folders... Jeff: Random scripts https://drive.google.com/drive/folders/1ZMUC3L8v2PiuP4K4nJRjU3QYYqJ0b65F I can't get a direct link to gpsheadingnew.py. Just click on it...

Index: 00:00 Al: Starts status update. Talks about his Miro white board. 04:55 Al: Talks about his field testing results. 11:30 Jeff: Suggests the error cause might be cumulative. 17:35 Jeff: Asks where the GPS heading in Miro came from. Some confusion about the GPS predefined COG (Course Over Ground) and Al doing his own calculations and calling it COG. 20:45 Jeff: Mentions deriving SPEED and HEADING from the gps/vel topic. See link to scripts on Google drive (in chat section above). 24:00 Jeff: Suggests specific tests on a single vertical line pattern. 30:00 Jeff: Asks about Al's process for deriving GPS heading. Al pulls up Plot Juggler. 38:50 We go over how Al calculated what he is calling COG vs. "Real" COG that is provided directly in a GPS NMEA sentence. 41:30 Jeff: Attempts to do fancy math corrections in Plot Juggler, but fails. 48:20 We go look at Jeff's code to convert /vel topic back to speed and heading. 1:04:30 Question if Al is saving raw NMEA sentences. 1:07:25 Jeff: Starts playing around with Zoom settings and talks about bandwidth.

==

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

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

Index for the original ROS Agriculture group (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (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
2023-08-03 19:07:31

Messing with servo modules. Looks like l have to unsolder the motor and then wire up to some kind of H bridge. I think I’ll wait till we get home. I do have other servos I could take apart. so I’ll wait and see.

👍 Al Jones
Bob Hassett
2023-08-09 07:17:43

*Thread Reply:*

Bob Hassett
2023-08-09 09:57:39

*Thread Reply:* Recommended parameters for wiper motors http://www.scary-terry.com/wipmtr/wipmtr.htm

Al Jones
2023-08-06 13:04:27

Heading out to run a test that Jeff suggested to go up and down the same path.

21.5 3.3 1.64 21.5 13.3 1.64 21.51 13.3 4.78 21.51 3.3 4.78 21.49 3.3 1.64 21.49 13.3 1.64 21.5 13.3 4.78 21.5 3.3 4.78

Al Jones
2023-08-06 13:46:44

*Thread Reply:* Screenprint of actual path below and bagfile link; Video link here

Another test I did was to let the tractor sit in a relatively clear areas for two minutes. One minute with the engine running and one without it running. Something is causing my lat/lon to jump around one meter.

Al Jones
2023-08-06 14:05:29

I hooked up a Windows laptop with the OEM GPS software since I was confused by having "RTK Fix' yet ROS lat/lon was jumping around. The lower right circle shows a radius of the circle when the tractor is sitting still of 0.012 meters (i.e. 0.024 m or 1" diameter). Something odd going on between the OEM software view and the ROS lat/lon view.

JeffS
2023-08-06 14:37:17

@Al Jones I'm just getting started for the day, I will think about this while I eat my lunch.

My theory on the circle is that you are attempting to correct your x/y position by multiplying the values by heading. So the noisy heading when you are stopped gives you that cute pattern,

And BTW, your OEM program seems to say you have a 1" circle, not a 9" circle.

Al Jones
2023-08-06 14:42:24

*Thread Reply:* I forgot the 0. 😞

Al Jones
2023-08-06 14:46:56

*Thread Reply:* odom x and y is calculated using the 'll2xy' utility from

import geonav_transform.geonav_conversions as gc ... self.x_gps, self.y_gps = gc.ll2xy(data.latitude, data.longitude, self.GPS_origin_lat, self.GPS_origin_lon)

If heading is used by 'll2xy' I'm not sure about that.

I do adjust the position based on the physical position of the gps

x_offset = 0.51 # 20 inches in front of the rear axle y_offset = 0.03 # 1 inch to the right of the center line

JeffS
2023-08-06 15:47:37

*Thread Reply:* This looks awfully suspicious:

"I do adjust the position based on the physical position of the gps

x_offset = 0.51 # 20 inches in front of the rear axle y_offset = 0.03 # 1 inch to the right of the center line "

You are trying to offset by 0.5 meter and your result is swinging around a point by 0.5 (probably based in incoming heading, which is noisy because you are stopped).

Al Jones
2023-08-06 15:51:39

*Thread Reply:* Certainly worth a try to comment it out.

Al Jones
2023-08-06 16:34:20

*Thread Reply:* Did not work so well to simply take the x, and y without offsetting for where the GPS actually sits....

JeffS
2023-08-06 16:42:13

*Thread Reply:* I assume now if you come to a stop it does not create that circle of spider webs.

So maybe if you fix the code that was meant to do the offset then maybe it will fix everything.

Al Jones
2023-08-06 17:02:37

*Thread Reply:* When I stopped for ~7 seconds the drift was < 0.5 inches

JeffS
2023-08-06 16:49:27

I uploaded the fixed path_planner (the program that generates points for a Dubins path) to this directory: https://drive.google.com/drive/folders/1t2P2sfiranPe10fmUBUnnVvKNgrfybAV

It is in directory: pathplannerfixed_20230806

Creo Innovare
2023-08-07 15:56:50

@Creo Innovare has joined the channel

Al Jones
2023-08-08 12:53:22

Unfortunately no improvement with tweaks to the offset algorithm.

Problem statement: The robot follows a path reasonably well on the first segment, but on subsequent segments the robot struggles to stay on path.

Miro whiteboard - GPS to base_link offset testing https://miro.com/app/board/uXjVM1yzdFo=/?moveToWidget=3458764561123820016&cot=10|link - changing the offset calculation slightly is the only recent change. Bagfile link

JeffS
2023-08-08 16:53:24

My first thought is that your offset don't appear to right.

I didn't have the geonav stuff loaded on this computer. So I just hard-coded current x/y as 0,0 since the GPS doesn't matter. But I am confused on the different coordinate frames.

(in bagfine 2023-08-08-13-25-19.bag) So I wanted to see if you have any rotation between your lat/lon and x/y. But your /fix appears to have invalid lat/lon, what happened to that? So I could not compare the two. So I am assuming the x/y plot from odom is the correct rotation.

But, rotations of 0 and 3.14 seem to be correct. I think 1.57 should be +x and +y. I think -1.57 should be -x, -y. (It didn't help that your diagrams in Miro are in a different order, and unlabeled)

Here are the numbers with forcing GPS to 0,0. ```jeff@jeff-hp-pavilion:~/Downloads$ python3 pathtestoffset_1.py Testing Yaw (in radians): 0 GPS coordinates (X, Y): 0 0

Base link coordinates (X, Y): -0.51 0.1

Testing Yaw (in radians): 1.57 GPS coordinates (X, Y): 0 0

Base link coordinates (X, Y): -0.1 -0.51

Testing Yaw (in radians): 3.14 GPS coordinates (X, Y): 0 0

Base link coordinates (X, Y): 0.51 -0.1

Testing Yaw (in radians): -1.57 GPS coordinates (X, Y): 0 0 Base link coordinates (X, Y): 0.1 0.51 ------------------------------------------------```

Al Jones
2023-08-08 18:20:13

*Thread Reply:* Re: invalid /fix lat and lon....certainly for the first 2 minutes the lat and lon are invalid because they are zero. Valid data comes in after RTK Fix is achieved. Did you see other time periods with invalid data?

Al Jones
2023-08-08 18:34:17

*Thread Reply:* Fair point on documentation...improved version...I'm still looking at your calculations

JeffS
2023-08-08 18:47:20

*Thread Reply:* I just realized I am wrong... 1.57 is up, not down. I was going the wrong direction.

JeffS
2023-08-08 18:59:19

*Thread Reply:* "Did you see other time periods with invalid data?"

I didn't see any valid lat/lon values. Maybe I misinterpreted what should be there,

Al Jones
2023-08-08 18:15:05

I have a new change to try. I was comparing my pure pursuit code and https://github.com/larics/pure_pursuit/blob/master/src/pure_pursuit.cpp For some reason that I do not remember, it appears I commented out the statement below in June.

Al Jones
2023-08-09 08:12:40

*Thread Reply:* That change did not help. Recently the steering of first segment was not wavey and the subsequent segments were wavey. Now the first segment is wavey too. Which is maybe a clue. Continuing to debug.... :(

JeffS
2023-08-09 19:42:20

I added Al's lawn tractor video. I tried to hit all the keywords in the title. https://www.youtube.com/watch?v=HJcv3TwLYb8&list=PLdWg7SF1vdl0lg4vYOa5wIAXLIfPErG4_&index=7

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
Bob Hassett
2023-08-10 08:24:33

*Thread Reply:* Nice job @Al Jones !

Bob Hassett
2023-08-10 08:26:22

*Thread Reply:* Thanks @JeffS for posting!

JeffS
2023-08-10 09:59:56

The weekly video meeting starts in one hour. (Noon Eastern time) https://us02web.zoom.us/j/82088036016?pwd=K2lLc1FiWm9MU0dzRStxM2J2b3dpQT09

JeffS
2023-08-10 21:50:09

Info from today's video meeting.

===========================================

20230810 Lawn Tractor Automation meeting - Length 43:46 This video: https://youtu.be/4y8eaCSiYpU

Chat: https://f1tenth.org/ Al's Miro page: https://miro.com/app/board/uXjVM1yzdFo=/?share_link_id=10226424350

Index: 00:00 Jeff: Says he finally got his fiber Internet connected. Says he should be installing a laptop back on his robot. Suggests doing creative things with the simulator for Al's project. 00:50 Al: Talks about his experiments to solve his "wavy" path. 01:50 Al: Mentions his GPS remapping code. Ideas for fixing the path. 04:20 Al: Is the GPS accurate? Steering? 06:30 The original Pure Pursuit paper from 1992. 07:10 Jeff: Asks if Al has tried driving manually around the path. 09:45 Jeff: What are the inputs to Pure Pursuit? 11:10 Al has compared his Pure Pursuit code to Juan's code and the original code. 11:40 The F1TENTH project. 13:10 We look at Al's Miro page. 15:40 Extra plotting values for debug. 17:05 We go look at GPS values in the bag files. 36:45 Jeff: Says he will try harder to get his robot running again. 38:00 Jeff: Asks about cell phone viruses. 42:00 Jeff: Again mentions trying to break the simulator for testing purposes.

==

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

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

Index for the original ROS Agriculture group (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (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
2023-08-11 13:58:33

Continuing to debug. Not much luck. I spent yesterday writing a little script that hopefully follows the pure pursuit conventions. It is neither elegant or compact. It is written to show step by step how pure pursuit works and to visualize the key data elements. (link) I did this so I could compare the steer angle being published by the pure pursuit (link). I already knew there was a problem, but I wanted to know what correct values should be. Here is a screencast of walking through some plotjuggler data (link) and includes a screen print of the pure pursuit 'helper' that I uploaded. Now I'm looking at how steer angle is being calculated and working backwards to see where the calculation is going awry.

Bob Hassett
2023-08-15 07:50:18

*Thread Reply:* @Al Jones Thank for the exceptional documentation and extensive details of your project!

Al Jones
2023-08-16 05:47:50

*Thread Reply:* @Bob Hassett No prob. Miro is a nice tool for laying info out. It still feels cluttered so if you have a suggestion on a high level table of contents or structure I'm looking for input.

Bob Hassett
2023-08-16 12:19:57

*Thread Reply:* I’m struggling with the very same issue.

👍 Al Jones
Al Jones
2023-08-16 07:07:35

One of my issues at the moment is the steering performance in simulation is fine, but in the real world its not. A bit of a walk through of that challenge is attached. In summary, the statement from simulation 'result = getmodelsrv(model)' populates a transform. The 'y' value is used in calculating the steering angle and I need to replicate that in my real world calculations. At least that is what I think my key challenge is at the moment.

JeffS
2023-08-17 10:00:03

The weekly video meeting starts in one hour. (Noon, Eastern time, USA) https://us02web.zoom.us/j/82088036016?pwd=K2lLc1FiWm9MU0dzRStxM2J2b3dpQT09 (Reminders won't always be posted, just when someone remembers to do it..)

JeffS
2023-08-17 21:20:03

I did find out that gedit does not do automatic periodic backups unless you specifically turn it on. So now I have to re-do about 1/2 hour of my video indexing...

Jash Mota
2023-08-19 07:09:32

*Thread Reply:* Try revoldiv.com for next meeting! Works great for me. Or otter.ai but would be paid for lo ger meetings

Al Jones
2023-08-18 10:38:22

So the brain bending conversation yesterday about odom statements, tf's and KDL frames has me looking at the python script 'odomfromgazebo.py' which is used in the Gazebo simulation. I'm noticing how 'odom.twist.twist.linear.x' is set in line 79. The formula 'odom.twist.twist.linear.x = float(sqrt(x * 2 + y * 2))' suggests the vehicle's velocity in the Gazebo simulation is not purely along the x or y axis but a combination of both. I'll call it a magnitude of velocity is assigned to odom.twist.twist.linear.x field. I am definitely not doing that in my real world equivalent script that builds the odom statement (odomfromwheelandgps.py). see line 258 - I'm sooo twisted up (pun intended) 🙂 .....

JeffS
2023-08-18 12:07:59

You are mixing two different things here. Your code at line 258 should be correct assuming you created the forward velocity (of the robot, in the robot frame) correctly in your wheel odometry code

But the lines at 77 and 78 are a "velocity vector - in the world (map) frame". So that says the point is moving x velocity in the x direction and y velocity in the y direction (in the world). Line 79 takes the length of the vector. Which is the velocity in the direction you are moving. You can also extract the direction of travel in the world.

If you look at this code gps_heading_new.py in this directory https://drive.google.com/drive/folders/1ZMUC3L8v2PiuP4K4nJRjU3QYYqJ0b65F it subscribes to /vel which is published by nmea navsat driver. It extracts the forward velocity from the vector (m/s) and extracts heading from the vector (rad). Then it does various other things., like latching the heading at low speed. If you want to use this keep in mind it may need degree to radian conversions and NED to ENU conversions. I don't get line numbers but here is an extract: # New heading degrees <b>#yaw_d</b> = float(atan2(y,x)) yaw_d = float(atan2(x,y)) yaw_d = self.yaw_to_degree(yaw_d) speed = sqrt(x **** 2 + y **** 2) self.speed_pub.publish(speed) self.head_deg_pub.publish(yaw_d) if speed &gt; 0.1: self.head_deg_latched_pub.publish(yaw_d) self.last_yaw = yaw_d else: self.head_deg_latched_pub.publish(self.last_yaw) But these line do the actual conversion: yaw_d = float(atan2(x,y)) speed = sqrt(x **** 2 + y **** 2) This whole thing needs rewritten because it is a total hack,

Al Jones
2023-08-18 12:14:59

good deal. thanks.

JeffS
2023-08-18 12:24:48

I have to decide what to do today. I worked on my robot all day yesterday. I got numbers coming out. I need to fire up Plot Juggler and see if ANY of the headings it is producing are correct. If not, I will have to cobble something together to get one that is valid, Then see if my modified cmd_vel makes it all the way to the steering and drive motor. So I could look at that.

When I was indexing the meeting video yesterday my computer went belly up (actually more of a belly flop). Turned out the AC plug was loose. So I see it doesn't die gracefully as the power gets low (which is bad for my robot). So I backed up to recover my indexing and quit at about the half way point (out of 2 hour video). So I could finish that.

JeffS
2023-08-18 12:37:16

Another interesting point... I assumed my new fiber optic Internet would upload to YouTube some what faster. The 2 hour video yesterday normally would have taken about 2 hours to upload. It took less than 2 minutes. So I'm pretty happy about that. 😍

JeffS
2023-08-19 15:06:57

@Jash Mota I briefly looked at those two web sites. But I don't see how they would help with my indexing task. Quite some time ago @Juan Eduardo Riva had suggested automatically producing transcripts. but also at that time I couldn't see how transcripts would help.

JeffS
2023-08-19 17:02:53

Info from this week's video meeting. Mostly debug session for Al's lawn tractor using Pure Pursuit. So you can decide if that is of interest to you.

===========================================

20230817 Lawn Tractor Automation meeting - Length 1:54:05 This video: https://youtu.be/dsDderfhk_M

Chat: Al: https://drive.google.com/drive/folders/1nos6IM9X7Go81RT0_Dm4SR7izqPRxe90

Index: 00:00 Jeff: Updates - Says he is going through the steps to run his robot outside. GPS correction data, marked points in yard, move path to the robot computer. 03:35 Jeff: Has given some thought to simulator changes. 07:00 Jeff: Thoughts on documenting the simulator package we have. 08:40 Jeff: Tells about old guys mowing the yard. 09:30 Al: Tells us where he is in his development journey. We look at some plots, comparing actual vs. simulation. 18:40 Al: Shows his program that graphs the the Pure Pursuit values. 30:00 We are discussing how Off-Track-Error is calculated. 40:00 We are now trying to interpret what the transform between baselink and lookahead actually represents. 55:40 Jeff: Warns that not all functions in ROS treat quaterion order as x,y,z,w. He has seen a function or two that use the order w,x,y,z. (Or maybe it is ROS vs. non-ROS functions.) So that is something to watch out for. 1:04:40 Jeff: Suggests plotting the baselink to lookahead transform. 1:09:00 We finally get around to starting Plot Juggler. We get a plot of simulated data showing that base_link to lookahead transform is a difference between the two points. Much analysis ensues. 1:18:40 We now go look at data from the physical lawn tractor. Much confusion because the screen dump wasn't saved at time 0. 1:24:15 "Oh, there's yer problem!" We noticed the scale at the bottom is wrong. We re-plot and screen dump. We do more analysis before moving on to the non-simulated data. 1:32:30 We switch to the non-simulated data. We move the vehicle to the point where RTK kicks in. Much analysis as the vehicle approaches the initial path point. 1:41:55 Jeff: Asks if Al has verified if the vehicle is doing what he asks. 1:45:30 Jeff: Asks if the wheels are actually wandering back and forth when going straight. 1:48:10 Jeff: Asks about plotting real time data in Plot Juggler. 1:49:55 Jeff: Asks where Al's bag files are stored.

==

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

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

Index for the original ROS Agriculture group (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (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
2023-08-19 18:19:17

Yesterday I plotted my recent test run. Since it was probably a year since I had driven it I wanted to see what still works.

Of my headings, my best source is the GPS static base line output (as expected). The second best is the BNO055 IMU. They are both outputting NED format as degrees. The BNO055 has an extra 185 degree offset.

So I need to fix one (or both) of those to give ROS compatible heading. Then I need to modify (or rewrite) one of my gpstoodom.py programs to work. Then I can take it outside to see what the next thing is that doesn't work. Maybe that will happen tomorrow...

👍 Al Jones, Bob Hassett
JeffS
2023-08-20 21:06:59

I had it all put together and my steering doesn't work in ROS mode. After a bunch of digging, I found in my "vehicle interface node" that it was blatantly multiplying the steer angle by 400, I don't know why. Maybe because it was originally a value of rotational velocity. I will try it again before I go to bed to see if I have any steering now.

Bob Hassett
2023-08-21 16:13:37

What are the pros and cons of using ArduPilot? $400 is kinda steep but seems it shortens development time?

Al Jones
2023-08-22 11:16:47

*Thread Reply:* I used ArduRover for my JD 5055 tractor before trying ROS. Pro's - You get an integrated package with the hardware, Mission Planner and ArduRover. Con's - Once I had it working the path tracking was "weavy" and trying the change the codebase was beyond my skills. If you google ArduRover you will find others have seemingly gotten it to work. https://mowerproject.com/page/2/

The Mower Project
Bob Hassett
2023-08-23 11:12:32

*Thread Reply:* Any interest in discussing this gps problem tomorrow? Compare Jeff’s and Al’s experience and hardware/software solutions?

Al Jones
2023-08-23 11:15:45

*Thread Reply:* Happy to

JeffS
2023-08-23 11:26:29

*Thread Reply:* We can discuss anything... I don't know what you mean by "this gps problem". I'm having problems with my cell phone GPS correction data. But I will put that in a different message.

Bob Hassett
2023-08-23 13:32:00

*Thread Reply:* I was referring to the gps problems/solutions described on page 2 of https://mowerproject.com/page/2/ scroll down to his Better RTK fix…..local rtk base verse remote sources like what Jeff is using.

JeffS
2023-08-23 13:53:55

*Thread Reply:* I must have missed your source in your question. I see the guy at https://mowerproject.com has lots to say. But I don't have the ambition to read all of it before a meeting tomorrow. I will go into a meeting tomorrow with an open mind.

Bob Hassett
2023-08-23 16:49:24

*Thread Reply:* He was talking about a u-Blox NEO-M8N and a ZED-F9P. What are folks using on a base station and on their machines? Any problems if the F9P drops out, how quick can it lock on to another signal quickly?

JeffS
2023-08-23 11:33:42

Earlier, maybe Sunday, I noticed my remote control box was flakey. The ROS/manual switch was flicking back and forth. (I could see my beacon changing colors.) If I tapped on the panel it would randomly change, which indicated a loose connection. I later opened it up to see what was up. My toggle switch for ROS/manual has screw terminals. They were both loose. I tightened those and the problem seems to have gone away.

JeffS
2023-08-23 11:54:31

I went out Monday to see if any of my new code works. My cell phone correction data kept randomly disconnecting. It gave no indication or error messages. It just quit. So everything failed. A week or two earlier I was able to drive an entire path but it took about 3 times of reconnecting until I thought it was stable.

So what is wrong? It could be the cell connection is dropping out. It could be the USB connection to my FTDI adapter is flakey. Maybe their software just doesn't work.

I checked and there is a software update for GNSS Master available so I loaded that. I could wiggle the USB cables. I could switch from cell data to WiFi to see that makes a difference.

If I don't find any immediate solutions I may switch over to my telemetry radios.

JeffS
2023-08-24 10:00:03

The weekly video meeting starts in one hour. (Noon, Eastern time, USA) https://us02web.zoom.us/j/82088036016?pwd=K2lLc1FiWm9MU0dzRStxM2J2b3dpQT09 (Reminders won't always be posted, just when someone remembers to do it..)

Al Jones
2023-08-24 10:58:54

Zoom troubles trying to start the meeting. Give me 5.

Al Jones
2023-08-24 10:59:53

Working now

Bob Hassett
2023-08-24 12:24:00

Info on using MNDOT for correction https://www.dot.state.mn.us/surveying/cors/

dot.state.mn.us
Bob Hassett
2023-08-24 14:25:12

After the Zoom meeting I started rethinking my tractor project. Chances are we’ll sell the tractor next year. So I’m going to redirect my efforts to a Barbie Jeep or smaller. Not going the riding mower route. So I’ll take every thing off the tractor. I’ll start shopping for an f9p and a surveyor grade antenna. For correction data maybe I’ll look in to using internet and WiFi.

JeffS
2023-08-24 19:28:11

Info from today's video meeting.

===========================================

20230824 Lawn Tractor Automation meeting - Length 55:21 This video: https://youtu.be/p-y0u9rHv_Y

Chat: Jeff: https://www.ardusimple.com/introducing-gnss-master-app/ Jeff: http://lefebure.com/software/android-ntripclient/ Jeff: https://rtklibexplorer.wordpress.com/2016/09/08/adding-a-radio-link/ Jeff: AT commands for the telemetry radios. https://ardupilot.org/copter/docs/common-3dr-radio-advanced-configuration-and-technical-information.html

Index: 00:00 Jeff: Current quest for GPS correction data. Cell phone method doesn't work. Other cell phone options. 04:20 Jeff: Telemetry radios with RTKlib ntrip utility. Power problems. (And fixed.) Baud rates. 07:00 Jeff: ESP32-CAM board. 09:00 Jeff: Or just use the laptop computer directly. 09:20 Jeff: Tweaking software to make this work. Static heading from second GPS. 12:30 Jeff: Maybe make sure BNO055 heading is also valid as a backup. 13:00 Jeff: Actual testing stories. A quick hack to always take forward speed from joystick. 14:40 Al: Asks about the AT commands for the radios. (Jeff eventually posts a link in chat.) 15:30 Bob: Asks what GPS hardware is being used. 16:55 Al: Asks about the joystick speed control hack. 18:05 Bob: Asks about using free public correction data as opposed to creating a base station. 20:20 Al: Asks about viewing correction data that has been received at the GPS. 23:45 Bob: Asks for a description of Al's GPS base station. 27:10 It is suggested to search the the index (for both Lawn Tractor Automation and ROS Agriculture) and find Al's previous base station presentations. The links are in the description below, Discussion about using cheap non-RTK receivers. 33:30 We talk about the mower bot article. 40:10 LORA vs. Telemetry radios. 43:00 Al: Gives his update. Talks about Pure Pursuit. 48:45 We talk about creating location marks in your yard. Or using existing lines in parking lots.

==

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

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

Index for the original ROS Agriculture group (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (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
2023-08-25 01:32:00

I got my telemetry radios working again so I will go outside tomorrow and see if I have decent GPS data...

Bob Hassett
2023-08-26 08:28:19

Anyone have a PixHawk they want to unload?

JeffS
2023-08-26 10:56:36

In general my GPS "appears" to work better with cell phone correction data as opposed to laptop correction data. Maybe just my imagination? The other problem is that the cell phone keeps dropping the connection. I found that when the screen goes blank, it drops the connection. A work-around is to set the screen timer to 10 minutes. It won't let me disable it completely.

So I will go play with that for a couple of hours and see how well everything is working,,,

Bob Hassett
2023-08-27 13:29:45

And so it begins. Not a final design for a mower. Need to decide which way to drive. Find some rubber to attach to the drive wheels. Transfer the experimental tractor electronics to this platform. Drive it around as if it’s mowing and………..

JeffS
2023-08-27 15:38:09

@Al Jones I finally got my mini-tractor to work as badly as Al's lawn tractor. But that is a massive step up from not working at all. I'll post some plots when I get them done.

JeffS
2023-08-27 16:09:30

So this what my first plots look like. The path is hacked for some reason. My vehicle is also steering full left and full right. I was controlling forward velocity with my joystick. I had just replaced my pure_pursuit.py with Al's version because he outputs more debug data.

Now I want to run it in RVIZ and see what I get.

JeffS
2023-08-27 16:24:41

Ya know Bob... This a good time to get your Barbie Jeep running. Since the Barbie movie is doing so well.

Bob Hassett
2023-08-27 16:27:59

Jeff,you are reading my mind or you’ve got a hidden camera ;-)

JeffS
2023-08-27 16:52:42

This is what RVIZ thinks about my test. The path is not hacked up. My lookahead transform is bouncing around (which you can't see here). But is much better than it was before. My lookahead transform is advancing now but it gets lost a few times.

But this gives me stuff to dig through and I can make my own tweaks and rerun it... And feed these values into Al's Pure Pursuit Helper (or what ever he called it) to see if they compare.

👍 Al Jones
🙂 Bob Hassett
JeffS
2023-08-31 10:00:10

The weekly video meeting starts in one hour. (Noon, Eastern time, USA) https://us02web.zoom.us/j/82088036016?pwd=K2lLc1FiWm9MU0dzRStxM2J2b3dpQT09 (Reminders won't always be posted, just when someone remembers to do it..)

Bob Hassett
2023-08-31 10:08:07

Photos, if we have time during the Zoom meeting.

JeffS
2023-08-31 10:57:54

A picture of a simulated run with the same outdoor path.

JeffS
2023-08-31 16:02:24

Info from today's video meeting.

===========================================

20230831 Lawn Tractor Automation meeting - Length 59:12 This video: https://youtu.be/bo36buodKUk

Chat: None

Index: 00:00 Jeff: Quick story about telemetry radio range test. 01:30 Jeff: Cell phone correction data testing. 02:20 Jeff: Outdoor test results. (Physical vehicle) 08:30 Jeff: These are the same results in RVIZ. 11:10 Jeff: Results from simulated vehicle. 14:40 Jeff: Switch to Al's Pure Pursuit code. 15:40 Jeff: Switch from gazeboodom.py to gpsodom.py. 21:35 Jeff: Reiterates that switching the simulator to its GPS output may make things clear. 23:30 Jeff: Still need to experiment to see which heading to use from the simulator. 25:00 Al: Asks Bob to go ahead. Bob talks about his Barbie Jeep. Adding extra traction strips to the plastic wheels. 30:30 We attempt to look at Bob's pictures. 41:10 Al: Shows an adapter he made for a Barbie motor for his tractor steering. 43:45 Al: Shows a GPS accuracy plot. 45:10 Al: Shows an outdoor vehicle plot. And explains a problem. 49:45 Jeff: Asks about bad/intermittent connections with USB connectors. 55:50 Jeff: Mentions GPS drop-outs.

==

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

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

Index for the original ROS Agriculture group (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (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
2023-09-03 14:13:37

After trying different things, I settled on 3 ratchet straps to tighten the tread solid. Then drove screws. After that used a demel tool to cut the rubber. Added some plumber strapping for good measure. The next wheel should go quicker.

Al Jones
2023-09-04 06:16:58

*Thread Reply:* Baja Barbie is coming together 😁

Al Jones
2023-09-06 08:01:20

I wanted to confirm I understood the geonav.ll2xy function that converts lat lon positions to x, y positions. In addition to the geonav function I found two other approaches and compared them using this code. The results below were very similar. I think if I tested on a football field with markings I might be able to tell which I preferred.

Lat, Lon and corresponding X, Y coordinates: ============================================= Lat: 40.34530097, Lon: -80.12894139 latlon_to_xy =&gt; X: 0.391, Y: -4.434 geonav.ll2xy =&gt; X: 0.435, Y: -4.417 cmurphy_ll2xy =&gt; X: 0.392, Y: -4.422 ------------------------------- Lat: 40.34530663, Lon: -80.12887741 latlon_to_xy =&gt; X: 5.820, Y: -3.804 geonav.ll2xy =&gt; X: 5.863, Y: -3.736 cmurphy_ll2xy =&gt; X: 5.828, Y: -3.795 Distance between this point and previous using latlon_to_xy: 5.465 meters (215.160 inches) Distance between this point and previous using geonav.ll2xy: 5.471 meters (215.380 inches) Distance between this point and previous using cmurphy_ll2xy: 5.473 meters (215.457 inches) ------------------------------- Lat: 40.34526831, Lon: -80.12887049 latlon_to_xy =&gt; X: 6.406, Y: -8.069 geonav.ll2xy =&gt; X: 6.492, Y: -7.983 cmurphy_ll2xy =&gt; X: 6.416, Y: -8.049 Distance between this point and previous using latlon_to_xy: 4.305 meters (169.504 inches) Distance between this point and previous using geonav.ll2xy: 4.294 meters (169.036 inches) Distance between this point and previous using cmurphy_ll2xy: 4.295 meters (169.090 inches) ------------------------------- Lat: 40.34526175, Lon: -80.12895261 latlon_to_xy =&gt; X: -0.561, Y: -8.800 geonav.ll2xy =&gt; X: -0.475, Y: -8.780 cmurphy_ll2xy =&gt; X: -0.561, Y: -8.778 Distance between this point and previous using latlon_to_xy: 7.005 meters (275.792 inches) Distance between this point and previous using geonav.ll2xy: 7.012 meters (276.076 inches)

JeffS
2023-09-06 11:33:23

Here is a cute write up that was posted to Home Brew Robotics Group: https://blog.arduino.cc/2023/09/05/tiny-tesla-go-kart-gains-self-driving-autopilot/

Arduino Blog
Written by
Arduino Team
Est. reading time
2 minutes
👍 Al Jones
Al Jones
2023-09-07 10:30:23

The weekly video meeting starts in 30 minutes. (Noon, Eastern time, USA) https://us02web.zoom.us/j/82088036016?pwd=K2lLc1FiWm9MU0dzRStxM2J2b3dpQT09

JeffS
2023-09-07 20:21:48

Info from today's meeting.

===========================================

20230907 Lawn Tractor Automation meeting - Length 56:15 This video: https://youtu.be/RlrscSc8OtE

Chat: https://miro.com/app/board/uXjVM1yzdFo=/?share_link_id=10226424350 https://github.com/jones2126/ https://github.com/jones2126/ros1_lawn_tractor_ws/blob/master/src/ackermann_vehicle/nodes/odom_from_wheel_and_gps.py

Index: 00:00 Al: Shows some plots from his path following experiments. 02:00 Al: Talks about testing various lat/lon to x/y programs. 06:40 Jeff: Talks about experiments with Pure Pursuit. Differences between location on the simulator and the real world. 11:00 Jeff: Suggests making a video of this debugging process. 12:30 Jeff: Lookahead transform jumps around when played back on RVIZ. Some description of how the code works. 23:45 Jeff: Discusses his multiple sources of heading info. And compatibility, 27:20 Jeff: Dealing with different data types for heading info. 31:30 Jeff: Single GPS heading vs. dual GPS heading (just an observation). 32:55 Jeff: A comment about trusting static heading from dual GPS. 33:40 Jeff: Summation of current status and where to go from here. 34:00 Al: Shares some info from his Miro white board. And the data that he collects. 35:30 Al: Mentions a new IMU board he was notified about. (Sparkfun BNO086) 36:40 Jeff: Suggests adding a second IMU to compliment the first one. 41:20 Jeff: Asks how Al created the pose values that he published with his augmented code. 46:50 Where is the source code for TransformToBaselink? 55:15 Parting thoughts. (YouTube maintenance)

==

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

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

Index for the original ROS Agriculture group (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (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
2023-09-13 11:42:57

Interesting paper regarding an adaptation of pure pursuit named Regulated Pure Pursuit which seems to also be incorporated into ROS2 Nav2 https://github.com/ros-planning/navigation2/tree/main/nav2_regulated_pure_pursuit_controller

https://arxiv.org/pdf/2305.20026.pdf

It still is not a solution to not being able to drive a straight line consistently, but it is interesting to see their code.

Bob Hassett
2023-09-13 15:53:39

Jeep Project …..Current Plan subject to changes at any time ;-) https://miro.com/app/board/o9JkzvV0Pw=/?sharelink_id=866627361216

JeffS
2023-09-14 09:59:30

The weekly video meeting starts in one hour. (Noon, Eastern time, USA) https://us02web.zoom.us/j/82088036016?pwd=K2lLc1FiWm9MU0dzRStxM2J2b3dpQT09 (Reminders won't always be posted, just when someone remembers to do it..)

JeffS
2023-09-14 11:53:06

A plot of offpatherror vs. steering angle.

JeffS
2023-09-14 15:52:03

Info from today's video meeting,

===========================================

20230914 Lawn Tractor Automation meeting - Length 35:28 This video: https://youtu.be/c2cYz8fxTKw

Chat: https://miro.com/app/board/uXjVM1yzdFo=/?share_link_id=10226424350 https://github.com/jones2126/ Regulated Pure Pursuit https://arxiv.org/pdf/2305.20026.pdf

Index: 00:00 Jeff: Comments and thoughts on Pure Pursuit. 04:30 We exchange ideas on speed control. And transforms. 13:00 Al: Status update. We look at notes on his Miro board. Some plots from a couple of simulated tests. 29:30 Al: Mentions reference to Regulated Pure Pursuit (used in ROS2). 31:20 Jeff: Mentions how to fix what Slack just forced on us. 34:25 Next testing steps.

==

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

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

Index for the original ROS Agriculture group (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (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
2023-09-16 11:35:27

Here is an interesting thread: Future of ROS 2 GPS Support I found this reference on Home Brew Robotics list.

ROS Discourse
Reading time
8 mins 🕑
Likes
19 ❤️
👍 VKuehn
Al Jones
2023-09-20 12:39:55

After running a few more tests it appears for my robot the lower the speed the tighter the steering is. The path on the left was run slower than the path on the right. I want to test different look ahead settings now.

Bob Hassett
2023-09-20 12:47:28

Your getting there!

JeffS
2023-09-20 18:15:04

What a coincidence, I have been looking at this stuff.

I notice that a slower GPS update rate makes it worse. My real vehicle is set at 5 hz. I have run the simulator at 5, 10, 20 hz.

But I still have the same issue that it works better on the simulator (as opposed to my real vehicle).

I'm at the point where I think the steering speed may also add to the problem. The only way to speed up the steering on my real vehicle is to swap out the R/C servo.

But I'm about to try slowing down the steering on the simulator to see if I can break that.

By slowing down your lawn tractor forward speed you are leaving the GPS rate fixed. But you are making your steering appear faster. So these these different observations are starting to come together...

Bob Hassett
2023-09-20 19:03:43

Starting to get the Rpi-video portion in order. But I’m getting a low voltage message. Tried using a powered 4 port usb hub. I think I may have to power the 7 inch display separately. Back to my parts inventory to see what I can come up with.

JeffS
2023-09-20 19:30:15

So I looked at plots for my vehicle. It looks like it goes from full right to full left (which is currently limited to +/-0.4 radians). And it looks like ti takes 3 seconds to do that. (That seems way too slow) So I divided 0.8 radians by 3 seconds to get 0.2666 rad/s.

👍 Al Jones
JeffS
2023-09-20 19:32:38

I added a new line: steeringanglevelocity to the config file. And ackermann_controller.py seems to honor that in Gazebo.

JeffS
2023-09-20 19:37:39

I ran steering velocities of 0.25, 0.5 and 1.0. It's really broken at 0.25 and gets almost usable at 1.0. I'm assuming if I change either GPS update rate and/or forward velocity that it will interact with the steering velocity to affect overall results.

JeffS
2023-09-20 19:42:25

I'm thinking that any of the following will help: Increase GPS update rate (if possible), slow down the vehicle (maybe slower than what you want), increase steering speed (again, maybe not possible).

But I'm thinking that there may be something fundamentally wrong with the existing Pure Pursuit code. Or we may have to do what everyone expects and fire up robot localization to fill in the extra points between GPS updates.

JeffS
2023-09-20 19:49:51

Maybe I will look at the original Pure Pursuit paper and compare that to what I know about the existing code. It seems that like the existing code is highly reliant on the GPS update rate, which directly controls the odom update rate, which directly controls the Pure Pursuit calculate rate. It doesn't seem like that is what the original paper expected... It had lots of right triangles and a big circle...

JeffS
2023-09-21 10:00:27

The weekly video meeting starts in one hour. (Noon, Eastern time, USA) https://us02web.zoom.us/j/82088036016?pwd=K2lLc1FiWm9MU0dzRStxM2J2b3dpQT09 (Reminders won't always be posted, just when someone remembers to do it..)

Al Jones
2023-09-21 10:29:23

Video of running test path (link) using Larics pure pursuit path tracking. Speed ~ 0.75 m/s, Look ahead @ 2.5 meters.

JeffS
2023-09-21 16:56:46

Info from today's video meeting.

===========================================

20230921 Lawn Tractor Automation meeting - Length 52:17 This video: https://youtu.be/0IJGgtXB_y4

Chat: https://miro.com/app/board/uXjVM1yzdFo=/?share_link_id=10226424350 https://github.com/jones2126/ Al's lawn tractor video. https://youtu.be/R6Qf-qMG5DY

Index: 00:00 Jeff: Comments and thoughts on Pure Pursuit. Simulator vs. real vehicle. Affects of GPS update rate. 03:00 Jeff: Steering speed. Simulator results from changing steering rate. 10:55 Jeff: Why slowing down GPS update rates affects the path. 14:00 Jeff: I'm still confused why it works better on the simulator than with a real vehicle. 16:40 Jeff: Summary of changes that may help. 22:30 Jeff: Another summary. 22:50 Jeff: Bite the bullet and run Robot Localization. 24:35 Jeff: Quick hacks to increase GPS update rates. 26:55 Jeff: Praise for the simulator. 38:10 Al: Notes and examples from his Miro Board. Speeds and resolutions. 45:10 Al: Mentions his latest video. 45:30 Al: Next steps. 46:25 Al: Asks how to get position values on Plot Juggler. 49:00 Al: Wants to create a coverage plot for testing. GPS rates. Adaptive look-ahead in Pure Pursuit. 50:45 Jeff: Comments on Al's latest video. (I will upload it to YouTube and add a link in chat.)

==

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

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
Al Jones
2023-09-22 06:56:04

Planned and actual path driven below. I've seen a couple of different path planning tools that I will have to see if I can dig up again. The plan below was built without automation so it is pretty basic.

Al Jones
2023-09-22 17:35:21

Video of a longer path I ran today. Maybe tomorrow I'll turn the blade on an cut some grass. There is a brief display of the electrical components of my system at the end. https://drive.google.com/file/d/1B_2FpcaEXHaq5vypOjC5pVmJ9xynpHql/view?usp=sharing

JeffS
2023-09-22 22:55:42

Here is Al's latest video on YouTube. (Nice dog. It's good you are getting your dog interested in robotics.) https://www.youtube.com/watch?v=FbUeUImJztY

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
Al Jones
2023-09-26 12:23:52

Still working on my path planning. I've written a couple of programs with different approaches.

Al Jones
2023-09-27 15:13:44

My path planning process is still clumsy, but this is what I have so far. I ran the mission in the real world at ~0.9 m/s shown in Step 5. It is more "wavey" than I would like, but is reasonable. When I convert my John Deere tractor I will be able to drive the mission and capture the path. That will simplify things. I also have to work on the path to end the mission (i.e. the white space in the middle).

JeffS
2023-09-27 17:12:38

I'm baffled...

At line 171 of https://github.com/larics/pure_pursuit/blob/master/src/pure_pursuit.cpp ``` if (!path.poses.empty() && idx >= path_.poses.size()) { // We are approaching the goal, // which is closer than ld

  // This is the pose of the goal w.r.t. the base_link frame
  KDL::Frame F_bl_end = transformToBaseLink(path_.poses.back().pose, tf.transform);```

I see reference to path_.poses.empty() path_.poses.size() path_.poses.back().pose Some where else it says path_.poses[idx_].pose I assume that refers to a specific entry in poses I assume empty and size refer to the array poses inside the path. But I can't figure out what path_.poses.back().pose is doing, since it has no reference to a pose location since idx is not specified.

So my questions is, can anybody tell me where empty, size and back are defined? Or what exactly what they are doing? (edited)

Al Jones
2023-09-27 17:27:25

*Thread Reply:* Maybe I'm responding too simply, but path.poses.back().pose is the pose of the final goal in the path, and KDL::Frame Fblend = transformToBaseLink(path.poses.back().pose, tf.transform); is transforming this pose to the robot's base link frame and storing the result in a KDL::Frame. If you are asking how 'transformToBaseLink' does that, I really don't understand vector math very well. I'm thinking navmsgs::Path message type uses std::vector<geometrymsgs::PoseStamped> and empty(), size(), and back() come from C++ as part of working with vectors. https://www.geeksforgeeks.org/queue-cpp-stl/

GeeksforGeeks
JeffS
2023-09-27 19:03:28

*Thread Reply:* No, my entire question is, what does this statement do? path_.poses.back().pose path_ comes from navmsgs::Path path;

https://docs.ros.org/en/api/nav_msgs/html/msg/Path.html https://docs.ros.org/en/api/geometry_msgs/html/msg/PoseStamped.html https://docs.ros.org/en/api/geometry_msgs/html/msg/Pose.html

But I don't see anything that allows me to apply .back() or .size() or .empty().

Speaking of KDL, I found a modified a version of Larics Pure Pursuit where they have ripped out the KDL parts. I just have to find it again.

JeffS
2023-09-27 22:42:50

A video of Pure Pursuit on my physical vehicle. https://youtu.be/HVeilflPQX8

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
JeffS
2023-09-27 22:44:16

A video of Pure Pursuit on a simulated vehicle. https://youtu.be/teJGOXcylVI

YouTube
} Lawn Tractor Automation (https://www.youtube.com/@lawntractorautomation2726)
JeffS
2023-09-28 09:59:36

The weekly video meeting starts in one hour. (Noon, Eastern time, USA) https://us02web.zoom.us/j/82088036016?pwd=K2lLc1FiWm9MU0dzRStxM2J2b3dpQT09 (Reminders won't always be posted, just when someone remembers to do it..)

Al Jones
2023-09-28 13:16:02

Soon I want to be able to put some type of servo to control the throttle

JeffS
2023-09-28 22:36:01

Info from today's video meeting.

===========================================

20230928 Lawn Tractor Automation meeting - Length 57:19 This video: https://youtu.be/mbJtmhh7Io4

Chat/Notes: Al's Miro board: https://miro.com/app/board/uXjVM1yzdFo=/?share_link_id=10226424350 Al's github: https://github.com/jones2126/ A video of Pure Pursuit on a simulated vehicle in RVIZ: https://youtu.be/teJGOXcylVI A video of Pure Pursuit on my physical vehicle in RVIZ: https://youtu.be/HVeilflPQX8 Original Pure Pursuit description paper: https://www.ri.cmu.edu/pub_files/pub3/coulter_r_craig_1992_1/coulter_r_craig_1992_1.pdf An expanded analysis of the 1992 paper: https://vinesmsuic.github.io/robotics-purepersuit/ A repo where they have removed the KDL library: It adds rotate in place, deleted KDL, the calc loop runs from a timer instead of odom callback. https://github.com/howde-robotics/pure_pursuit https://github.com/larics/pure_pursuit/compare/master...howde-robotics:pure_pursuit:master A repo with Adaptive Lookahead experiments. But they removed the Ackermann output: https://github.com/6RiverSystems/pure_pursuit The video on GPS Jump Detection: https://www.youtube.com/watch?v=XkOkvx9N6r8

Index: 00:00 Jeff: Comments and thoughts on Pure Pursuit. Simulator vs. real vehicle. 04:40 Jeff: Video of a simulated vehicle in RVIZ. 09:40 Jeff: Video of an actual vehicle in RVIZ. 22:50 Short discussion of Larics Pure Pursuit code. And other versions. 28:15 Jeff: Forks of the Larics Pure Pursuit repository. 37:00 Al: Digs through some code. 42:40 Jeff: Frustrations with github. 45:25 Al: Talks about his path planning experiments. 51:25 Al: A video on GPS Jump Detection. 52:05 Al: Notes from his Miro board. 55:15 Jeff: Says he should run one of Al's bagfiles through RVIZ.

==

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

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

Index for the original ROS Agriculture group (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (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
2023-09-29 19:14:30

I created additional steps in my plan to complete the path to 'fill in the white space in the middle'. The odd thing is when I ran the plan the turnarounds, although the points were in the .txt input file, did not become look ahead points. Note the half circles along the orange line in plotjuggler.

Al Jones
2023-10-02 07:33:18

Although this is not a path tracking paper it does discuss geometrically calculating a Dubins path and then discusses using vector math. Sharing as a reference. https://gieseanw.files.wordpress.com/2012/10/dubins.pdf

Al Jones
2023-10-02 12:06:29

This is run in simulation, but it seems a lookahead of 1.5 clears the earlier problem of losing 1/2 the circle mentioned above, when the lookahead was 2.0. Now, how to dynamically adjust the lookahead for straights and curves?????

JeffS
2023-10-03 13:21:29

From Weekly Robotics. A highly documented autonomous test vehicle. https://arxiv.org/abs/2205.04454?utm_source=weekly_robotics&utm_medium=newsletter&utm_campaign=weekly-robotics-267 https://github.com/OpenPodcar/OpenPodcar?utm_source=weekly_robotics&utm_medium=newsletter&utm_campaign=weekly-robotics-267

arXiv.org
Bob Hassett
2023-10-04 14:35:10

Looking for a truly free vnc type software. No free trial stuff. Any recommendations?

Al Jones
2023-10-04 14:37:12

*Thread Reply:* To remote from Window to Windows or something else?

Bob Hassett
2023-10-04 14:39:19

*Thread Reply:* Raspberry pi to windows, apple devices other pi’s maybe teensie.

Al Jones
2023-10-04 14:45:49

*Thread Reply:* I can 'full gui' remote into my RPi from Ubuntu to RPi using RealVNC, but I sort of think I got RealVNC before they started charging and they have not kicked me off yet. For a non-GUI solution I use PuTTy and for file transfer I use FileZilla. Here is an article with other options that I have not tried. https://raspberrytips.com/remote-desktop-raspberry-pi/

RaspberryTips
Bob Hassett
2023-10-04 14:46:58

*Thread Reply:* Thank you!

JeffS
2023-10-05 10:00:58

The weekly video meeting starts in one hour. (Noon, Eastern time, USA) https://us02web.zoom.us/j/82088036016?pwd=K2lLc1FiWm9MU0dzRStxM2J2b3dpQT09 (Reminders won't always be posted, just when someone remembers to do it..)

👍 Al Jones
Al Jones
2023-10-05 10:11:25

Looks interesting. Not that I need a GPS.

https://www.crowdsupply.com/tinkerbug-robotics/tinkerrtk

Crowd Supply
JeffS
2023-10-05 18:13:42

Info from today's video meeting.

===========================================

20231005 Lawn Tractor Automation meeting - Length 1:05:57 This video: https://youtu.be/WsZLcQ7PXK0

Chat/Notes: Al's Miro board: https://miro.com/app/board/uXjVM1yzdFo=/ Al's github: https://github.com/jones2126/ Links to Pure Pursuit githubs that were discussed. https://github.com/larics/pure_pursuit https://github.com/howde-robotics/pure_pursuit https://github.com/6RiverSystems/pure_pursuit https://github.com/f1tenth-dev/pure_pursuit https://mowito-navstack.readthedocs.io/en/latest/config_pp.html https://github.com/arimb/PurePursuit https://github.com/raphaelkba/pure_pursuit/blob/master/src/pure_pursuit_planner.cpp

Index: 00:00 Jeff: Is testing the Pure Pursuit code from Howde-Robotics. 04:30 Jeff: Describes some steps to get the Howde-Robotics code to run. 06:15 Jeff: Removing the rest of the KDL code. Now figure out how it works. 07:10 Jeff: Difference between odom trigger and timer trigger. 07:50 Jeff: Adaptive lookahead and velocity control. 08:50 Jeff: Pure Pursuit code from 6RiverSystems. 09:50 Jeff: Revisit last week's complaints about using github. 26:10 Jeff: What's next? 27:15 Jeff: More comments about "rotate in place". 31:55 Al: Shows his Miro board, path planning and links. 33:55 Al: Results of testing paths. 36:45 Al: Adaptive speed and lookahead distance. 41:15 Al: The problem with the configuration program not running. 51:05 Al: Talks about adding throttle control to his lawn tractor engine. 58:10 Al: Again asks about references to Adaptive Lookahead and Speed control. 1:03:00 Jeff: Talks about the audio settings on Zoom.

==

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

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

Index for the original ROS Agriculture group (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (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
2023-10-10 13:42:19

An article on creating a custom R/C servo. If you want to duplicate this, or just use the documentation as a tutorial, this looks very useful. https://hackaday.com/2023/10/04/roll-your-own-servo/

Hackaday
JeffS
2023-10-12 10:00:29

The weekly video meeting starts in one hour. (Noon, Eastern time, USA) https://us02web.zoom.us/j/82088036016?pwd=K2lLc1FiWm9MU0dzRStxM2J2b3dpQT09 (Reminders won't always be posted, just when someone remembers to do it..)

JeffS
2023-10-12 10:55:12

Something I'll talk about in the meeting today. I was getting strange results for the transform_lookup. I modified the time value and it jitters less, but is always one sample behind.

Al Jones
2023-10-12 10:59:01

I have updated my copy of the Laric's pure_pursuit.cpp to read .txt file with waypoints, speed and lookahead for each point. (link). The path generator has also been updated to update the detailed path file with that data (link pending GitHub update). Bagfiles are here.

JeffS
2023-10-12 15:24:00

Info from today's video meeting.

===========================================

20231012 Lawn Tractor Automation meeting - Length 34:28 This video: https://youtu.be/sdzdF8YMv54

Chat/Notes: Al's Miro board: https://miro.com/app/board/uXjVM1yzdFo=/ Al's github: https://github.com/jones2126/ Al's Pure Pursuit code: https://github.com/jones2126/ros1_lawn_tractor_ws/blob/master/src/pure_pursuit/src/pure_pursuit.cpp Al's current bagfiles: https://drive.google.com/drive/folders/1qbbjFHqPQJPcxEXKm8okCXo87eeH0TLW Top level directory on Google Drive: https://drive.google.com/drive/folders/1eOakFydReiihAvkAY_bPpzF-xGEUHlpZ Al: GitHub for Python Pure Pursuit (non ROS): https://github.com/AtsushiSakai/PythonRobotics/blob/35f4f61e44ad9c3f8fc6584e3d0d7ab7889bd866/PathTracking/pure_pursuit/pure_pursuit.py Al: F1Tenth Pure Pursuit: https://github.com/f1tenth-dev/pure_pursuit

Index: 00:00 Jeff: Is testing the Pure Pursuit code from Howde-Robotics. 01:35 Jeff: Does the cmd_vel output work better than the Ackermann output? 02:45 Jeff: Maybe just drive to the target point based on angle. 05:10 Jeff: Output the actual heading derived from the odom heading. Which pointed out a problem. 16:45 Jeff: Summary. 14:50 Al: Asks which of those 3 heading lines are actually used for steering. 19:15 Al: Shows his path experiments. Simulation vs. actual. 22:50 Al: Has changed the way he reads a path. He can now specify a speed and lookahead for each path segment. 26:55 Al: Is tweaking his speed value lookup table. 27:35 Al: Added more display points to the path visualization in the path generator program. 29:00 Al: Bagfile location. 32:00 Al: Posts a link to his top level Google Drive. 32:50 Jeff: Explains his hesitation to hand over code.

==

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

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

Index for the original ROS Agriculture group (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (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
2023-10-18 14:36:36

I see my Slack is all screwed up today. I may end up posting several test messages, or just give up.

JeffS
2023-10-18 14:42:38

(I'll try this again.) I modified the Larics Pure Pursuit (PP) code to simply drive to a point instead of the circles and triangles. It runs on the simulator and sort of works on the actual vehicle. The first half of the path looks good. The second half falls apart. I was controlling the speed manually.

For all of these the actual vehicle is using: GPS update rate: 5hz Point spacing: 0.5m Lookahead distance: 1m Speed: Manually controlled

Simulator: GPS update rate: 10hz Point spacing: 0.5m Lookahead distance: 1m Speed: 1m/s

JeffS
2023-10-18 14:59:09

So I spent several days looking at plots and rviz playbacks and it looked like my steering was just too slow. I decided I had various ways to speed up the steering:

Increase the voltage on the servo from 12V to 24V. Replace the steering servo with the faster one. Or, just drive REALLY slow.

So I went out today and drove REALLY slow. That seems to work. Here is a plot from my "PP with angles". (The bag file name is wrong on the Plot Juggler screen):

JeffS
2023-10-18 15:15:58

In attempting to post the second message, my computer locked up. I finally turned on my Windows computer to see if I could recover anything. Slack was screwed up there too. Much to my surprise these was my unsent message on Slack on Windows. I typed in the last few words and sent it...

JeffS
2023-10-18 15:21:57

Okay, final report. After seeing that diving REALLY slowly makes my "PP with angles" work I changed the PP code to use their solution instead of mine. That works too if you driver REALLY slowly. Although it is much more jittery than mine. But it does work. So it does look like I will have to pick and option to speed up my steering and retest. That's the end of my testing. Except I will post a couple videos of my rviz screen. They are quite boring as slowly as I was driving... Result from real PP:

JeffS
2023-10-18 15:24:42

Video from rviz running the "PP with angles" playback. This first one I didn't start the video up front.

👍 Al Jones
JeffS
2023-10-18 15:25:33

Video form rviz running real PP playback.

JeffS
2023-10-18 15:32:41

I see the videos won't play. If I download the videos to my computer then they will play.

JeffS
2023-10-19 10:00:13

The weekly video meeting starts in one hour. (Noon, Eastern time, USA) https://us02web.zoom.us/j/82088036016?pwd=K2lLc1FiWm9MU0dzRStxM2J2b3dpQT09 (Reminders won't always be posted, just when someone remembers to do it..)

JeffS
2023-10-19 21:46:12

Info from today's video meeting.

===========================================

20231019 Lawn Tractor Automation meeting - Length 1:08:35 This video: https://youtu.be/qYmGLgDgBXI

Chat/Notes: Al's Miro board: https://miro.com/app/board/uXjVM1yzdFo=/ Al's github: https://github.com/jones2126/ Al: Link to Greenzie video on GPS: https://www.youtube.com/watch?v=XkOkvx9N6r8&t=1s Al: Link to Weekly Robotics: https://www.weeklyrobotics.com/ Jeff: From Weekly Robotics: https://discourse.ros.org/t/rosbag-tools-a-ros-agnostic-toolbox-for-common-rosbag-operations/34035?utm_source=weekly_robotics&utm_medium=newsletter&utm_campaign=weekly-robotics-269 Al: World's first millimeter-wave RFID tag to improve drone navigation accuracy https://www.youtube.com/watch?v=7SezvxK_vrY&t=1

Index: 00:00 Jeff: Revisits last meeting about "drive to point" for Pure Pursuit (PP), 02:30 Jeff: Screen capture of first outdoor test. 05:55 Jeff: Why suspect steering speed? 09:30 Jeff: How can I get faster steering rate (vs. forward speed)? 11:15 Jeff: Screen capture of my code driving slowly. 11:15 Jeff: Screen capture of original PP code driving slowly. 24:40 Jeff: A video of the rviz screen while driving. This turned out to be the original PP results instead of my code, which I was claiming. 34:00 Jeff: Back to the question: How do I speed up the steering rate? 36:15 Al: Asks what the new code looks like. 38:00 Jeff: What it will take to fix it right. And Al's steering on his vehicle. 42:30 Al: Talks about new menus for testing. 49:55 Jeff: Asks why Al's GPS is in a different location each time. Discussion of GPS base station configuration and start up procedure.

==

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

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

Index for the original ROS Agriculture group (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (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
2023-10-23 18:10:59

I have a new problem. The first bag file I created last Friday and the first bag file I created today seem to be corrupt. Linux will not copy them to a flash drive. The other files both days seem to be okay...

Al Jones
2023-10-23 18:48:01

*Thread Reply:* I'm not sure I recall not being able to copy a bagfile, but I have had them be corrupt and not able to play back. For me, I try and ensure the 'rosbag record -a' is started from a new gnome terminal window and I ctrl-c that process before stopping any other ros processes. If I do that I can't recall the last corruption I've had.

JeffS
2023-10-23 22:11:26

*Thread Reply:* I don't recall what my exact order was. I wasn't paying attention since it hadn't bitten me yet...

JeffS
2023-10-23 22:23:42

As I mentioned in the last video meeting I could add an extra 12V battery to make my steering faster. I did that on Friday. It did seem to help. But I also noticed my steering appeared to me more jittery. I later looked at the plots to see if I could see a correlation to anything else. I tried plotting the requested steer angle against my steering feedback. But I noticed my steering feedback had died, The steering feedback is a wire soldered to the position pot on the R/C servo. Then I read that voltage with an Arduino Nano that is taped to the frame. So it looks like the Arduino Nano died (reset?) during testing. So I went out today and did some more tests to specifically get the steering feedback. The steering feedback died during every test I did. So I am assuming I am getting (excessive) electrical noise. I need to pull up some earlier plots to see if it was doing this before I added the extra battery...

JeffS
2023-10-26 10:02:45

The weekly video meeting starts in one hour. (Noon, Eastern time, USA) https://us02web.zoom.us/j/82088036016?pwd=K2lLc1FiWm9MU0dzRStxM2J2b3dpQT09 (Reminders won't always be posted, just when someone remembers to do it..)

JeffS
2023-10-26 16:42:08

Info from today's video meeting.

===========================================

20231026 Lawn Tractor Automation meeting - Length 42:52 This video: https://youtu.be/HpB56y1KsVQ

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

Index: 00:00 Jeff: Recounts Pure Pursuit experiments. Driving slowly. Increasing servo voltage. Attempt to average steering angle command. Compare steering request to steering feedback value. Story of higher voltage on main motor causing problems. When current sensing was added to main motor and the R/C servo. Analyzing the current of the servo as it moves. 15:30 Plots indicate that averaging of the steering request may help. I probably screwed up the averaging code. 18:40 To-Do list. 19:40 Al: Asks if the actual steering rate is known. 21:15 Al: Asks about electrical noise effects on the USB system. 25:00 Al: Asks if the forward speed is known. I.e., what works and what doesn't. 27:40 Jeff: More To-Do items. 30:50 Al: Is moving to a larger test yard. 32:20 Al: Steps for start-up. 33:20 Al: Example of his USB problem. 34:45 Al: Setup for new location. 38:15 Maps and backgrounds. 41:15 Al: List of things to take along.

==

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

Lawn Tractor Automation YouTube page: https://www.youtube.com/channel/UCGfslJO8yD3iz7u_nNFCMnQ/videos

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

Index for the original ROS Agriculture group (~250 videos): http://sampson-jeff.com/RosAgriculture/readme.txt (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
2023-10-27 09:42:28

I have been concerned about loosing all the valuable information as it is shared in the “Random” thread. So I have started coping the text and pasting it into my Miro whiteboard. https://miro.com/app/board/o9JkzvV0Pw=/?moveToWidget=3458764564091828511&cot=14|https://miro.com/app/board/o9JkzvV0Pw=/?moveToWidget=3458764564091828511&cot=14

But the problem has been trying to capture all the pictures. One way is do a screen capture and then edit to size then paste back into the text. But that is a hassle. Any suggestions on how better streamline the process?

JeffS
2023-10-27 16:10:37

I went through this process when ROS Agriculture was about to vaporize. At that time you could "export" to a ZIP file. You would get text, links to files, pseudo links to threads. I could never find where threads are stored. But links to files (images for instance) would work and you could it into a browser and display the image.

I haven't looked at this for awhile since they don't seem to want people to actually do this. But at the time I found two or three public attempts (githubs) to make this work. I haven't checked to see if those have been updated.

So today this page turned up: https://robots.net/tech/how-to-export-slack-conversation/ It says there is now a PDF option. I'll go try that and see what that does.

Robots.net
JeffS
2023-10-27 16:22:33

Test post... This is a test message

JeffS
2023-10-27 16:24:58

*Thread Reply:* This is a test reply... This to test if threads can be downloaded And include an image in the thread

JeffS
2023-10-27 17:19:02

Ahhh!!! It just blew my message away (again).

@Bob Hassett I will make this brief... Your Miro page seems to be a copy of meeting posts from Slack which is the same as the YouTube description which is the same as: http://sampson-jeff.com/RosAgriculture/LawnTractorMeetingNotes.txt If that is what you want, just use the LawnTractorMeetingNotes.txt data.

I assumed that you were talking about all of the other messages and images on Slack...

JeffS
2023-10-27 17:44:48

It seems the page I posted: https://robots.net/tech/how-to-export-slack-conversation/ doesn't match Slack. The only export I can find in Slack is the original/cryptic/useless option that was there originally...

Maybe I will dig further if I get (really) bored.

slackbot
None
None