Tractobots, my attempts at field robots

Humpelstilzchen,
The Tinkerforge ROS package is now much more complete:

I ended up just connecting directly to brickd, though.

I like boring robots. Tractobot03 is approaching that stage. Here is a boring video of it planting:

Tractobot03 has planted 122A this week. I have not driven it locally for any planting. It was painfully slow and tedious for a couple days. I had to enter each line into my code, ensuring that it went the correct way, start following the line, drop the planter, and start the fertilizer. Then I had to raise the planter, stop the fertilizer, turn, then load a new line.

Today felt much better. Itā€™s running pretty much on its own. I even ran home once while it traveled from the far end of the field. The main problem now is that I lose GPS periodically. At least I have it programmed to stop when that happens. Then I back up and resume.

Because of the pressure to plant, I fell back on my old navigation code. My lines are not at all straight. Iā€™m calling them ā€œheritage linesā€ - like my grandfather planted. I look forward to improving them.

1 Like

How goes the progress?

Weā€™ve been working on neural net fuzzy logic steering to make autosteer machine independent.

I slogged through planting all of the corn (535A), planted the soybeans manually, and then barely prepped for the AgBot Challenge. It was today. I won!

Now Iā€™m catching up on sleeping and eatingā€¦

7 Likes

Congratulations!!! A great accomplishment to win with the competition and even more so given the competition.

Very cool I like seeing how you build and sort through all the issues. All while keeping the farm running. But soon you will just have to push the buttons and Watch the monitors

Kyler, i think you may find this interesting from the Canadian Defense Technical Information Center

http://www.dtic.mil/docs/citations/ADA599492

1 Like

Thank you. Yes, Pure Pursuit came up a lot in my research. I decided that I could do without it for the trivially simple (straight line) situations that I handle now, but I do want to try it for more complex handling. I recall that the FroboMind field robot code uses Pure Pursuit or similar. (The target point is shown in the simulation.) I intend to try implementing that code on my machines.

I have Tractobot00 running again. I hope to start using it as a testbed soon.

Iā€™m so glad the PID package I worked on has been useful to you. This is why I do it. Iā€™m sure others feel the same way.

1 Like

Hey Kyler, just wanted to mention iā€™ve incorporated pure pursuit into AgOpenGPS. It is far superior to any other guidance technique by a very long way. It just works and is very simple to set up for the vehicle.

iā€™m by far not an expert (thatā€™s the reason i am hereā€¦ wanted to learn more since iā€™m sitting home doing nothing but searching for drug reviews because of health issues and learning about these because thatā€™s what i like) but those really look amazing. would you mind if iā€™m gonna have some questions for you to ask??

Fire away with questions. Please understand that these are really simple machines and not good ROS examples, though.

@kylerlaird Hi! Good job with the tractors! Are you aware of some other builders of autonomous tractors? There is Matthew Reimer

and maybe others. He is using Pixhawk controller + RTK.

Also the Open Source Ecology project is just starting Open Source Robotic Tractor
http://opensourceecology.org/wiki/Open_Source_Robotic_Tractor

We are also going for a robotic mower at
https://robotika.cz/robots/osgar/en
Iā€™d be cool if we all could somehow pool resources, share experience. Or are you already in contact with some other groups?

1 Like

Iā€™m going through your code on GitHub and trying to understand the physical connection of your GPS and IMU. Iā€™m coming from a Pixhawk, RTK, motor controlled steering using Python and Dronekit on my JD5055, but new to ROS. Iā€™ve been unhappy with my attempt using PurePursuit and wanted to try and replicate what you have done. I was thinking step one for me was getting a simple publisher, subscriber working with the GPS and IMU. In trying to reverse engineer the physical connections I have found ā€œgps_nmea = GPS_NMEA(port=ā€™/dev/gps_nmeaā€™)ā€ in NV08C_node.py. I also found ā€œimu_pub = rospy.Publisher(ā€˜imuā€™, Imu, queue_size=10)ā€ in imu_publisher.py. Q1: Where is ā€œgps_nmeaā€ set and/or where is the GPS connected to your companion computer? Q2: I see in your code where the imu is published, but I canā€™t work backwards to see where it is connected. Can you help? Iā€™ll have more, but that would be enough to get me started on replicating your very impressive success. Al in Texas

Hi, Al. I strongly recommend that you forget all about that code; itā€™s really bad and very specific to the hardware I was using at the time.

Do you know about AgOpenGPS (https://agopengps.jimdosite.com/)? Itā€™s a good place to start for a ready-to-run (but non-ROS) solution.

For a ROS solution, please join us on ROS Agriculture (http://rosagriculture.org/).

Howeverā€¦to answer your questionsā€¦

Q1: /dev/gps_nmea is the NMEA port of my GPS. Thereā€™s also a port for RTCM. Each one is a separate(!) USB interface. I use udev to assign the NMEA port to /dev/gps_nmea. Itā€™s usually /dev/ttyS0, I think.

Q2: I used a Tinkerforge IMU Brick V2.0 as the IMU. I donā€™t think I uploaded the code for its publisher.

Iā€™m now using an Advanced Navigation Spatial Dual (http://www.advancednavigation.com.au/product/spatial-dual). Itā€™s ridiculously expensive but awesome. Also, Iā€™m trying to move everything to be more ROS-like. Iā€™m in the midst of developing the code again.

I suggest that you keep trying with Pure Pursuit. Brian at OpenAgGPS has had good results with it. At this moment, I am mapping the steering for my MT765 so that I can switch to Pure Pursuit.