InMoov Behaviors and Events
General idea here is to facilitate the requirements of behaviors and desired InMoov events and potentially implement them in a "non brittle way". Not sure how to implement this, but I know the solution isn't to "add them all to python" or "put them all in Java". Possibly it wll be to have extensible service methods which allow stable and extensible behavior or event growth.
- Health Check - checks battery, list of other things to check
Random Movements - random movements, always stopped when a gesture is in process.
Could be isolated to skeleton area. e.g. head, left arm, right arm, "all" etc...
- Random Tracking/Scanning - with opencv filters finds or track an object - stores or reacts to objects found in images or tracks an object it found - saved with meta data
Sleep Mode - only activation sensors are on - list of sensors to wakeup PIR, other...
auto sleep mode after some time of inactivity of list of sensors
- Some utilities or helper methods for AudioFile which will help play lists of files (shuffle, repeat, etc)
- Scheduled events - download news, mail, weather, other ...
- Default behaviors assigned to NeoPixel - emotional/error related other ..
- Default behaviors associated with ultrasonic sensors
- Default behaviors assoicated with finger sensors
- Default eyelid behaviors
- First time setup behavior
This is just to start the dialog.... (while I work on a general way of exporting service config that might be satisfactory for InMoov)
Nixie InMoov Config Proposal
Here is my proposal to manage Nixie InMoov configuration
I got input from Gael regarding how previous configuration worked in Manticore. I'd like to propose this for Nixie.
A single gigantic python file is way too overwhelming for regular users, me included..
Yet we want to make config exportable in a general way.
I thought about this problem for a while and came up with this possible solution which is general and might satisfy the requirements of being clear and simple to use.
What if we had an export - which exported a master config file for a complex service like inmoov, and all its peers as separate files ?
An example of how this might look like is this:
Where each file is a peer, and a master _config.py give you the easy ability to turn off or turn on the other files/peers.
The folders would be viewable in the InMoov UI here
Exporting the config from here would export all peers and their configuration into a new directory supplied by the user. The _config.py would be exported with the information regarding which peers are currently active.
Here it is ! ... all the peers of InMoov2 (only the first level) - the importan part is this UI was "generated" not hand coded ... on closer inspection it does generate some questions ....
Like why is head.rothead & head.neck defined as a peer if i01.head already has them ?
And controller left, right, controller3, controller4 ? Gael explained it to me once, but I really don't understand ... yet ..