Developing a golf ball collecting robot

    The process of developing a service robot on the Orangepi zero and arduino to collect golf balls. All the pain of an indie developer not burdened with a technical background in one post ...
    Developing MVP. Video testing.

    What is golf?

    Golf is a sports game. The main goal is to roll the ball in the hole on each field for a smaller number of blows, to go through all the fields for a smaller number of blows. In our country, golf is developed extremely poorly and this is sad. The game is quite interesting, allows people to spend time in the fresh air, to communicate while playing, suitable for all ages. The game has a clear measurement of your success. “Handicap” is a numerical indicator of an athlete's qualifications. All these factors make golf a streaming activity. If you have not tried golf - it's time!

    What is driving range?

    To hit the end of the field from the first time, closer to the hole, you should be able to make long and accurate shots. The driving range is a training field for practicing long-range and medium-sized golf shots. These fields look like this.

    I'm on the driving range. This is an illustration of how to beat the wrong.

    During one training session on such a field, more than a hundred hits are usually performed. Hands to collect these balls was time consuming and dangerous to life. At the beginning of the 20th century there was not much choice, but in some places and now manual labor is cheaper.

    Now still used hand tools, but it is rather an exception.

    Most often, the balls are collected using a special hitch on a tractor, a golf car or an ordinary car.

    To collect the balls, drag them into the washing machine, the dispenser is usually loaded with a special person in the staff, although the grasskeeper can also fulfill this role. (Graskiper is a person who is responsible for the quality of the lawn on the golf courses).
    The development and implementation of a service robot for collecting golf balls seems to be a reasonable step from an economic point of view, as it saves the maintenance of special equipment and the salary of the employee who was supposed to perform this process. Golf is developed around the world, this photo clearly shows this.

    This game was especially popular in the USA and Europe, where the salary level is quite high and the ability to replace an employee with a service robot pays off very quickly.

    Search for a ready solution

    As a result of the search, a
    couple of DIY projects were found: a couple of

    beautiful renderers

    and one completely commercial project.

    From this we can conclude that there is interest. Most likely it is very risky to invest in such low-cost solutions. The cost of developing and setting up production is high, some of the molds will come in several tens of thousands of $. There are a little more than 40 golf clubs in Russia, while there are many of them in the world, in Germany alone there are more than 700, and in total more than 34.000. A robot ball collector as a product will not exactly pass a toothbrush test at a good corporation.

    It is very strange that the administration of several European golf clubs with whom I spoke did not hear about the existence of a ready-made robot, although they showed interest. All my attempts to get in touch with this company were not crowned with success, perhaps they do not cope with the number of orders already in place.

    I do not know exactly what will come of it. Maybe somewhere on the way from the plywood box to the first “adult” sample, it will be understood whether someone needs it or not.

    The initial goal is to get a working sample without attention to appearance. Next, I plan to give the robot a neat appearance and put in a golf club in Russia for tests. After debugging and long-term tests - start processing model suitable for production.


    Several major benefits are planned relative to an existing commercial solution.

    • No need to bury low voltage cable around the perimeter.
    • The possibility of implementation in an existing infrastructure.
    • Lower cost and total cost of ownership.

    Body and mechanical part

    The material for the body of the first sample was selected plywood. Cheap, allows you to quickly cut on the spot any part or drill holes. So that everything was clearly tailored sketched the drawing and gave it to the milling cutting.

    Collected all the details. From the very beginning, the idea was to make the body rounded, but decided to stop strictly at MVP. Anything that does not affect the performance until I deliberately exclude from the todo-list.

    The mechanism of capture of balls in the process of evolution of these devices has shown its effectiveness, so other options were not considered.

    On the engine 12V 30 N / m. on each wheel. The same engine turns the shaft with grip discs, as they are raised above the surface for the investment of turns and increased maneuverability.

    Initially, the engines were noname Chinese. There was no moment in the description, so the risk was great. The moment is clearly not enough that you can not say about the engines from the window regulators.

    After changing the engine had to print the other gears.


    Since the rover must work without an electromagnetic cable along the contour of the field, it somehow needs to be oriented and look for a base for resetting the balls and recharging.

    I decided to use Orangepi lite and arduino for more convenient work with 5v without a zoo of level converters for each sensor and engine driver.

    I collected all of the ready-made modules on the breadboard. This is due to the lack of experience in circuit design, I think in the future no problem will be diluting the board for modules or for discrete elements and order.

    The scheme consists of 11 plan, 11 Karl!
    - Orange Pi Lite
    - Arduino nano
    - GY-NEO6MV2 GPS module
    - 2 VNH2SP30 engine drivers
    - Bluetoth Hc-06
    - 2 J34 ultrasonic modules
    - Logic level converter
    - 3-axis gyro module and accelerometer GY-521 MPU-6050
    - Block of two relays

    Of course this was done for quick assembly, installation and replacement of modules.

    Software part

    The main script is written in Python. In the program cycle there is a global goal:

    1. Initialization
    2. Collecting balls
    3. Return to base
    4. Charging
    5. Holiday Schedule
    6. Rest on weather conditions.


    During initialization, systems are tested, GPS is searched, a local passport is built, and the target is determined further.

    Collecting balls

    During the collection of balls in each cycle, updating the local map of the terrain, building a vector to the current geographic target, polling the overcrowding sensor with the balls, polling the battery charge.

    Return to base

    In the event of an overflow of the sword compartment or the battery is running out, the robot switches the global target to return to the base by the shortest route. With close proximity to the coordinates of the base, a visual search for a label is used which further, more accurate orientation occurs.

    Charging, rest

    Charging occurs to the required battery voltage. Rest can be scheduled according to the schedule or by the rain sensor.


    Thank you for the design The

    carrying body should be covered from above with the upper part, which serves to protect against rain and falling balls. I plan to make the first decorative case of fiberglass and epoxy resin. About this is ready to write a separate post, if it is interesting.



    Already, the rover collects 95-100% of goals on its way. Builds a route inside the polygon using GPS coordinates. In the plans:

    • Finding the base to reset the balls and charge on the visual tag.
    • Servo reset balls.
    • Sensor overcrowding compartment with balls.
    • WEB-interface for visual indication of points on the map, building zones for collecting balls with different frequency.
    • Housing
    • Placement of a robot in a golf club in Moscow for a test in combat conditions.


    Many times after the post I received answers to questions or advice from the haboux community that helped a lot. Throughout the post there are a few questions that I really need an answer. Decided to bring them together for convenience.

    • How to make a case for a robot? It should look beautiful, without investing in the mold.
    • Should I get away from the modules and do everything on one board? How to deal with a microcomputer?
    • How to find funding for the project? Where to test samples?
    • I can’t find an example of a Kalman filter for GPS data with correction by a magnetometer, a gyroscope. There is Pycalman, but I don’t understand how to fit the data from the sensors in the matrix. Even on the toaster did not find the answer. I will be very grateful.

    Thanks for attention. In the next post test in combat conditions. I will show you not shown, I will try to solve the unsolved, and find out all the unknown!

    Always yours, a start-up start-up, a middle-level manager , a developer of all sorts of robots 1 , 2 , 3 , 4 , 5 , 6 and gadgets 1 , 2 , 3 . And I wrote two stories 1 , 2 and took a couple of interviews 1 , 2 , 3 .

    I am open to dialogue, advice, help, suggestions.

    Also popular now: