Thursday, December 20, 2012
Wednesday, December 19, 2012
Chess Playing Delta Robot
OK, this robot wins for best use of low-torque servos, and it looks like some kind of laser-guidance for the gripper!
Construction info here.
Construction info here.
Monday, December 17, 2012
Laser-cut servo-driven robot arm
Here is a cool robot arm made from S3003 servos and laser-cut plywood from "Sawtooth Design Lab":
Update: Here is a laser-cut robot arm design on Thingverse:
Update: Here is a laser-cut robot arm design on Thingverse:
AWS Turk in Java on Pi and ChessBoard.py
Forget everything I wrote about getting AWS Mechanical Turk on Raspberry Pi.
The solution is to load up Soft-float Debian “wheezy” from here, then Java SE "ARMv6/7 Linux - Headless EABI, VFP, SoftFP ABI, Little Endian" from here.
Also you may want to use raspi-config to extend your root partition to use the SD entire card.
I loaded up the AWS MTurk Command Line tools on to my Pi, and it appears to work (so far!)
GnuChess, while a great chess engine, is too much of a memory hog to run on Raspberry Pi, even with the command line controls to reduce the memory usage. There are some simpler chess program (such as Micro-Max which is ~2000 lines of C), however since I really only need to validate chess moves and update a chess board for my Chess Playing AWS Mechanical Turk, I decided to use ChessBoard which is a Python-based chess board and move validator. The public methods of ChessBoard.py are described here.
For example, below we create a new board, enter a valid move "e4", and an invalid move "a1":
The solution is to load up Soft-float Debian “wheezy” from here, then Java SE "ARMv6/7 Linux - Headless EABI, VFP, SoftFP ABI, Little Endian" from here.
Also you may want to use raspi-config to extend your root partition to use the SD entire card.
I loaded up the AWS MTurk Command Line tools on to my Pi, and it appears to work (so far!)
GnuChess, while a great chess engine, is too much of a memory hog to run on Raspberry Pi, even with the command line controls to reduce the memory usage. There are some simpler chess program (such as Micro-Max which is ~2000 lines of C), however since I really only need to validate chess moves and update a chess board for my Chess Playing AWS Mechanical Turk, I decided to use ChessBoard which is a Python-based chess board and move validator. The public methods of ChessBoard.py are described here.
For example, below we create a new board, enter a valid move "e4", and an invalid move "a1":
>>> from ChessBoard import * >>> chessboard=ChessBoard() >>> chessboard.getBoard() [['r', 'n', 'b', 'q', 'k', 'b', 'n', 'r'], ['p', 'p', 'p', 'p', 'p', 'p', 'p', 'p'], ['.', '.', '.', '.', '.', '.', '.', '.'], ['.', '.', '.', '.', '.', '.', '.', '.'], ['.', '.', '.', '.', '.', '.', '.', '.'], ['.', '.', '.', '.', '.', '.', '.', '.'], ['P', 'P', 'P', 'P', 'P', 'P', 'P', 'P'], ['R', 'N', 'B', 'Q', 'K', 'B', 'N', 'R']] >>> chessboard.addTextMove("e4") True >>> chessboard.getBoard() [['r', 'n', 'b', 'q', 'k', 'b', 'n', 'r'], ['p', 'p', 'p', 'p', 'p', 'p', 'p', 'p'], ['.', '.', '.', '.', '.', '.', '.', '.'], ['.', '.', '.', '.', '.', '.', '.', '.'], ['.', '.', '.', '.', 'P', '.', '.', '.'], ['.', '.', '.', '.', '.', '.', '.', '.'], ['P', 'P', 'P', 'P', '.', 'P', 'P', 'P'], ['R', 'N', 'B', 'Q', 'K', 'B', 'N', 'R']] >>> chessboard.addTextMove("a1") False
Monday, December 10, 2012
Sunday, December 09, 2012
Dorkbot SoCal 50
Dorkbot SoCal 50
***** Sunday, December 16, 2012***** 1:00pm-3:00pm
***** Machine Project
***** 1200 D North Alvarado Street
***** Los Angeles, CA 90026
***** Google map of Machine Project
http://www.dorkbot.org/dorkbotsocal
Speakers will include...
Michael Kontopoulos
Michael Kontopoulos is an artist-inventor interested in constructing mechanical systems and tools for exploring the poetics of everyday, eccentric human behaviors.His work draws from strategies in speculative fiction in order to investigate the circumstances und er which people might build custom devices to suite their nuanced needs or respond to various socie tal failings. Buy constructing electromechanical artifacts and exploring them through video, he tel ls the story of those people, and the world they inhabit.
Born in Philadelphia, Michael has lived and worked in Philadelphia, Pittsburgh and Los Angeles and has exhibited his work at various galleries, festivals and conferences in the US, Asia and Europe.
Joy Padiyar
An overview of Holography is given with reference to its origins, techniques and methods. The various technical applications of holography and its usage are covered in widely differing areas such as security, the internet, industrial optics and imaging systems. The use of holography as an artists' medium is shown, along with specific examples of holographic artwork.
Joy has previously worked for American Bank Note Holographics in the laser lab, where she produced several well-known images such as the MasterCard hologram, and security holograms for Intel and USPS. After meeting Dinesh Padiyar - a fellow holographer and scientist, they both moved to San Diego and established their own company, Triple Take Holographics, featuring both high-tech applications and commercial uses of holograms.
Aaron Rasmussen
Aarom was visited in his dorm by the military after building his first robot in college. Since then, he has launched the Kickstarted projects BlindSide, an audio-only survival/horror adventure game, and Mr. Ghost an iPhone electromagnetic field (EMF) detector.
Thursday, December 06, 2012
Next Chess Move
More people responded to the chess move AWS Mechanical Turk HIT at $0.25 per move rather than $0.05 per move and making it available to non-Masters. 5 workers responded (out of 5 requested). Only 3 provided valid moves for white using the FIDE chess algrebra. 2 workers responded with non-valid algebra, and one of those appeared to be trying to indicate a move for black rather than white.
The average time from HIT creation to HIT submission was 58 minutes, 49 seconds. The last HIT submission came in 1 hour, 38 minutes after the HIT creation. The time period between submissions averaged 19 minutes, 32 seconds. The average time between a worker accepting the HIT and submitting the move was 1 minute, 46 seconds.
The accepted moves were:
pe5
c4
Nf3
So I'm going with Nf3, leading to:
r . b q k b n r
p p p p p p p p
. . n . . . . .
. . . . . . . .
. . . . P . . .
. . . . . N . .
P P P P . P P P
R N B Q K B . R
The average time from HIT creation to HIT submission was 58 minutes, 49 seconds. The last HIT submission came in 1 hour, 38 minutes after the HIT creation. The time period between submissions averaged 19 minutes, 32 seconds. The average time between a worker accepting the HIT and submitting the move was 1 minute, 46 seconds.
The accepted moves were:
pe5
c4
Nf3
So I'm going with Nf3, leading to:
r . b q k b n r
p p p p p p p p
. . n . . . . .
. . . . . . . .
. . . . P . . .
. . . . . N . .
P P P P . P P P
R N B Q K B . R
Gnuchess comes back with Nf6:
r . b q k b . r
p p p p p p p p
. . n . . n . .
. . . . . . . .
. . . . P . . .
. . . . . N . .
P P P P . P P P
R N B Q K B . R
Wednesday, December 05, 2012
How to not only submit to AWS MTurk Masters
If you want the great unwashed to work your AWS Mechanical Turk HITs, you need to figure out how to submit the HIT to non-"Masters". This article explains how to do it - it was not obvious to me at all!
Sunday, December 02, 2012
Playing Chess on Amazon Mechanical Turk
So I have this idea - a chess playing "Mechanical Turk" powered by Amazon Mechanical Turk (aka "MTurk")...
To try to understand the market for chess moves, I manually submitted a HIT to get an initial move from AWS MTurk from the starting chess position. Reward price was $0.05, and I set a maximum of 10 workers for a period of 24 hours. Moves were required to be in FIDE chess algebraic notation. I figured that around the world, hundreds of millions of people know how to play chess, so this was going to attract plenty of workers.
And just 13 seconds after I submitted the HIT, I got my first move back: "e4". But then a funny thing happened - no one else worked on the HIT. I guess $0.05 per move might be too low to get much participation.
So here is the board after the White "e4" move by the anonymous worker on MTurk:
r n b q k b n r
p p p p p p p p
. . . . . . . .
. . . . . . . .
. . . . P . . .
. . . . . . . .
P P P P . P P P
R N B Q K B N R
I fired up gnuchess as the opponent to the MTurk, and it moved Black "Nc6", so here is where the game is at now:
r . b q k b n r
p p p p p p p p
. . n . . . . .
. . . . . . . .
. . . . P . . .
. . . . . . . .
P P P P . P P P
R N B Q K B N R
To try to understand the market for chess moves, I manually submitted a HIT to get an initial move from AWS MTurk from the starting chess position. Reward price was $0.05, and I set a maximum of 10 workers for a period of 24 hours. Moves were required to be in FIDE chess algebraic notation. I figured that around the world, hundreds of millions of people know how to play chess, so this was going to attract plenty of workers.
And just 13 seconds after I submitted the HIT, I got my first move back: "e4". But then a funny thing happened - no one else worked on the HIT. I guess $0.05 per move might be too low to get much participation.
So here is the board after the White "e4" move by the anonymous worker on MTurk:
r n b q k b n r
p p p p p p p p
. . . . . . . .
. . . . . . . .
. . . . P . . .
. . . . . . . .
P P P P . P P P
R N B Q K B N R
I fired up gnuchess as the opponent to the MTurk, and it moved Black "Nc6", so here is where the game is at now:
r . b q k b n r
p p p p p p p p
. . n . . . . .
. . . . . . . .
. . . . P . . .
. . . . . . . .
P P P P . P P P
R N B Q K B N R
Tuesday, November 20, 2012
Chess Info
Chess moves are generally recorded using "Algebraic Notation" as per the FIDE Handbook Appendix C. An open source Chess playing engine is GNU Chess.
It turns out that OS X already has the sjeng text-based chess engine built in at: /Applications/Chess.app/Contents/Resources/sjeng.ChessEngine
White moves first in chess.
It turns out that OS X already has the sjeng text-based chess engine built in at: /Applications/Chess.app/Contents/Resources/sjeng.ChessEngine
White moves first in chess.
Thursday, June 28, 2012
Full Color Hologram Kickstarter
Paul Christie (of the Litiholo "instant" hologram kit that I've been using) has a new Kickstarter project for full-color instant holography.
It turns out that the existing Litiholo film is full-color sensitive, but they have not had the hologram-quality green and blue lasers available at the right cost to include in a DIY hologram kit. This Kickstarter is intended to solve that problem.
Wednesday, June 27, 2012
Thursday, June 14, 2012
Crash Space Letters 3D Print
I thickened up my letters that spell out "Crash Space" so it would do a good 3D print on the Crash Space Makerbot Cupcake CNC, here is the Thingverse thing. Since I'm not by the space too often, Theron Trowbridge went ahead and printed it for me:
I am now hoping to make a hologram of it...
I am now hoping to make a hologram of it...
Wednesday, May 23, 2012
Holography Workshop Results
The Holography Workshop at Crash Space ended up working well. All participants made working holograms. Some of the ones made early in the night had some zebra stripes that indicated a bit of vibration, but as the night went on and fewer other folks were in the space, the zebra stripes went away.
Next time I believe I am going to purchase a granite tile and put some sorbothane washers underneath to further isolate vibration.
Here are some pix:
(Photo credits: Birgit Bachler, Tyson Macdonald)
Next time I believe I am going to purchase a granite tile and put some sorbothane washers underneath to further isolate vibration.
Here are some pix:
Monday, April 23, 2012
Holography Workshop at Crash Space
I'll be doing a holography workshop at Crash Space, sign up at THIS LINK - spaces will go fast!
Holography Workshop
Instructor: Thomas Edwards
Thursday, May 10, 2012
8PM
10526 Venice Boulevard Culver City, CA 90232
7:30 PM - We'll do some laser cutting of hologram holders, come by if you wish to watch!
8:00 PM - Please arrive by 8PM so we can get going on time!
Starting at 8PM, we'll quickly review holography theory, then we will get to making holograms! We'll run two hologram making systems, and each exposure takes about 5 minutes.
While some people are making holograms, others will be assembling hologram holders, complete with a display laser and power supply, which you will take home. Everyone will get two attempts to make a hologram to ensure everyone goes home with at least one working one. One attempt will be the red matchbox car below, your second attempt can be something you bring from home, but it needs to be small (fit within a 2 inch cube) and preferably reflect red light well (not black, blue, green, but perhaps silver, white, red). The holograms themselves are 2x3 inches.
Cost: $55
Class Limit: 10 people
Your results will look something like this:
Monday, April 16, 2012
Friday, April 13, 2012
Dorkbot SoCal April 22
Dorkbot SoCal 49
***** Sundary, April 22, 2012***** 2:00pm
***** ATX Stage (near ATX Kitchen)
***** Atwater Crossing
***** 3245 Casitas Ave
***** Los Angeles, CA 90039
Jay Yan
http://www.jay-yan.com
Jay Yan is an artist from Los Angeles focusing mostly on interactive projections in relations to architectural form. He did his studies at UCLA's Design|Media Art and his work has been shown all over the world from Den Haag to Sao Paulo. He will talk about his current and past works involving interactive projections and projection art in relations to architecture.
Rob Ray
http://robray.net
Electronic artist and fabricator Rob Ray has spent the last nine years integrating and maintaining alternative energy technologies for electronic artworks in the extreme climate of the militarized salt flats of Wendover, Utah. His projects have included the circuitry and power generation of a radio tower designed and built by Deborah Stratman, a push-button system for film projection and viewing, and interpretive audio kiosks for the Center for Land Use Interpretation, in addition to his own artworks. Rob will present his experiences and research from these projects. Rob will also explore the technical, fiscal, and creative implications of alternative energy technologies on sound, video, and interactive artworks.
Chris Reilly
http://www.chris-reilly.org/
Chris Reilly is a Los Angeles-based artist, writer, hacker and teacher. He received his BFA with a focus on New Media from the School of the Art Institute of Chicago in 2006. Chris is currently employed as a mobile game developer at 3CD, an author at Lynda.com and a teaching and research assistant at UCLA's Design| Media Art department. Since 2003, Chris has shown work in several solo and group art exhibitions in the US and Europe; he works with modded video games, virtual/augmented reality, scripting/programming and kinetic sculpture. Chris wears many hats professionally: mobile game developer; web programmer; digital fabrication specialist; small business owner; open-source hardware/ software developer.
Monday, March 05, 2012
Wednesday, February 29, 2012
Another great Dirac Notation video
If you are still feeling a bit unclear about Dirac (Bra-Ket) notation for quantum computing (and other quantum mechanics), check out this awesome lecture by Oxford professor Professor J.J. Binney:
DNA11 Portrait science
Lane 1 & 10: Molecular rulers
Lane 2: GTGAGGCGTC, OPC-02
Lane 3: AGCGCCATTG, OPD-11
Lane 4: GTGTGCCCCA, OPD-08
Lane 5: TGCGGCTGAG, OPE-14
Lane 6: AGTCAGCCAC, OPA-03
Lane 7: GTGATCGCAG, OPA-10
Lane 8: AGGTGACCGT, OPA-18
Lane 9: GTCGCCGTCA, OPD-03
The OPx primers appear to come from Operon Technologies, Inc.
There are only 6 lanes in the DNA11 mini-portrait, so it is unclear which subset of those primers are used in the mini-portrait. I'll have to email them!
Update: DNA11 says "The markers utilized for mini gels are OPC-02, OPD-03, OPD-08, and OPD-11. However, the order in which they appear in the lanes is randomized to ensure that even closely related individuals get a very unique portrait. We do this for mini and full size portraits."
Litiholo jumps to 4"x5" hologram plates
Litiholo now has an upgrade kit to 4x5 inch plates. This appears to include an upgrade to a 20mW laser (I suspect the existing laser is 5mW). Cost is $149.
It isn't clear if you need the existing $99.99 2x3 inch plate transmission hologram kit for the upgrade. If so, that is a bit weird, as the upgrade kit comes with a new laser, new laser mount, new spacer, and new plateholder - isn't that pretty much everything from the 2x3 inch kit?
It is a bit clearer that you need to have the existing reflection hologram upgrade kit if you expect to use the 4x5 inch upgrade for reflection holograms. The 4x5 inch refill kit is about $13 per plate, a big step up from the 2x3 inch refill kit which is $4 per plate.
Anyway, this is a pretty cool development. I wonder if it is as easy to make 4x5 inch holograms using the litiholo film as it is to make the 2x3 ones. That is more area of the plate to vibrate during the exposure. I'm putting this one on the wish list, but my first goal is to
Tuesday, February 21, 2012
Cryoscope - temperature Phy2Phy
Check out the Cryoscope - temperature-based physical-to-physical (Phy2Phy) interaction!
Thursday, February 16, 2012
Grover's Algorithm for Idiots (and Computer Scientists)
Physicists need to figure out how to make the concepts of quantum computing easier to understand for computer scientists. Gate & qubit based QC simulation consists exclusively of the matrix algebra of multiplying state vectors by unitary matrix operators. All of this bra-ket notation is unfamiliar and needlessly complex! (OK, at least for the "obvious basis functions" of gate-based QC).
So download QCF and fire up Octave and we'll get going with a real example of Grover's Algorithm, except you may actually be able to understand what I doing this time!
First, add the QCF path:
octave-3.4.0:1> addpath("/pathtoqcf/qcf")
Now we'll set up a 2-qubit state vector, which of course will have 2^2=4 states. The state vector will be initiated to 100% probability of being in state #0, which represents binary string "00":
octave-3.4.0:2> psi=bin2vec("00")
psi =
1
0
0
0
To be clear, the column vector psi (what physicists would call a "ket", or |psi>) is a representation of the possible quantum states of the qubits. Here in a 2-qubit system, the first entry refers to the state of 2 qubits being "00". The second entry refers to the state of the 2 qubits being "01", the 3rd "10", and the 4rth "11". You take the absolute square of the states to determine what their probability is. In this case, the probability of the 2 qubits being "00" is 1*1=1, or 100%, and the probability of the 2 qubits being any of the other states is 0*0=0, or 0%. So we can say these qubits have a 100% chance of being "00" when measured.
Now here is the 2-qubit (i.e. 4 state) Walsh Hadamard operator:
octave-3.4.0:3> H=hadamard(2)
H =
0.50000 0.50000 0.50000 0.50000
0.50000 -0.50000 0.50000 -0.50000
0.50000 0.50000 -0.50000 -0.50000
0.50000 -0.50000 -0.50000 0.50000
Which we will apply (using multiplication as always) to our state vector to make it an even superposition possibility of all possible states:
octave-3.4.0:4> psi=H*psi
psi =
0.50000
0.50000
0.50000
0.50000
Now the probability of the 2 qubits being in any of the possible states ("00","01","10","11") is 0.5*0.5=0.25, or 25%. If you were to measure them now, all states are equally possible.
OK, now we are initialized and ready to go. We are going to repeat the algorithm loop about (pi/4)*sqrt(number of states). In our case, that is 1.57 times. So we only need to iterate once, thus making the example pretty simple.
We first will apply the "oracle" operator, which inverts the element of the state vector that we are searching for. Just how we really make the oracle operator using quantum computing I hope to show in a later blog post (really!)
QCF has a way to make you an oracle operator based on an algorithmic function. Here is my oracle algorithmic function, which returns a "1" for state #2 (meaning qubit state "10", and I am counting the states up from zero), and "0" for everything else, which I will save as "oracle.m":
function b = oracle(i)
%true for x='10' i.e. state #2
if i==2
b=1;
else
b=0;
end
We feed that into QCF's "vf" function, which bakes you up an oracle unitary matrix operator based on my algorithmic function oracle over 2 qubits (i.e. 4 states):
octave-3.4.0:5> V_oracle=vf('oracle',2)
V_oracle =
1 0 0 0
0 1 0 0
0 0 -1 0
0 0 0 1
And you can see where state #2 is going to be inverted. So let's apply the oracle operator:
octave-3.4.0:6> psi=V_oracle*psi
psi =
0.50000
0.50000
-0.50000
0.50000
Now here comes the Grover's diffusion operator. Some people will tell you the diffusion operator is:
Well, in case you can't parse that crazy bra-ket physics-talk, the diffusion operator actually is defined as a unitary matrix like this:
A[i,j]=2/N for i<>j, A[i,i] = -1 + 2/N
A little easier to understand, huh? Best of all, you don't need to write a function to build this matrix, QCF will bake up your diffusion operator as well, here is the q-qubit (4 state) version:
octave-3.4.0:7> D=ia(2)
D =
-0.50000 0.50000 0.50000 0.50000
0.50000 -0.50000 0.50000 0.50000
0.50000 0.50000 -0.50000 0.50000
0.50000 0.50000 0.50000 -0.50000
Now apply the diffusion operator to the state vector:
octave-3.4.0:8> psi=D*psi
psi =
0.00000
0.00000
1.00000
0.00000
In this trivial example after one iteration, the desired state (#2 counting up from 0 again, corresponding to the qubits being "10") already has a 100% probability of being measured. In case you don't believe me, go ahead and measure the qubits:
octave-3.4.0:9> measure(psi)
ans =
0
0
1
0
Or in terms of qubit binary values themselves:
octave-3.4.0:10> pretty(measure(psi))
ans = 1|10>
where 1|10> means a 100% chance of being in state "10". Wasn't that easy????
Thursday, January 26, 2012
Laser Cut Litiholo Holographic Plate Holder Take 2
So this time I did an EPS export from Inkscape, then used OS X Preview to convert to PDF, which imported OK into Corel Draw running the Crash Space Epilog laser cutter, and it appears that the geometry was not distorted, hurrah!
[That is a hologram of a mold of my teeth from when I got braces when I was a teenager BTW]
Sunday, January 22, 2012
Linear Algebra for Quantum Computing
Even if you took Linear Algrebra, you might be confused by all the linear operations in Quantum Computing, mainly because the physicists use slightly different notation than mathematicians.
This video from USEQIP 2011 provides a lot of points to help you decipher quantum physics notation:
Friday, January 20, 2012
Subscribe to:
Posts (Atom)