Roktrack - Pylon Guided Mower

A mower not only for your yard, but also for your community.

Public Chat
Similar projects worth following
Rice terrace exist in the mountainous regions of East Asia, Southeast Asia, and South Asia, where rice is the staple food. This beautiful landscape will disappear sooner or later due to the trend of population outflow to cities in many areas.
I live in a terraced rice field area in Japan, and it is unlikely to last another 10 years. Weeding is a huge challenge in these areas. We have to work frequently in scattered areas. Moreover, in many cases the work must be done by elderly people who have difficulty using smartphones.
So I created a robotic mower that can automatically cut the weeds by simply placing pylons around the area and turning on a switch. This mower is lightweight and can be carried by the elderly and women, and there is no need to lay wires or use a smartphone to operate it. There is no need to risk your life weeding in the heat of summer. Turn it on and the weeding is done while you're having a cup of tea in a cool place.


Fast-spinning blades are very dangerous. If you make this machine by yourself, please be very careful and ensure the safety of your surroundings before using it.

How dose it work.

Roktrack heads to the pylon recognized based on camera image. When it approaches the pylon more than a certain amount, it turns around and searches fot next one. By speeding up the turning timing with each lap, it will enter from the outside to the inside. A custom model trained on pylon images in yolov8 is used for recognition. Object detection shows the height of the pylon. By determining how high to approach, the turning timing is adjusted.

4 parallel work
Four robots mowing in parallel.
one robot mowing.
One robot is mowing the grass.
Driving Route
Driving route


It is equipped with two blades. This allows pebbles to be ejected backward when they hit the blades, making the blades more durable. The upward-facing nylon cord prevents weed from tangling around the motor shaft.

With a single blade, the blade must be enlarged to the limit of the body's width in order to provide as much cutting width as possible. Then, in an environment where there are pebbles, the pebbles will get caught between the blade and the body. This would be a disaster, the fuse would blow in an instant, and the blade would be very badly damaged. It took more than 30 fuses and dozens of blades to achieve this shape. Now the grass is not tangled at all and the blades function for dozens of hours. This shape of blade allows mowing of weeds and grass up to 15 cm.

Rough Terrain

Eccentric tires on the outside of the sprockets allow the machine to overcome bumps of up to 5 cm. No additional actuator is required as the tire is directly attached to the sprocket.


Front view
Front view
Rear view
Rear view


Inside of roktrack
Inside of roktrack

The motor for mowing is controlled by a relay and turns only in a single direction. In the process of prototyping, I found that it is difficult to prevent weed from wrapping around by rotating the motor in the opposite direction. It would be very costly to reverse the motor and stop it at just the right moment when it starts to get entangled. So, as mentioned above, I prevent the weed from getting entangled by devising the shape of the blade.

Best pylon color

The color of the pylon, which has a high recognition rate and can be detected from a distance, is red. Blue and green are more common in nature, so the recognition rate of blue and green is low.


BatteryLifepo4 4S 12.8V
Pylon Recognizable Distance15~30m
Maximum working area20m * 20m
Working hours per charge2~3 hours
Mowing width20cm
Speed1 km/h
Raw Material Cost$330
Recognizable ObjectPylon, Person, Roktrack, Digit, Animals

Solar Power

Roktrack can also be recharged by solar panels, and if the weather is clear, it will continue to mow the weed automatically for about 15 minutes a day, permanently.

The solar panels generate 4W each at an open circuit voltage of 22V according to the data sheet. In reality, they generate about half that amount. Charge and discharge management is done by an off-the-shelf solar charge controller. These controllers can be set for cutoff and return voltages. If I set the cutoff to 12.7V and the return voltage to 13.2V, the system runs for 10-15 minutes every day when the weather is nice. If the cutoff voltage is lowered and the reset voltage is increased, it can run for an hour once every few days. At first I was trying to properly calculate the amount of charge, etc., but the voltage drop caused by the mowing motor (RS775) was so severe that I gave up trying to calculate it accurately. I decided on a setting that would work to some degree each day by changing the cutoff and return voltage over several days.

Wiring Diagram

*Each component is an image and differs from the actual component used.

Multi Node

Steep Slope

If two units work together, they can handle slopes of up to 60 degrees...

Read more »


Program Flow Chart

Adobe Portable Document Format - 318.90 kB - 10/09/2023 at 15:44



Wiring Diagrams

fzz - 288.42 kB - 10/09/2023 at 15:43


2d cad data for body panels.

Zip Archive - 55.57 kB - 10/09/2023 at 15:43


