Skip to content

Getting Started

Joseph Wang edited this page Dec 3, 2016 · 35 revisions

Hello and welcome to robobuggy! We are super glad to have you join our team. This page is meant to be a jumping off point about how to get up to speed on the project!

Getting Connected

Tools we use

Mechanical

SolidWorks 2016

Roboclub shop tools

Electrical

Software

Software we currently use

Windows 8 x64 bit

OpenCV 2.4.9

boofcv 0.17

java 8 update 20

apachie ant 1.6+ can get from http://ant.apache.org/bindownload.cgi

maven

coolterm (serial monitor)

Getting started with GIT

  1. Install the Java 8 version of the JDK
  2. Install IntelliJ IDEA Ultimate Student Edition (or download the community edition)
  3. git clone https://github.com/CMU-Robotics-Club/RoboBuggy.git
  4. cd Robobuggy/real_time/surface_src/java_src
  5. ./gradlew eclipse
  6. Follow the steps at Eclipse -> Intellij Migration to open the project in Intellij IDEA

RXTX Library Installation

Linux

Download the appropriate deb: https://packages.debian.org/jessie/librxtx-java AMD64: https://packages.debian.org/sid/amd64/librxtx-java/download

Use dpkg --install <filename> to install

Per this: http://ubuntuforums.org/showthread.php?t=1747382 it looks like you'll need to then do the following:

Right click on the project, and add Jar/Folder to the build path: /usr/share/java/RXTXcomm.jar

Then, within that very .jar, you'll need to point it to the native library (.so) folder located at: /usr/lib/jni

Also, you might need this line: System.setProperty("gnu.io.rxtx.SerialPorts", PORT_NAME); which will make sure that rxtx is able to read the serial port. Otherwise you'll have to create a symlink.

Also, here's a link to the FAQ: http://rxtx.qbang.org/wiki/index.php/FAQ

What programing languages do you use

For core system, you will use Java. You may try to convince us why you shouldn't use java. For offline tools, you can use pretty much what ever you want. We mostly use Java and C, with a little C++, python, bash scripts and Matlab

How to make code changes

Pull from master (or another branch which you want to work off of, try to base everything off of master)

Create a new local git branch: git checkout -b "new-branch-name"

The new branch name should be "owner-feature" where owner is the main contributor to the branches name. If it address a specific feature then feature should be a short description for example "trevor-kfilter".

Once you make your changes you should push your changes up to the repo git push --set-upstream origin "new-branch-name"

DO NOT PUSH DIRECTLY TO MASTER!!!!!!

Once you are ready to roll your feature in to master:

  1. Merge master into your branch locally
  2. resolve any problems
  3. Push your branch to the public repo. DO NOT PUSH DIRECTLY TO MASTER.
  4. make sure that your branch passes all of the travis ci tests.
  5. Open a pull request
  6. Then ask at least one other person to review you code. You should also add anyone else who is in charge of a subsystem that interacts with your code changes. Add optional_reviewers if you should like to have other specific people look at your changes but do not require that they check off your changes before it gets put into master.
  7. After all of the required reviewers have checked off your merge request then the original person who made the pull request can merge the code into master.

Note that you are now responsible for those code changes. If something goes wrong with your section of code you may get a call at 5:00am to help debug it.

Do not do a force push before talking to one of the subteam leaders (Trevor Decker, Ian Hartwig)

System Overview

The sensors which we currently have: 
   * Encoder
   * Potentiometer
   * Inertial Measurement Unit
   * GPS
   * voltage Sensor
   * Camera

The system has two actuators: 
   * Front wheel servo
   * Pneumatic Breaks

The control system is separated into two parts high level which runs on a surface pro 2 and low level which runs on an Arduino mega

Useful links

CMU Buggy Alumni Website http://cmubuggy.org/ TODO

Embedded

Set up OpenCV for eclipse

http://docs.opencv.org/doc/tutorials/introduction/java_eclipse/java_eclipse.html#java-eclipse

install ffmpeg on ubuntu 14.04

sudo apt-add-repository ppa:mc3man/trusty-media sudo apt-get update sudo apt-get install ffmpeg gstreamer0.10-ffmpeg