Difference between revisions of "2020WinterTeam7"

From MAE/ECE 148 - Introduction to Autonomous Vehicles
Jump to navigation Jump to search
Line 89: Line 89:
<br />
<br />
In our project, we used Wi-Fi to connect two ODIN chips on two GPS-RTK 2.
In our project, we used Wi-Fi to connect two ODIN chips on two GPS-RTK 2.
<br />
<br />
<br />
<br />


== Software ==
== Software ==

Revision as of 00:35, 21 March 2020


Project Overview

Our goal was to provide our car with particular GPS coordinates, have the car navigate to the destination coordinates by using GPS and RTK2 corrections to achieve centimeter accuracy. We utilized Potential Functions and Gradient descent algorithm to avoid obstacles and find the path through objects.

Main objectives of adaptive cruise control are:

1. GPS-RTK Navigation from source to the assigned destination

2. Connecting the two C099-F9P GPS-RTK2 modules using Odin (wifi)

3. Obstacle avoidance

Minor objectives

1. Automatically collecting image with throttling and steering for donkey training while driving the lap

2. Finding a path to the goal from starting point with avoiding given obstacle location

Team Members

Chanyang Yim – Mechanical and Aerospace Engineering Department

Jiuqi Wang – Mechanical and Aerospace Engineering Department

Omid Hasanli – Electrical and Computer Engineering Department

Design and Assembly of Donkey

This part includes all the CAD files during the project.

Camera Mount

The camera mount contains three parts, the purpose of this design is to let the camera be adjustable with height and angle. The first part is the camera base, which mounts the camera with four bolts and nuts, and can be mounted on the upper stand with one bolt. The second part is the upper stand, this part has many holes on it to make sure the camera can adjust the height. The last part is the stand, the holes mate the holes on the upper stand.


In our design, the first camera mount was not perfect, the camera did not have enough angles to adjust, and the stand was very thin. Therefore, here shows the modified design of our camera mount.


Camera Base Stand Upper Stand



CAMERA MOUNT 1.jpg CAMERA MOUNT 2.jpg

GPS Case

The GPS we used is a bare circuit board, which needs protection. A GPS case was designed to protect the GPS from bumps. GPS case contains two parts, GPS cover and GPS base.


Camera Base
Upper Stand

GPS CASE.jpg


Antenna Base

Similar to GPS, there was an antenna base to make sure the antenna was stable during operation.


ANTENNA BASE.jpg

Jetson Nano case

To house our Jetson Nano, we 3D printed a case taken off of Thingiverse at: https://www.thingiverse.com/thing:3518410 Jetson Case.jpg

Hardware

GPS-RTK 2

Base Station


GPS-RTK is the positioning is a satellite navigation technique used to enhance the precision of position data derived from satellite-based positioning systems (global navigation satellite systems, GNSS) such as GPS, GLONASS, Galileo, NavIC and BeiDou. It uses measurements of the phase of the signal's carrier wave in addition to the information content of the signal and relies on a single reference station or interpolated virtual station to provide real-time corrections, providing up to centimeter-level accuracy.


In our project, two GPS-RTK 2 were used. One of them was used for the base station, another one was attached to the robot and collect GPS data by communicating with Base Station.






ODIN Chip

The ODIN-W2 is a compact and powerful stand-alone multi-radio module, designed for Internet-of-Things gateway applications. The module includes an embedded Bluetooth stack, Wi-Fi driver, IP stack, and an application for wireless data transfer, all configurable using AT commands. The wireless support includes dual-mode Bluetooth v4.0 (BR/EDR and low energy) and dual-band Wi-Fi (2.4 and 5 GHz bands).


In our project, we used Wi-Fi to connect two ODIN chips on two GPS-RTK 2.





Software

Autonomous Driving using gradient descent

The General Idea

To build potential fields, so that the point that represents the robot is attracted by the goal and repelled by the obstacle region. The robot moves to a lower energy configuration and energy are minimized by following the negative gradient of the potential energy function.

Artificial Potential Field Methods

The Attractive Potential

– Uatt is the “attractive” potential --- move to the goal Figure 3.png


The Repulsive Potential

– Urep is the “repulsive” potential --- avoid obstacles Figure 5.png

Total Potential Function

– Uatt is the “attractive” potential --- move to the goal – Urep is the “repulsive” potential --- avoid obstacles Figure 4.png

Gradient Descent

Figure 1.png

Final Result

Input.png Output1.PNG

Python Code

https://github.com/sohasanl/ECE148Project/blob/master/PathFinder.py

Challenges

We had a lot of trouble with our GPS-Odin module. Odin (WiFi and Bluetooth) on the C099-F9P was programmed factory default on rover Bluetooth and was in silent mode that wouldn't allow us to communicate with it through AT-Commands. Therefore, connecting two GPS, one as Rover and the other as Base station to transmit correction signals took almost 2 weeks of work.

Also, programming the Artificial potential fields faced with lots of wired errors as the Sympy library still has some unknown bugs and figuring them out required extensive searching through the internet.

Conclusion

Our car is capable of correcting its direction to move towards a specified GPS location using RTK2 corrections from base GPS-RTK within 1-10cm and avoiding larger objects. From our demo, we can see that the system is not robust enough to fully navigate to multiple locations while avoiding objects.

Project Links

https://github.com/sohasanl/ECE148Project

Resources

  1. Robotic Motion Planning: http://www.cs.cmu.edu/~motionplanning/lecture/Chap4-Potential-Field_howie.pdf
  2. Autonomous and Mobile Robotics: https://www.dis.uniroma1.it/~oriolo/amr/slides/MotionPlanning3_Slides.pdf
  3. C099-F9P related files and documents: https://www.u-blox.com/en/product-resources/property_file_product_filter/2543