Driver-assistance systems and fully autonomous vehicles could address the global challenges of traffic congestion and reduced road capacity. Although the field of autonomous transportation is growing rapidly, system complexity and cost have delayed progress. This project attempts to mitigate these issues through the development of a scale model robot that utilizes the sensors for autonomous navigation. Designing a model robotic system is simpler and more cost-effective than developing one for a full-sized vehicle. The system utilizes the Arduino IDE software framework, which provides a library of modular and customizable components. Further work is needed to confirm the feasibility of using these sensors. Ideally, as smartphones continue to improve in computational power and sensor accuracy, it will be possible to use them as integral components in autonomous systems.
A small rover is designed to drive directly to a GPS waypoint. Critical to the project, a small GPS unit is mounted on the rover’s surface. Location data is converted to a usable form and a path calculated. The car makes an estimate of how far to turn, then re-calibrates its location. This process continues until the car has reached its destination. The project utilizes the Haversine formula to calculate the distance between two latitude and longitude points. Using the heading determined by the GPS proved highly inaccurate; I chose to mount a compass module to the car, reducing the need to constantly re-calibrate to correctly estimate the car’s heading.
Convert Compass data into Heading:-We get compass data in the form of axis: x-axis, y-axis, z-axis. So we have to convert that data in to Heading using Haversin Formula. This Heading value is in degree.
Heading = atan2(x, y) / 0.0174532925Convert Compass data & GPS into Bearing:-To send rover at destination we have to give GPS Coordinates to rover. This Coordinates are in form of Bearing. We will do this by converting GPS and Compass data in to Bearing by Haversin Formula.
x = cos(latd)*sin(deltalog);y = (cos(latc)*sin(latd))-(sin(latc)*cos(latd)*cos(deltalog));bearing = (atan2(x, y))*(180/3.14);Heading To Bearing Retio:-This is a retio of Heading value to Bearing value which use to deside in which direction roverhas to take turn. According to Final value rover will turn either left or right. If retio is in between 0 to 1 rover will go forward.
Finalv = heading/bearing;
Comments
Please log in or sign up to comment.