Tuesday, October 4, 2011

Deler fra DIY-drones har kommet.

I dag kom delene fra DIY-drones! Dette blir kult. Det virker som det er relativt lett loddearbeid. Kun å lodde noen headers på det hele og så er jobben gjort. Pakken fra HobbyKing er enda ikke sendt siden det mangler en del på lager, men det blir vel etterhvert.

Har også vært i kontakt med Omega Verksted som er en gjeng oppe på NTNU som har tillgang til et eget elektronikkverksted, kult! Jeg skal få lov til å sette sammen quadcopteret der og bruke deres loddeutstyr etc. I tillegg er det jo kjekt med masse smarte folk rundt en som har peiling på alt det jeg ikke kan om elektronikk =)

Her er et bilde av delene som kom i dag:

Deler, DIY-drones

Friday, September 23, 2011

Start på QuadCopter

Jeg har startet et nytt prosjekt, bygging av et quadrocopter. Dette er en avansert fjerstyrt flyvende platform. Her er en video som forklarer litt:


Jeg gikk for Ardupilot Mega fra DIYdrones siden denne kjører på Arduinoplatformen som gjør at jeg kan programmere til den selv. Motorer og motorkontrollere kommer fra HobbyKing. Jeg planlegger å bygge rammen selv og har fått tilgang til et verksted oppe på NTNU. Her er handlelisten:

Ardupilot har 6 dof IMU med 3 akse akselerometer og 3 akse gyroskop, med dette kan man bestemme hvilken orientering quadrotoren har til enhver tid. I tillegg har den barometrisk trykksensor, denne forteller relativ høyde, 5Hz GPS som gir absolutt possisjon, og magnetometer som gir informasjon om rotasjon om vertikal akse. Med disse sensorene har Aprdupilot ganske god kontroll over hvor den er. Jeg skal selvfølgelig ikke bare bruke quadrotoren som et leketøy. Det jeg har mest lyst til å gjøre er å programmere UAV rutiner for den, slik at den blir helt selvstyrt. Målet er altså å kunne slippe kontrollen å la den kjøre showet selv. Ardupilot har allerede endel UAV funksjoner, for eksempel har den en egen backup-chip som er failsafe pilot. Denne kan du programmere til å fly tilbake til et kjent sted og lande av seg selv hvis noe skulle gå galt. Alt i alt tror jeg dette kan bli et ganske spennende robotprosjekt, vi får se hvordan det går videre!

Saturday, September 17, 2011

Sirkel released!

The first release of Sirkel was released today! It contains an implementation of the Chord DHT, and a simple storage layer with fault tolerance and replication, much similar to DHash. The DHT uses the not yet released Cloud Haskell framework with it's Erlang primitives for concurrency. It's still in it's very early stages but I've done a lot of testing and it should be reasonably stable.

Hackage
Github
CloudHaskell

Right now, this is what the DHT can do: You can run it on a local network, LAN, and in theory also on hosts directly connected to the internet, no NAT. Each node gets responsebility for a part of the key-space in the DHT. Then you can "put" and "get" all objects that are instances of Binary in and out of it. If a node leaves or disconnects, other nodes dynamically takes over the responsibility of the keys to the left node and no data is lost.

The protocol is not secure, and there is no authentication, that is, you have to trust all nodes is your system. This is an area of research and it would be really exiting to implement some sort of security into the DHT.

Now that the DHT layer is complete a lot of new doors have opened. How cool wouldn't it be to make  a distributed file-system with no single point of failure, no master controller? That's one of the things a DHT can achieve, it's structure is totally flat, and no-one is better, has more knowledge or power than anyone else. If you think distributed computing is fun, and would love a hobby project, join me in discovering what can be done with a DHT in Haskell!

Thursday, June 30, 2011

Barnes & Hut orbital simulator

After browsing Reddit one day I discovered a cool to me unknown algorithm, Barnes & Hut. I found a explenation of it here. I got some spare time now because of a flu/fever attack so I thought why not try to make something fun out of it. I setteled on a n-body orbital simulator with collisions. The algorithms where quite easy to jot down in Haskell, but I really struggeled on the visualization. In the end I did it the easy way. Each step, an SVG is created. Then a little imagemagik and ffmpeg magic makes a movie of it. I'm quite happy with the end result but I'd love to get better visualization, maybe OpenGL. If someone has an idea mail me =)

You can get the code from my github.
Here's a video: orbit

Update: I've managed to hack together an OpenGL visualizer. It's not very quick but it works for the purpose of demonstrating. I've also done some optimizations and profiling to get the code to run a bit faster, the updates source is on github.

 

PS. This post, and the code is written during a fever, so no refunds for eye-strain, errors etc. :P