Commit 156659a6 authored by Adrian Johannes Marxer's avatar Adrian Johannes Marxer
Browse files

Added Arduino Test Sketchbook

parent 0ada2b74
// Wire Master Writer
// by Nicholas Zambetti <http://www.zambetti.com>
// Demonstrates use of the Wire library
// Writes data to an I2C/TWI slave device
// Refer to the "Wire Slave Receiver" example for use with this
// Created 29 March 2006
// This example code is in the public domain.
#include <Wire.h>
void setup()
{
Wire.begin(); // join i2c bus (address optional for master)
Serial.begin(9600); // start serial for output
Serial.println("Ready!");
}
byte x = 0;
void loop()
{
int device_id = 4;
// transmit control data
Wire.beginTransmission(device_id);
Wire.write(x);
const int size = 10;
uint8_t data[size] = {1,2,3,4, 5, 6, 7, 8, 9, 255};
Wire.write(data, size);
Serial.print("sent data ");
Serial.println(x);
Wire.endTransmission();
delay(100);
// receive sensor data
Wire.requestFrom(device_id, 1);
Serial.print("received data ");
while(Wire.available()) // slave may send less than requested
{
int c = Wire.read(); // receive a byte as int
Serial.print(c); // print the character
Serial.print(" ");
}
Serial.println();
x++;
delay(500);
}
#include <Wire.h>
#define SLAVE_ADDRESS 0x04
void setup() {
pinMode(13, OUTPUT);
Serial.begin(9600); // start serial for output
// initialize i2c as slave
Wire.begin(SLAVE_ADDRESS);
// define callbacks for i2c communication
Wire.onReceive(receiveData);
Wire.onRequest(sendData);
Serial.println("Ready!");
}
void loop() {
delay(100);
}
// callback for received data
void receiveData(int byteCount){
Serial.print("byteCount: ");
Serial.println(byteCount);
Serial.print("data received: ");
while(Wire.available()) {
int number = Wire.read();
Serial.print(number);
Serial.print(" ");
}
Serial.println();
}
int x = 0;
// callback for sending data
void sendData() {
Wire.write(x);
Serial.print("sent data ");
Serial.println(x);
x++;
}
# Visual SLAM for Terrain Reconstruction and Autonomous Flight
by **Adrian Marxer** (adrian.marxer@student.uibk.ac.at)
Supervised by:
* Justus Piater (justus.piater@uibk.ac.at)
* Simon Haller (simon.haller@uibk.ac.at)
License: TBA
Bug tracker: TBA
Source: TBA
## 1. Overview
This project is a feasibility study of Visual SLAM for terrain reconstruction on an unmanned aerial vehicle. The goal is to use an existing SLAM algorithm to create a 3D map of an unknown environment by a quadcopter in remote-controlled or autonomous flight. Optimally the algorithm will run on the vehicle itself, but if that is not practical a remote machine will be used.
### Motivation
The main motivation behind this project is the approach by two Innsbrucker companys: Laserdata and Grid-IT. They are using LiDAR devices mounted on UAVs to build comprehensive geographic information maps. But the resulting point clouds contain errors due to unstable flight. The integrated IMUs are not fast/accurate enough to compensate for the drift. They are now searching for methods to complement their existing technique.
### Relevant publications
TBA
## 2. Installation
TBA
## 3. Usage
TBA
## 4. Platform
This Bachelor theses was done using the quadcopter provided by the MCI Management Center Innsbruck.
A general wiki page about the used quadcopter can be found [here](http://mci-quadrocopterws-2014-automation-project.wikia.com/wiki/MCI_Quadrocopter%28WS_2014_Automation_Project%29_Wiki).
## 5. Tasks
### 5.1. Transmission of Video Stream
A Raspberry Pi and a camera will be mounted to the platform. The Raspberry Pi will be responsible for transmitting a video stream to a remote machine which then processes the data.
### 5.2. Visual SLAM Algorithm
Best possible pose estimation using only a monocular camera. Different algorithm are to be evaluated and most suitable algorithm will be chosen.
### 5.3. Sensor Fusion (optional)
Fusion of Visual SLAM, IMU and possible other sensors to provide a more accurate pose estimation.
### 5.4. Autonomous exploration
TBA
## 6. Change log
TBA
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment