Tuesday, April 29, 2014

Week 3-4 Update

Week 3


Objective:
Get all of the sensors tested to make sure they are working and test the specific ranges the sensors will return

Accomplishments:

The Magnetometer (Digital Compass)

Able to communicate with the Arduino and return accurate values of the direction it is pointing

Specifications:

  • 12C (serial) interface

              - 1 to 20 hz selectable update rate

  • .5 degree heading resolution
  • 1 degree repeatability
  • 2.5 degree accuracy 
Will be mounted in the front of the car and will be kept far from other electronics so that there is no electrical interference acting upon the compass

Compass module and IR distance Sensor connected to the Arduino

The IR distance sensor 

Diagram of the IR Sensor

Able to return values where 0 represented that there is nothing within range and higher numbers represented how close the distance was.

Specifications:

  • Range:  20 to 150 cm.
  • Analog connection
How to Add to RC Car:
The  is going to be to mount 5 IR distance sensors in five prime locations on the car so that it will be able to detect objects from all angles that it is heading. One will be mounted forward to detect things directly in front of it, two will be looking diagonally forward to detect oncoming objects from the side and two will be on the side to detect whether the RC car is riding along a wall.

Because of the limitations in the range of the IR Sensor, the car will have to be able to respond to an object after it is in a range of 1.5 meters so that will be a challenge for the group to perfect.


ROS

Now running on an Ubuntu Server with the Arduino attached via USB. The ROS server can be communicated with through SSH or TeamViewer desktop client. A program was written for the Arduino to print simulated NMEA data to its serial port for processing in a python script running on ROS. The python script to parse the data is still being written but the calculations themselves are finished.

Ross Communication between Arduino and Server


How far have we gotten with ROS

  • Began understanding the basics
  • Created simulator to move a turtle around the screen with inputted data
    • Similar to how GPS robot movements will be controlled with inputted data
  • Created ROS server and client to process inputted data
    • Running ROS on Ubuntu Server until ROS is built on RasPi
  • Much more difficult to input NMEA data directly through serial (less support than Arduino)
  • GPS receiver will be its own node
Ability to move servo with Arduino Via Ros


Xbee Tranciever Module

Data can now be passed between Arduino and ROS through serial.
Both Xbee Trancievers

Specifications
  • Creates wireless serial communications between two devices
  • Useful for monitoring ROS and debugging code
  • Capable of 6 mile transmission
  • 156 kbps transmission rate

Next Tasks

  • Acquire and display GPS receiver data via ROS
  • ROS implementation on RaspPi
  • Communication between ROS (on RasPi and Arduino)
  • Vehicle moving to single, specified waypoint
  • Basic obstacle avoidance
  • Decide a path planning algorithm to pursue


Tuesday, April 22, 2014

Week 2-3 Update

Week 2 Conclusion
Objectives:

Connection between the Arduino and the ESC:
The Arduino was finally able to connect to the Traxis ESC. It was very difficult to do because the Traxis has its own preprogrammed arming sequence that we had to replicate to connect to the ESC with our Arduino.  To fix this issue, we had to connect the ESC to an oscilloscope and analyze the connection between the ESC and the receiver so that the Arduino can replicate the same signal.

GPS:
The Arduino and the GPS module
The Arduino was able to utilize the GPS module and connect to various satellites to acquire locational data. The GPS was very inaccurate due to the urban setting and hopefully will have better success in a rural area where there is not as much interference.
The GPS saying the "current location"




Current Situation:

The Arduino is now able to utilize all of the motors on the vehicle. It is also now able to use the GPS. Getting the Arduino to connect to all the motors on the RC car was difficult and now that it has been done, a major hurdle has been overcome.

For the final project to come together, there are still many things have to come together before the final product. First of all, all of the sensors have to be tested in the Arduino and tuned to return values that will be useful to the RC car. Secondly, the algorithm for the movement has to be put together so that the car will be able to navigate to the predetermined destinations autonomously.

Future Plans:
Sensors that have to be worked on soon:
Compass module
Infrared Distance Sensor

Xbee Transceiver modules
The IR Sensor, Compass Module, and GPS


Algorithm:
Obstacle Avoidance
Movement Algorithm



Friday, April 11, 2014

Week 2 Objectives

After the Week 2 meeting with Dr. Char, Group 19 has split up the duties of the project for this week to accomplish two main tasks. 

Objectives:

Connecting the Arduino to the Traxis XL ESC:
Make sure that the Arduino can communicate with the ESC to move the back-wheel motors

GPS:
Have the GPS accurately communicate with the Arduino and send back the current coordinates of its location

Thursday, April 10, 2014

Week 1-2 Blog

Week 1: The Beginning of the Project

Goals:

  • Start the project
  • Contact Dr. Char



Overview: 
The group met together on April 4th and talked about the future plans of the project. It was decided that it was important to focus on the coding aspect on the project so it was a priority to get all the basics out of the way before any complicated coding was to be done. This meant that all the materials had to be brought together, the Arduino had to be plugged into the RC Car, make sure that all the motors are working with the Arduino.

What Happened During Week 1:

Gathered all the Essential Materials
The RC Car, the Arduino Board, extra wires, and a GPS were obtained

Testing Steering Servo as demonstrated by video
The Steering Servo was plugged directly into the Arduino and since it was a direct connection, it was not that difficult for the Arduino to control.
This is a video to show how the Arduino controlled the motors.

https://www.youtube.com/watch?v=qGcUkF0rZm8

Test the back-wheels with the Arduino
The back wheels are controlled by an ESC so it meant that the Arduino has to connect with the ESC so that the ESC can control the speed of the back wheel.
The Arduino was not able to connect with the ESC so it was necessary look at how the Radio transceiver of the RC car connected to the