I've started a project for University where we need to program the code for 7 swarm robots. Here's a short video with swarm robots. If you don't really get why this is so awesome, please read on.
The robots need to:
select a leader
form a group
move in a V shape formation like birds migrating
while avoiding obsticles
and swapping leader to whoever has the highest battery life
The catch is that every robot needs to be programmed with the exact same code. This is known as emergent behaviour. It's pretty damn sweet.
This is my way to think about it. Every single bird is the same. Yet because they have some minor different traits (one might be larger than another), their interactions with each other are different, and so the behaviour of the group may be different to the behaviour if there was only one bird. This is the thought behind emergent behaviour. It is the behaviour that emerges as a group is formed.
[nerd speak]
Now think about the above behaviour in terms of people. If we could model humans and their environment correctly, we could theoritecially simulate the entirety of the human existance. That's a long long way off, but no way near impossible. There is just too many variables to take into account. One of which would be the program itself, and according to Alan Turing with the Halting Problem, the recursive nature of this problem will make the solution undecidable. [/nerd speak] Yes that was the nerd speak and not the rest of the post...
Like birds, the robots cannot directly access each others information, they must talk (pass messages). For the robots, the messages can be in the form of a message (one tells the ones listening something) or a service (one asks another for something and it replies accordingly). These are the only ways the robots can interact. Oh but they can ram each other. More on collision detection and avoidance in a later update.
The robots are coded in Python with assistance from ROS (Robot Operating System), that helps with the simulations and the backend on communication between the robots. I'll paste some code at some point to give an overview of what is going on, but I'll be sure to add pictures for those that don't code.
I better end it here, but I have so much more to say so stay tuned for more on swarm robotics.
University:
Creating an Augmented Reality thing. HARD!
Tedious assembly language assignment, easy but time consuming.
Operating Systems assignment, involving threads in C/C++ (eww C).
Java RMI banking system assignment. Haven't looked at it.
Fun stuff:
Making a new game!
Woo!
Have a like-minded individual that's interested in making a civilisation type game.
Tried to make this earlier on but got really bored with the data entry...
Now that I know a bit about networking, it should be a lot more entertaining.
Details on wether this project is a go ahead or not is to be determined.
This is a very boring update so here is a picture of a cat
A general life update seems to be in order. And what better way to do it then with colon separated sections. Python anyone?
Holidays:
LAN party:
Some guy had 8Tb worth of games and movies. Needless to say I have a lot of new games.
Work:
So much work. Lots of money for me though.
#This isn't me, it was the result of Google searching 'dollar dollar bills yo'.
Back at University:
Marks:
I got a B+, 2 B's and a B-. Solid B average student.
This semester:
Using C and C++, also doing http and web servers, so expect something awesome this semester.
Maybe a new website?
Or a multiplayer game?
Project:
One of our projects involves creating motion capture technology etc. That will be awesome.
Games:
#The most important section. Starcraft II:
The ladder is now locked. Waiting on the next season.
I still suck. Bronze league.
Watch this video. If you only ever watch one SC2 video, this should be it.
New game:
Obviously I have left Tanks for too long now.
Going to make a new game with the help of someone who has the interest.
#Foo, if you have an idea and the time let me know, comment.
Looking to maybe do something similar to Fire Emblem, and Final Fantasy Tactics.
Thats about it. Will keep you posted on interesting finding etc. Hopefully I get something useful out of this semester.
tl;dr: That's Ok. This post is more for myself then you guys. Just watch the video, I bet you get it wrong. Silly noobs. Foo, I have used you as my reasoning examples, for lulz. See way below.
Today is the day I am sitting my Human Computer Interaction exam. I'm such a bullshit topic really. Talks about how people interact with a computer. Though it is quite useful for design purposes, most of the thing they teach are ridiculous.
I'm putting these here to show to myself I haven't forgot the random ass acronyms we came up with the remember everything.
Nielson's Heuristics: VMUCERFAHH: These are the things that every website should have, for ease of use.
Visibility of system status
Match between the system and the real world
User control and freedom
Error prevention
Recognition over recall
Flexibility and efficiency
Aesthetics
Help and documentation
(H something that means)Error recovery NOTE: My blog fits all of these requirements :D
Gestalt's Principles of Perception: CAPS 3123: The way humans perceive things.
(Good) Continuity
Closure
Common Fate
Area
Proximity
Pragnanz
Similarity
Symmetry
Surroundedness
Usability Testing: MESELF: What we test when we are testing usability of a website.
Memorability
Efficiency
Subjective satisfaction
Error frequency and severity
Learning
Fit for use
Principles of Aesthetics: PUBE PCI: Three things that relate to aesthetics on a computer.
(P is for principle of aesthetics)
Unity
Balance
Emphasis
-Placement
-Contrast
-Isolation
Principles of Interaction Design: FUSSness and SiMPiVity: Things that we want for good interaction design. FUSSness
Effectiveness/Usefullness
-Flexibility
-Utility
-Safety
-Stability SiMPiVity
Efficiency/Usability
-Simplicity
-Memorability
-Predictability
-Visibility
Other non acronym notes: Colour
-Hue - the colour
-Saturation - the amount of colour in the colour
-Value - brightness
Monochromatic - one colour scale
Analogous - colours next to each other
Complimentary - opposite colours
Dissonant - clashing colours (disgusting)
Triadic - three colours where any two are dissonant (and it looks good some how)
Gulfs and Distances
Gulf of Execution - hard to do what you want to do in a system.
Gulf of Evaulation - hard to see what a system does.
Semantic Distance - distance between what you want to do and what the system actually does.
Articulatory Distance - distance between what you think a system does and what it actually does.
Affordance - expectations from the look of a system - a door with a handle you expect to pull
Analysis Techniques
Brain storm - obvious - quick, easy - can go beyond problem space
Card sort - label cards and group card together - quick, easy, in problem space - your interpretation might be different from anothers
Persona - create a person on paper - easy, fast, give an idea of the users - may not be a good indicator of the systems users
Scenarios - create a scenario of what could happen - fast, shows potential system flaws, allows an ease of use study - may not be a good indicator of what the users are using the system for
Interaction Styles
Command Line - CLI
Menu Based - iPod
Form Fill-in - Sign up sheet
Question and Answer - Windows install wizard
Direct Manipulation - drag and drop
Metaphors - Desktop, trashcan
Web Navigation - web nagivation...
3D Environments - Games, decent games
Zoomable Interface - Google Maps
Natural Language - Car GPS talk to you thingys
Human
Hearing 20Hz - 15kHz
Touch - Haptics - Reaction time depends on stimuli
Fitt's Law - Time taken to click a button - a + b binarylog(D/S + 1)
Memory
-Sensory - moved to short with attention - visual = iconic - aural = echoic - haptic = tactile
-Short Term - moved to long with rehearsal - 7 +-2 chucks of information
-Long Term - little to no decay - overriden by interferance - uses:
Semantic network - a tree
Frame - data structure
Script - walkthrough guide of assuming what happens
Procedural - condition and action
Reasoning
-Deductive - if x then y - Foo wears shorts on Wednesday. It is Wedsnesday therefore Foo is wearing shorts.
-Inductive - hypothesis therefore conclusion (generalisation) - I have only seen pink pigs therefore all pigs are pink.
-Abductive - conclusion therefore hypothesis - Foo drives fast when drunk. I have seen Foo driving fast, therefore, Foo is drunk.
Errors
Slips - Knowing you should always be making probes.
Mistake - Intentionally stopping probe production to mass army
Standards and Patterns
Standards - cost money - ISO - you must follow
Patterns - free - guidelines
END:
Ok that's all I'm doing.
I hope you didn't actually read all of that.
If you are doing an HCI course this might come in handy.
In my Human Computer Interaction course we learnt something I thought was pretty cool.
THIS SENTENCE WILL TAKE YOU A LOT LONGER TO READ THEN
one is that entirely lower case, with the same word count.
Interesting ay?
So you will have entirely upper case to either grab attention and make people thing about what they are reading or to make people get annoyed and not read any of it.
Now have a think about where things are entirely upper case and entirely lower case.
Do you ever read these? Me neither.
They don't want you knowing what is in your food.
Those are the most noticable ones.
I also laughed at this.
Oh and am getting computer today hopefully. Will post update when I get it running.