GithubHelp home page GithubHelp logo

iscumd / ohm2017 Goto Github PK

View Code? Open in Web Editor NEW
4.0 12.0 4.0 878 KB

An obstacle course navigating robot

CMake 11.67% C++ 64.27% Makefile 13.56% Processing 1.67% C 8.83%
igvc pathfinding ros navigation kinetic

ohm2017's Introduction

Ohm2017

An obstacle course navigating robot

Usage

This package targets ROS Kinetic.

Requires iscumd/SharedROSNodes V1.0.0.

CAMERA CONFIGURATION and SETUP

CAMERA MUST BE RECAILBRATED IF POSITION AND ORIENTATION CHANGE

CAMERA MUST START BEFORE THE MAPPING NODE TO INSURE ADJUSTMENT

  1. Place wooden calibration stick named "Ohm Calibration Stick" so that the wooden protrusion that is on the short end of stick is flush with the front of robot and inline with the centerline of the robot.

  2. Place cardboard tri-fold flat with the non-white side flat on the ground and infront of calibration stick so that the center line of tri-fold is inline with the robot's centerline.

  3. From the center of lidar measure the X and Y distances in meters (round to the nearest cm) of 2 diagonal corners i.e O and M Note. Left of the centerline is negative from the perspective of the robot

       L---------------M
       |               |
       |   tri-fold    |   Height is always perpendicular to the robot
       |               |   Width is always parallel to the robot
       O---------------N
               |
               | <-- wooden stick
               |
            -------
             robot
    
  4. Open Cheese and change resolution to 640x480, take photo.

  5. Open image in GIMP and get the pixel coodinates of each corner.

  6. In vision_test.launch under "Pixel coordinates go here" plug the pixel coordinates into their respective locations

       ex. param name="white_line_detection_topLeftXpix" value="247" 
    
  7. Calculate ratio. ratio = Width/Height ( if using the 48x36in tri-fold ratio is 1.3333) plug the value into the vision_test.launch under "ratio".

  8. Now run white_line_detection.cpp using ros, and save the image in the window labeled "WARPED" (there is a save icon)

  9. Open the image labeled "WARPED" and get the new pixel coordinates of the diagonal corners that you found their respective XY distances.

  10. To calculate the constants, use either the source "calibration_formula.cpp", or the executable "calibrate" located in Ohm2017/Camera_Calibration, and plug in values for the new pixel coordinates from step 9 and their respective XY distances from step 3.

  11. To enable video recording or drawing overlays, in vision_test.launch under "Enable recording" and "Enable drawing" respectively, change false to true. Recording records the raw footage.

ohm2017's People

Contributors

bddidona avatar drcurry avatar emmaskychuks avatar epicwolverine avatar isc-robotics avatar mattjay1024 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ohm2017's Issues

Path Planning Node

Look into A*, HPA* search and Jump point search. approximate grid size (M x N) matrix is about 3000x2000

Prepare for PDR

Create ppt slides documenting what is our plan, and what we have accomplished so far ,are we on schedule etc...

PID Node

Convert last years code into ROS compatible code

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.