View all 69 components

  • A time-lapse video of the production process

    Yuta Suito11/03/2023 at 14:51 0 comments

    I made it in a hurry and was able to produce it in three hours! I think even an inexperienced person can make it in half a day to a day.

  • Voice control of mower with ChatGPT.

    Yuta Suito10/21/2023 at 09:04 0 comments

    Revamped mobile app for management and integrated with ChatGPT. Multiple mowers can be managed with free speech.

    And if you have a simple question other than robot management, they can answer it!

  • Pylons as signposts

    Yuta Suito10/09/2023 at 14:57 0 comments

    Someone who see Roktrack in action for the first time say, "If there are no pylons, where would it go?".

    However, this does not happen. If there is no pylon, it simply turns 360 degrees on the spot and stops because it cannot find the pylon. If you look at mowing through a polygon that is vertexed with pylons, you will see that the pylons are used to define the boundaries. But in fact, Roktrack uses pylons not so much to define boundaries, but rather as guideposts to point the way to where it should go.

    Basically, Roktrack heads toward the pylon it see, and when it gets a certain degree closer, it turns around and find the next pylon, and continue in the same manner. By gradually shortening this approach, it moves inward and fills the polygon. Since the principle of operation is simply to approach a visible pylon, it is impossible for Roktrack to go in the wrong direction unless it is misdetected. Personally, I find this more reassuring than GPS guidance because the working area is visually visible.

    Drive Route

    Roktrack Drive Route

    Flow Chart

    *The complete flowchart is uploaded as a pdf file.


    Pylons as signposts pointing the way make the drive motors encoderless. As shown in the image below, it is possible to calculate the deviation of the recognized pylon from the center of the image. In this case, there is a 20px gap to the right of where the center of the screen should be (the position of the recognized pylon). In this case, Roktrack will increase the PWM of the right motor and decrease the PWM of the left motor. The same calculation is performed during the next process, and if there is a gap, it is compensated. In this way, straightness is gradually ensured.

    It is not where you are, but whether you can see your way.

  • Kill two birds with one stone.

    Yuta Suito10/09/2023 at 12:41 0 comments

    Because the Roktrack is designed to be used in harsh conditions, such as on rough  terrain or left outdoors, it must solve many challenges. For this reason, a single component is designed to have multiple roles. The following are examples of parts with multiple roles.

    Splash guard

    - Protects switches and connectors from rain bounces
    - Prevents scattering of pebbles by high-speed rotating blades
    Crawler cover

    - Increase the strength of the track system
    - Prevent grass from wrapping around rollers
    Camera Cover

    - Prevent direct sunlight
    - Prevents rain
    String to support the camera
    - Reduce camera vibration
    - Locks the top panel open

    - Bumpers that sense physical contact
    - Handle for carrying 
    Top Panel L-Shaped Angle
    - Prevents rain
    - Fixing Splash Guard
    Solar Panel
    - Solar Charging
    - Reduces heat to the interior
    Nylon cord attached to the blade
    - Prevents grass from wrapping around the motor shaft
    - When the blade falls off, the color stands out and easy to find from the field

  • Don't shoot while turning!

    Yuta Suito10/09/2023 at 07:29 0 comments

    Roktrack makes a turn as it approaches one pylon and searches for the new next pylon. While it should preferably turn continuously and without interruption, in practice it repeats the cycle of "turn for 500 ms, shoot, infer". This is because shooting while turning will result in a blurry image as shown in the image below. 

    Image taken while turning.
    Image taken while turning.

    On the other hand, images taken while moving forward on the target object are not terribly blurry.

    Image taken while moving forward.
    Image taken while moving forward.

    If you are building a robot with a cheapo webcam, the turning should be intermittent and awkwardly controlled.

  • Number of images used in the training

    Yuta Suito10/09/2023 at 06:14 0 comments

    In order to detect uncommon and original objects such as pylon(traffic cone), it is necessary to create custom models that are trained on their own. Roktrack uses yolov8 (nano model) to create custom models. The number of images for each class used for training is as follows

    Model for mowing navigation


    After training, I am exporting in onnx format with 320*320 and 640*640 image_size. The reason why I am exporting with two image_sizes is because of the difference in the time required for each inference. The former takes about 1 second on the Rasberry Pi 3A+, while the latter takes a little over 3 seconds. During actual mowing, I use a light model while the pylon is recognizable, and if it is lost, I use a heavy model to be able to detect objects in the distance. In my experiments, we were able to detect a pylon 50m away when using the 1280*1280 model; it takes about 10 seconds to infer one image, so it is impractical to use it for navigation while moving.

    Model for number recognition


    The number recognition model is exported with an image size of 96*96 to speed up processing. As explained in previous log, this model infers on cropped images, so low resolution is not a problem.

    Models for Animal Detection


    This is also exported in 320*320 and 640*640 size, but it leaves some false positives. The nano model can not capture the characteristics of each class; a larger model, such as small, might be better.

    I feel that at least 1,500 images per class, preferably 3,000, are needed to achieve satisfactory accuracy.

  • Worked with Raspberry Pi Zero 2W!

    Yuta Suito09/27/2023 at 08:10 0 comments

    I finally got my Raspberry Pi Zero 2 W. 

    It has the same Conrtex A53 as the 3A+, so I knew it would work, but I just replaced it and it worked as is. I was worried that the clock frequency would drop from 1.4GHz to 1GHz, which would slow down the processing speed, but it is within 1.2 times that of the 3A+, so there is no problem with the mowing operation. Also, the heat generation seems to have decreased. The only thing that bothers me is that the USB input is microUSB, so I have to connect my webcam via an adapter. There is no audio jack, so to make the robot talk, I have to think of a way to deal with it.

  • As a surveillance camera while charging.

    Yuta Suito09/22/2023 at 04:28 0 comments

    It is now possible to monitor people and animals while charging.
    When a person or animal is detected, a notification with an image is sent to a messaging application. (Currently, the system is compatible with LINE, a popular messaging application in Japan.)

    Detectable objects are as follows.

    Person Monitoring Mode

    • Person

    Animal Monitoring Modes

    • bear
    • deer
    • monkey
    • boar
    • badger
    • cat
    • civet
    • dog
    • fox
    • hare
    • mice
    • racoon
    • squirrel

    I am excited about the many things we can do by preparing learned models as needed. I would like to add functions such as a simple patrol robot.

  • Digit OCR Mowing

    Yuta Suito09/17/2023 at 14:59 0 comments

    Roktrack can basically mow the weed with just a pylon(traffic cone). However, if the pylon happens to be on the neighbor's house, or if a truck happens to be passing by with a pylon on it, the mower will head in that direction. Digit OCR was designed to address these issues. To achieve this additional functionality, all that is needed is to attach a piece of paper with a single digit number printed on it to the pylon. The robot identifies individual pylons by recognizing this number. This means that it can select the pylon it should aim for among the pylons in its field of vision. This inhibits unexpected movements.

    Why OCR? Generally, AR markers and QR codes are used for robotic applications. To use these, it is important to be able to detect edges. However, in reality, the edges of markers are blurred when trying to detect them from a distance of 10m or more. I have come to the conclusion that it is difficult to identify a marker from a distance of more than 10 meters with a wide-angle camera. In order to detect objects with blurred details, object detection, which can use more ambiguous features, was suitable. In order to increase the detection distance and speed up the processing, the following is processed.

    The image is captured by the camera at the highest resolution. The resolution of that image is then reduced to perform inference in the pylon model. The detection content is normalized and the corresponding portion of the original highest resolution is extracted. The extracted part is then inferred by the Digit OCR model with a resolution of 96*96 to identify what numbers are pasted on the pylon. And since the existing OCR model for transcribing text takes several seconds to infer, I created a very simple custom model that can collect images of numbers and detect only the digits 0-9.


    AR Marker shot from 10m away

    AR Marker shot from 20m away

    AR Marker shot from 30m away

    This would make edge detection impossible, so AR markers would be limited to detection at a maximum of 10m

    "8" taken from 30 meters away

    For simple numbers, object detection can detect objects as far as 30 meters away. If the resolution can be increased to FullHD, 2K, 4K, and 8K, it will be possible to identify individuals at even greater distances. (This is if the data can be transmitted from the camera to the computer without delay.)

  • Weather resistance

    Yuta Suito09/17/2023 at 11:36 0 comments


    L-shaped angles are affixed downward to the top panel to prevent rain from the upper direction. At the rear of the body are components that should not be wetted by water, such as air intakes, power switches, and charging connectors. On a strong rainy day, the splash guard protects them from being hit on the ground and bouncing rain on these. To prevent insect infestation, sponge tape is applied to the tops of the front, rear, and side panels to make them airtight.

    Against condensation

    If the robot is left outdoors, condensation will form inside the robot in the morning on days with large temperature differences. When charcoal is placed inside, the charcoal absorbs excess moisture and condensation no longer occurs.

