Our Problem

When it comes to cameras, it can be pretty hard to distinguish between terrain that is traversable and terrain that is not (for example, not being able to go through glass). 2D images can be limiting, so how can we bring the information from the 3rd dimension?

Our Solution

Our vehicle will make heavy use of the ultrasonic sensor. We will be able to map out our terrain using the ultrasonic sensor and determine the closeness of certain objects. We will use the camera to take a picture of the environment that was scanned and display the depth graphically to a user. This will also give the vehicle data such as close-by obstacles. Then, the vehicle will be able to navigate itself towards open areas. If the vehicle gets close to a steep pathway (for example, a cliff), it will be able to detect it using the ultrasonic sensor, and then position itself away from the danger zone. We will also be using the vehicle's camera to track down a distinct object. The vehicle will then try to find and reach that object.

How we built it

  • We first assembled the robot using the instructions given to us by John Deere.
  • We then needed to replace the camera mount with an ultrasonic sensor mount. This means that the ultrasonic sensor is connected to the servos.
  • Additionally, we had to modify the ultrasonic sensor to reduce its range of vision to give us more precise readings.
  • Next we used the ultrasonic sensor to scan and develop a 3D map of it surroundings.
  • We also developed code to first take a picture of the environment. Then, using the information from the ultrasonic sensor, we are able to map out the closeness of objects by dividing up the image into sections.
  • Then we developed the code to determine whether the vehicle is approaching an obstacle or a steep point, and then maneuver away from the trouble area. This is all done using the ultrasonic sensor.
  • Lastly we worked on the camera vision code to detect and follow a target object (in this case a green ball)

Challenges we ran into

  • We had trouble trying to SSH into the Raspberry Pi due to the connection dropping and issues connecting to the internet.
  • One of our cameras had weird artifacts on the lens that we couldn't remove. So, we ended up getting a new camera. Then the new camera did not have the necessary width for mapping out the environment. So we ended up switching back to our old camera since it had the desired depth.
  • We had issues trying to use the ultrasonic sensor. There were some faulty readings (i.e. objects were being reported as far when in reality they were close by). One of the fixes was to change our environment to a larger room, as a small enclosed space reflects the ultrasonic waves more easily and interferes with the readings.
  • Similarly, we had problems trying to use the ultrasonic sensor to detect cliff, so we further modified our custom mounts to address this issue

Accomplishments that we're proud of

  • We 3D printed a part that allowed us to direct the ultrasonic waves from the sensor. This way, the ultrasonic sensor has a more narrow and precise range.
  • We also created a custom 3D printed mount for the ultrasonic sensor. Positioning it so that it was able to face the ground plane, we could better determine which parts of the environment were drivable.
  • The autonomous decision making using the 3D mapping data from the ultrasonic sensor is especially interesting. The robot uses this data to make a decision on the most open path to take.

What we learned

  • We got to learn a lot about Raspberry Pi, Autonomous Vehicle programming, OpenCV, and being able to creatively modify our project to solve our problems.

What's next for Autonomous Navigation - John Deere Track

  • We're looking to better design our robot for even better depth readings. We could potentially look into ways for the robot to be used in smaller, enclosed spaces.

Built With

Share this project:

Updates