Giter Site home page Giter Site logo

ros_smach_nuc's Introduction

ros_smach_NUC

  • A smach architecture of ros on NUC.
  • Communication between nodes is based on publish-subscribe.

TO DO:

  • test passing data between node and node of a state machine (DONE)
  • test looping in one state in a state machine (DONE)
  • test concurrence container for condition judgement (DONE)
  • decide all msg types in NUC

Notes:

  • Concurrence container do "execute()" function for every inner state first every loop. So DO NOT init Subscriber in Concurrence Container and pass data to states because this cannot get right msg. Just init subscriber in "init()" function of every state.
  • DO NOT define callback function for subscriber outside of state which has subscriber in it, won't pass msg data correctly, because smach isolate data access strictly.

Quick Start:

  • You can see picture of "Architecture of Smach" for the whole architecture of the state machine work.
  • If you want more detail about how different behaviors linked with triggers, you can start from the concurrence container's outcome_map.

Architecture of Smach

smach architecture

Trigger List:

trigger:  no one near, but someone identified far away and facing robot
action: face person  wave and beckon

trigger: closest person is walking directly to robot (getting closer with no rotation in base)
action: facial expression?

trigger: person is close and facing and person is short (e.g. a child)
action: bend forward - look down facial expression  ( blink heart in the eyes )
out trigger: - something so it doesn’t continuously do this. do it only once a minute.

trigger: closest person turns away
action: waves good-bye and finds next closest person

trigger: person is looking squarely at camera and close
action:  face blinks at person - test initiate face mimic - tilt eye’s


trigger: if mimic initiated - if person’s face tilts
action: face (e.g. eye angle) copies tilt of persons head

trigger: if face mimicking - if arms move out
action: mimic arm motions.

trigger: if face mimicking - if person moves closer or farther
action: waist mimics forward/backward motion.

trigger: if person quickly moves towards robot and is close
action: waist motion quickly backwards - and arms thrown forward and out (e.g. surprise)


trigger: if more than X number of people - and not danced recently
action: do dance.

trigger: if no people sensed
action: sleep mode - lean forward - face off arms - slight forward

trigger: if sleep mode and person gets near
action: wakeup action - stand straight - blink eyes several times - go to idle mode

trigger: default after any action.
action: idle mode - occasionally blink - turn face to closest person then turn body - waist straight, arms at side.

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.