Talk:Cheesoid
Interaction Goals
Cheesoid is intended to be a fully autonomous robot that interacts with people and objects in its environment. Human-Robot interaction is a massive subject but I intend to get some rudimentary (and comedic) speech and general input features in place as soon as possible. The environment interactions will develop as I learn more about sensing and mapping. Since the robot will live at Hackspace I have two basic goals for comedy value: -
- interact with the fridge for cheese status
- interact with the petrol pump for petrol status
So...
- it needs to know where they are to go and talk to them
- the status needs to be stored and needs to be set - Xino at each? Via IRC bot? Some web interface?
- it need to be able to read the status from the fridge and the petrol pump - what sort of interface? IR remote control?
Petrol status
- just a number!
Cheese status
- many cheese types - each with use by date
- Primula status is "in tube"
Human - Robot Interactions
With the eeePC I have a very capable processor on board and I'm taking advantage of that: -
- using espeak for text to speech
- using sphinx for speech recognition
Motor skills
I now have my 12V 150RPM gearmotors from China
- simple test circuits with 12V battery and driver ICs
- Texas Instruments L293NE or Texas Instruments SN754410 (almost equivalent)
- useful searches L293NE or SN754410 PWM arduino
- http://itp.nyu.edu/physcomp/Labs/DCMotorControl
- http://www.ti.com/product/sn754410
- datasheet: http://www.sparkfun.com/datasheets/IC/SN754410.pdf
- PWM for speed control - a two motor library perhaps with feedback loop via rotary encoder?
- using PWM on 2 motors http://letsmakerobots.com/node/2074
- Adafruit motor shield is a good example:
- http://www.adafruit.com/products/81
- http://www.ladyada.net/images/mshield/mshieldv1-schem.png
- My own custom motor shield for 2 DC motors
- mounting the motors and designing the axle couplings
- building the wheels : nearly done - some tweaking and securing to do
- building the plastic chassis - what's that display board plastic material called?
- milling the plastic
- strong enough to carry those batteries? !!!!
- aluminium cross bracing?
- battery mount - where?
- perhaps move to 2x 6V - keep it flexible
- battery regulation: http://letsmakerobots.com/node/3880
OK, motors tested with a two motor circuit...
This sketch is a munge of http://letsmakerobots.com/node/2074 and http://itp.nyu.edu/physcomp/Labs/DCMotorControl
I want to have motor enable based on digital logic as this will be controlled by bumper and cliff sensors
Range Sensors
- SRF05 by Devantech Ltd
Xino upgrades
- power screw terminal blocks: http://uk.rs-online.com/web/p/products/4258720/
- smt caps for smt regulators!
PIN usage on main Xino
- PWM capable pins: 3,5,6,9,10,11
- Dig out x2 for eyes
- Dig in for mode switch
- dig out for beacon on pin 13
- motor enable dig out
- PWM x4 for motor logic control - can it be reduced?
- bumper and cliff inputs - use serial mux?
- others!
PIN usage summary table...
TODO
goal/job list
Take to HS:
- boxfile, eeepc, station clock antenna, wheel assemblies,
- big battery station? nah,
- backup multimeter and hook probes - label it and solder plugs onto probe wires
DO: -
- 40mm al angle motor mounts
- test charged 12V battery and examine the available 6V and 12V batteries
- Look into voice commands using sphinx
- http://cmusphinx.sourceforge.net/wiki/tutorialconcepts
- try the sphinx packages
p --\ sphinx2-bin <none> 0.6-2.1 Description: speech recognition utilities Sphinx 2 is a real-time, speaker-independent speech recognition system. This package contains examples and utilities that use Sphinx. It also includes a sample language model that is capable of recognizing simple commands like "go forward ten meters" and other commands one might use to tell a robot where to move. Priority: optional Section: universe/sound Maintainer: Ubuntu MOTU Developers <ubuntu-motu@lists.ubuntu.com> Compressed size: 129k Uncompressed size: 500k Source Package: sphinx2 --\ Depends (3) --- libc6 (>= 2.4) --- libsphinx2g0 (>= 0.6) (UNSATISFIED) --- sphinx2-hmm-6k (UNSATISFIED) --\ Packages which depend on sphinx2-bin (0) --\ Versions of sphinx2-bin (1) p 0.6-2.1
- pizza box mods
- power port extension
- USB extension - USB hub
- PWR switch extension - LED in "Micro", PWR switch? Monostable/bistable startup flasher circuit for "Micro" switch
- eeePC mods
- Lid switch: do not suspend when lid closed - instead just switch to external monitor output
- http://forum.eeeuser.com/viewtopic.php?pid=20450#p20450
- sudo nano /etc/acpi/lidbtn.sh
- Lid switch: do not suspend when lid closed - instead just switch to external monitor output
#!/bin/sh LID_STATE=`cat /proc/acpi/button/lid/LID/state | awk '{print $2 }'` if [ $LID_STATE = "closed" ] ; then # /etc/acpi/suspend2ram.sh /bin/su user -c "/usr/bin/xrandr --output VGA --mode 800x600 --output LVDS --off" fi if [ $LID_STATE = "open" ] ; then /bin/su user -c "/usr/bin/xrandr --output LVDS --preferred --output VGA --off" fi exit 0
- clean up and test external monitor output
- remove easymode
- better power switch functionality
- http://wiki.eeeuser.com/howto:useicewm#configuration_of_icewm
- cylinder case mods
- speakers in mouth plate/grill
- side mount for Xino and boards
- top for beacon - keep on side for now
- mounting of cylinder on pizza box
- Xino/UNO main sketch code
- motor drive code and motor drive commands from PC
- speech commands from
- PC app code
- console read and process
- speech module
- speech commands from stdin
- speech thread - busy flag and job queue management
- motor module
- motor control input from STDIN
- sensor module
- camera module - look at Java interaction with V4L or whatever is in use
- mic input - and speech recognition
- GUI interface port and GUI app
--Michael Erskine 11:38, 28 September 2011 (EST)
Rotary Encoders for wheels
- an easily available "obsolete" ball type PS/2 mouse
- Microsoft "Mouse Port Compatible Mouse 2.0A"
- using the serial output from the mouse circuitry
- encoder usage in daylight
- mounting encoder wheel to axle
eeePC problems
- unionfs inode depletion causing "No space left on device" but df shows plenty of space!
- http://forum.eeeuser.com/viewtopic.php?pid=537876#p537876
- mount /dev/sda2 elsewhere and remove the '.wh*' files
- running out of space due to other errors ~/.Xsession-errors
- firefox won't start - oh well!
work!
Motor shaft couplings being the most annoying thing right now
- I really need some well made couplings like these