-
Notifications
You must be signed in to change notification settings - Fork 16
Nao Competition
henrygarner edited this page Sep 22, 2012
·
24 revisions
key things -
- detecting the sink plunger
- ✔ (TL & HG) picking up the sink plunger
- ✘ Too heavy!! (raising sink plunger to forehead)
- ✔ (TL & HG) Raising makeshift plunger http://www.youtube.com/watch?v=t9MqRzNv6_Y
- ✔ (SJ) moving to forehead
- ✔ (SJ) saying exterminate
- ✔ (HG) maybe play this file instead? http://downloads.bbc.co.uk/doctorwho/sounds/ext1.mp3
- ✔ (HG) eyes flash red whilst exterminating
- recognizing faces
- moving towards faces
- stopping before hitting people? general obstacle avoidance
- cowering away if people move towards him
- running away if he spots a Doctor http://static.guim.co.uk/sys-images/Guardian/About/General/2010/3/1/1267456652197/Matt-Smith-Doctor-Who-001.jpg http://doctorwho.fm/wp-content/blogs.dir/1/files/the-third-doctor/third-doctor-jon-pertwee-7.jpg
apparently can find red ball
built in object recognition - can pre-program to find plunger
- Box libraries available with extra widgets
- Set stiffness off before manually moving robot
- Inputs and outputs are typed
- Numbers, strings, bangs, or any python type
- Boxes can contain others boxes
- Boxes are active all the time, more like data flow than imperative programming
- Audio > Voice > Choice box for conditionals
- Choice can return response as string, or branch on a given response
- Sit > Emotions > Angry / Fear / Happy / Sad (inspiration for feeble Dalek cowering?)
- Face detection outputs whether or not there's a face, and how many faces
- Animation mode allows you to do keyframe animation
- Animation box has a timeline within it
- Timeline editor allows you to specify event to trigger a new keyframe
- Need to cover sensors on back of hand or bumpers on feet to release stiffness to move to next keyframe
- Python examples https://github.com/uknao/examples
- Application template https://github.com/uknao/application_template
- Can save project as directory rather than file for version control
- Concept of resources in animation timeline editor. Multiple animations can run in parallel as long as they aren't using the same resource
- Behavior layers - several flows running in parallel to avoid spaghetti mess
- Can transition between keyframe behaviors with Goto or GotoAndStop
- self.log("Message") will appear in the debug window (Window > Debug)
- Can fire a message into the X input of a box to stop
- Flow control box library contains loop constructs
- Need to be taught. Can't be calculated from first principles
- Experience vs expression
- Humans capable of simultaneous emotions
- towards many subjects
- towards one subject
- background emotion
- Emotions interact
- Emotions decay
- Implementation. Event -> Subject -> Effects
- Also background flow dealing with general agitation / anger / boredom / depression
- Paradoxical emotions e.g. feels good to be angry at politicians
- PAD model (Pleasure, Arousal, Dominance) - any emotion a combination of these?
- Plutchik's Wheel - emotion is a two-dimensional circumplex model
- Scherer's emotional map / affective states table. PDF
- Labview application, running an emotional model http://www.ni.com/labview/
- Boredom creeping up, give NAO his ball and entertained jumps up, boredom decreases
- OpenCV is pre-loaded on the NAO OpenCV wiki
- NAO can already do face and ball detection
- Using OpenCV can extend this to more powerful image processing
- Intel is backing OpenCV
- Accessible using Python but most examples are C++
- Can develop code using computer's webcam before sending to NAO
- Or you can run directly on Nao using choreographe
- Make your programs save images of their processing which you can view to see what's going on
- Use an ALVideoDevice proxy... set resolution, colorspace, subscribe as client
- Blurring the image helps to reduce noise
cv.Smooth(image, image, cv.CV_BLUR, 3)
- Save an image
cs.SaveImage("/path/image.jpg", image)
- Segmentation
- Detect features
- Find faces or other objects (classifiers)
- Tracking (optic flow)
- Machine learning
- SimpleCV is a Python wrapper for OpenCV with a slightly different interface
- If looking at HSV (hue saturation value) colours, red wraps around so is lt 25 and gt 340 in degrees
- Black is not a colour, is when the saturation and value are both very small
- Females can see much more into the red, can distinguish between different sorts of red