A DIY robot that helps collect the trash in the woods. Image recognition will be uses to detect trash and collect it using a robotic arm.

Similar projects worth following
AkerfaBot is a robot that will help collect trash thrown in the woods and beaches. The idea is to have a robot made from reusable materials, such as, hover board, box, and robotic arm, controlled with a processing unit (an NVIDIA Jetson nano) in order to collect the trash.
The robot will take as an input a stream of images, and will have as an output a command to move toward the trash, collect it using the robotic arm and put it in the box.
The robot will execute the following tasks:
• Identify the trash
• Collect the trash
• Log the position and status if collected successfully or not
The robot might have a system to charge the batteries of the hover board using solar power.


Sometimes, when I go jogging in the woods, I notice that there is some trash (bottles, paper, glass ...) thrown in the forest. And sometime I wanted to collect all that trash, but why not build a robot that can do that automatically. The idea is to have a robot built mostly from reused materials, such as, hoverboard, plastic or wood box, metal pieces for the robotic arm, web camera. The robot will used image recognition to detect the presence of trash in the woods, then move toward it, collect it using the robotic arm and throw it into the box. So the trash will be collected by the robot while I’m doing my favorite sport.

The problem:

The main problem that the robot will solve is: identify trash in the forest (and/or in the beach) and collect them.

Proposed solution:

A robot that is build using already existing materials. The robot brain is a NVIDIA Jetson Nano  board. The body is a box and a recycled hoverboard. And the robot will have an arm to collect the garbage using a robotic arm constructed from recycled materials also.

Main robots’ tasks:

The robot will execute the following tasks:

  • Identify the existence of any kind of trash using image recognition (paper, bottles, plastic …)
  • Move toward the identified object and collect it
  • Log the position and the status of the task (success or failed)

Fist task: trash identification:

The robot will use image recognition in order to identify the existence of any king of trash in the woods/beach. A model will be trained upon various images of mostly all kind of trash. The model will be then used to identify the objects in a stream of images coming from a camera attached to the robot. The used camera could be a USB webcam or a Raspberry camera. For the processing unit, a NVIDIA Jetson Nano development board will be used.

Second task: trash collection:

After identifying the trash location, the robot will move to the position and collect the trash using the robotic arm.

Third task: logging:

Logging will help us to determine the efficiency of the robot. After any identification of a trash and attempt to collect it, the robot will log the coordinate of the position and the status of the operation, if it succeeded or failed.
This log will be then used to improve the robot algorithm, regarding moving and collecting the trash.


The process of building this project might raise the following challenges:
First, the robot will use a hover board as mechanism to move and navigate. So first we need to figure out how to control the hoverboard using the NVIDIA Jetson Nano. In fact there are already projects that use Arduino to control the hoverboard, so it won’t be a real problem except some tweaking and configuration. Also, there might be a problem about the wheels, especially when using the robot in the beach. To overcome this problem, another design might be investigated in which we will use a tank wheel.
Second problem that the robot might encounter is regarding the sense of dept. After detecting the trash object, the robot need to know the exact distance and how to collect the object using the arm. To overcome this problem, we might implement an algorithm to processed the distance just from the image, or use other solution that might include a second camera or even a LIDAR.
The third problem is related to the autonomy of the robot. For instance all the component of the robot will run from the hoverboard battery. However, a solar panel might be added in order to charge the battery when needed.

Built process:

  • Train a model for trash recognition
  • control the hoverboard motors using the NVIDIA Jetson Nano
  • built the robotic arm
  • Assemble everything
  • test and improvement

  • 1 × hoverboard
  • 1 × NVIDIA Jetson Nano
  • 1 × Camera
  • 1 × Box Frequency Control / Oscillators
  • 1 × Robotic Arm

View all 6 components

  • control the hoverboard motors using the Arduino #2

    Nait Malek Youssef08/08/2022 at 00:39 0 comments

    My first intention when I was thinking about this project was to be able to control the hoverboard without any major modifications of the hoverboard so anyone can rebuild this. However, I tried to analyze the packets exchanged between the two boards, but whenever I connect the Arduino to the hoverboard, it shuts down after a few seconds. I couldn't figure out why this is happening, maybe it caused by the firmware or something else. 

    Afterword, I did some researches, and I found that there are project that used the same hoverboard I have (hoverboard with two main boards). So I decided that I'll follow their lead even if this will require uploading a new firmware to the hoverboard, and maybe later I'll come back to continue on my first idea.

    Fortunately, due to the "magic of open source",   there are many projects and github repos hat give instruction on how to do this (The first project I found is Hoverboards for Assistive Devices,  that uses the  Hoverboard-Firmware-Hack-Gen2).  At this moment I don't have an ST-Link programmer in order to program the onboard ship (GD32F-130), I ordered one and I will continue the project when I receive it.

  • control the hoverboard motors using the Arduino

    Nait Malek Youssef07/23/2022 at 23:09 0 comments

    In this log, I will present the process followed to control the hoverboard using an Arduino pro mini. First step I did some research on the internet to see if there is anyone who hacked a hoverboard before, and I found a lot of resources. However, the hoverboard I have is different, all the resources I found uses a hoverboard that has tree electronic board: two small board that contain an accelerometer and a main board that takes information from the two other board and then control the motors.

    The hoverboard I have has just two electronic cards, one acts as a main board.

    After inspecting the electronic boards, I did found that the boards use the UART protocol to communicate between each other.

    After determining the RX/TX pins, I extended them and hock them to a logic analyser to try to find the baud rate of the serial communication. unlike the resources I found in the internet, the baud rate of this hoverboard is 7752 bps. Then I tried to read the frames and find out which one is which in order to reproduce them using Arduino to control the hoverboard.

    After several testes and workaround, the hoverboard starts moving after receiving frames from the Arduino. However, it was not a full control, the hoverboard keeps moving backward and stops after a while and turns off. The problem might be due to a bad frame, or that the messages sent from the Arduino overlaps with the one coming from the other electronic card.

    To overcome this problem, I tried to disconnect each electronic board and control just one board at a time, but nothing happens. I also checked that the voltage provided by the Arduino signal is the same as the one in the board and found that that is not the issue. 

    Now, I'm still trying different methods and looking for other solution. More details could be found in the github repository.

  • Model training for of garbage in forest

    Nait Malek Youssef07/13/2022 at 22:10 0 comments

    The first step in this project was to train a model to detect garbage in the forest.  To gain some time, I tried to see if there is a prepared dataset for garbage detection in forest, and I found this github repo Garbage Detection using Yolov5 on Jetson Nano. This model tries to detect various types of garbage objects, which is suitable for this project. However, when cloned and tested using new images, the trained model can detect some objects correctly and give them the correct annotation. But sometimes, the model fails to detect objects or detects wrong objects.

    For test purposes, I will use this model for the next build steps of the robot.  And when done, I will prepare a clean dataset for garbage detection in the forest and beach.

View all 3 project logs

Enjoy this project?



help wrote 04/20/2022 at 16:12 point

This project has tremendous commercial potential because American freeways have a tremendous amount of litter and insufficient personnel to pick it up.  Any state would buy an army of these if (1) they were sufficiently big (so they wouldn't have to be constantly emptied), (2) could report when they were full, (3) included anti-theft measures.  Suggested name: LIT-R-PIK-R-UP-R (ie, litter picker upper).  This idea could easily raise lots of $ on Kickstarter.

  Are you sure? yes | no

Nait Malek Youssef wrote 04/30/2022 at 23:46 point

Thank you for your comment and remarks, definitely I will try to take them into consideration

  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