View all 16 project logs

  • 1
    Panel Creation

    First, we create the panels for the body: there is a 2d cad file in /hardware/cad in the github repository, which we print out in full size. Using this as a template, create the following body panel.

    • Top panel x 1
    • Bottom panel x 1
    • Front panel x 1
    • Rear panel x 1
    • Side panel x 2
    • Crawler cover x 2

      Aluminum composite plate or 2mm aluminum plate is suitable for the material. Aluminum composite panels are so easy to process that they can be cut with a cutter, but they are not very strong. Processing aluminum sheets is a little more difficult, but using a sheet metal service will greatly reduce efforts. Tools needed for do-it-yourself machining include a jigsaw that can cut soft steel, 3.2mm, 4mm, 6mm, 12mm, 18mm, and 20mm steel drills, and a rasp file.

    • 2
      Assemble the chassis

      First, bolt on steel angles to secure the bottom and side panels. The front and rear panels are secured with aluminum angles cut short and glued in place. Once the adhesive is dry, fill the gaps with sealant.

    • 3
      Fixing of roller shaft

      Insert 70 mm M4 bolts to hold the rollers for the crawler and secure with nuts.

    View all 14 instructions

    Enjoy this project?



    fireheadsoft wrote 05/23/2024 at 13:05 point

    Thank you very much for all of your answers Yuta! Can't wait to see the new version.

      Are you sure? yes | no

    fireheadsoft wrote 05/21/2024 at 19:30 point

    I just saw your YT video and commented on it. Decided to ask my questions here. I hope you can answer them.
    1. I assume running the two blade motors consumes most of the power.
    a. Have you considered using only a plastic string cutter (or two) instead of using small metal blades?
    b. Wound string cutters be more tolerable and less prone to damage by rocks or metal debris?
    c. Does it have an overload protection when it cuts over very heavy/thick weeds?
    2. Have you tried your robot in fields that have never been cut before? Does the robot slow down in heavy cutting applications?
    3. Does the robot "know" when the weeds or grass needs to be cut again or is it simply based on time or performed daily regardless of weed growth?
    4. Does the robot "know" when it does not have enough power to continue operating properly and stop automatically?
    5. How does the robot reacts when it hits a tiny tree that it cannot roll over or prevents it from moving? Does it reverse and goes around the tree or obstacle?
    6. Instead of pylons, have you considered using GPS or other methods for defining the area of the cut?
    b. Must the pylons be in a rectangular shape (i.e., one in each corner, and add pylons for distances greater than 10M?)
    7. What made you decide on RaspPi versus an Arduino based system? Would you have remained with Python if you used a Pi 5?
    8. Will you continue working on this robot or move on to a new project?


      Are you sure? yes | no

    Yuta Suito wrote 05/22/2024 at 23:49 point

    Hi Claude,

    1.The two blades have two advantages: first, the mowed grass does not get stuck on one side; second, even if a small stone hits it, it does not get stuck between the body and the blade; the two blades rotate in different directions toward the center of the body. This allows the mowing width to be increased up to the body width limit.
    b.I tried it in the early days, but with longer weeds, I could not mow enough and the weeds wrapped around the motor shaft. More trial and error is needed for diameter, rpm, and torque.
    c.That's right. But I don't see which factors of RPM, power, and torque are most important in the adoption of plastic strings.
    2.It contains a 25A fuse, so in the event of an overload, it will blow and stop operation. If the system is operated once every two weeks for maintenance, the fuse will not blow.
    3.Take it with you and operate it whenever you feel like it. If linked to a dedicated smartphone app, you can also receive alarms from Sentinel2A's satellite images.
    4.It can be charged by AC, but it can also be charged by solar. In the case of solar charging, the system monitors the voltage, and if the voltage is higher than a certain level, the system operates, and if the voltage is lower than a certain level, the system shuts down to charge the battery.
    5.The front of the body is equipped with a bumper made of limit switches. Obstacles that cannot be detected by image recognition are physically detected and avoided.
    6.In the early days, I considered using RTK-GPS and ropes to define the range, but I concluded that the image recognition type was the most reasonable in terms of cost and ease of use. I would like to get to the point where I can use image recognition alone, but in the future I may use GPS as auxiliary information.
    7.I needed Linux for image recognition in object detection, so I used a Raspberry Pi. I rewrote it in Rust to reduce memory consumption, so if I had used RPi5, it would have remained in Python.
    8.Currently, a redesigned model with a dedicated PCB is nearing completion. Once completed, I plan to show it off on Hackaday and Youtube.


      Are you sure? yes | no

    Yuta Suito wrote 05/17/2023 at 03:17 point

    Weeds are not currently identified. Pylons on all four sides are identified by object detection (yolov7). The distance can be estimated by the height of the visible pylons, so the turning timing is gradually accelerated to advance from the outside to the inside.

      Are you sure? yes | no

    chris owens wrote 05/16/2023 at 15:47 point

    How does it identify weeds?

      Are you sure? yes | no

    Similar Projects

    Does this project spark your interest?

    Become a member to follow this project and never miss any updates