Coder Social home page Coder Social logo

cozmo-arm-nuzzle's Introduction

Cozmo Arm Nuzzling

Term project for intro to robotics class, focused on developing routines and sensing for the Cozmo desktop robot to recognize arms and hands and appropriately bump or "nuzzle" them as a means of displaying affection.

Environment Setup

This application uses python 3, and these instructions assume python3 is set as your default python command. You can check your version with python --version

  1. In bash (or git bash on Windows) navigate to this respository folder, then create your virtual environment with python -m venv ./venv
  2. Once complete activate your environment with source ./venv/Scripts/activate
  3. Install the requirements once activated with pip install -r requirements.txt
  4. If you install any additional libraries, update the requirements with pip3 freeze > requirements.txt
  5. Exit the virtual environment with deactivate

State Assumptions

  • Cozmo will begin on the charger
  • The charger will be placed near the back of the desk, nominally facing the target
  • The desk will be nominally free of clutter and without obstacles.
  • If a cliff is detected the target cannot be reached.
  • If a bump is detected the target has been reached.
  • The nudge force can be moderated in some way.
  • The environment will be well lit, and the target will be easily separated from the background objects
  • The environment will only have one target object (I.e. only one person)
  • Cozmo will drive straight in the direction it is pointed.

Machine Vision

We used YOLO to track a person's face.

Bump Sensing

Cozmo lacks a true "bump" sensor, so instead we implemented rough bump sensing using a rolling average of the root mean square of the acceleration. We only track the root mean square during the drive section to avoid tracking logic on the other drive and stop motions.

Control Loop

Obsolete code

Everything in old folder is from initial testing

References

Part 1

  1. OpenCV
  2. pycozmo
  3. cozmo SDK
  4. OpenCV tutorials
  5. imutils
  6. OpenCV feature detection
  7. OpenCV edge detection
  8. Google hand tracking
  9. OpenCV Shape Detection
  10. More Shape Detection
  11. Object Recognition
  12. Contours
  13. Object Detection
  14. TensorFlow? TensorFlow
  15. More TensorFlow

Part 2

  1. OpenCV Distance
  2. OpenCV Distance between objects
  3. Raytracing oh no
  4. Finger detection and tracking
  5. Distance overlay options
  6. Single camera distance estimate
  7. cam distance calibration
  8. Object localization
  9. Camera Calibration in OpenCV
  10. IDK size and distance
  11. Optical Flow
  12. OpenCV real time pose
  13. OpenCV py pose
  14. OpenCV Dense Optical Flow
  15. DeepSort Tracking and Relative Distance

cozmo-arm-nuzzle's People

Contributors

reakain avatar carson-gray avatar

Stargazers

Pat U. avatar

Watchers

James Cloos avatar  avatar

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.