{"action":"created","issue":{"url":"https://api.github.com/repos/iliis/BA/issues/3","labels_url":"https://api.github.com/repos/iliis/BA/issues/3/labels{/name}","comments_url":"https://api.github.com/repos/iliis/BA/issues/3/comments","events_url":"https://api.github.com/repos/iliis/BA/issues/3/events","html_url":"https://github.com/iliis/BA/pull/3","id":79974161,"number":3,"title":"Rewrite Part 2","user":{"login":"iliis","id":933300,"avatar_url":"https://avatars.githubusercontent.com/u/933300?v=3","gravatar_id":"","url":"https://api.github.com/users/iliis","html_url":"https://github.com/iliis","followers_url":"https://api.github.com/users/iliis/followers","following_url":"https://api.github.com/users/iliis/following{/other_user}","gists_url":"https://api.github.com/users/iliis/gists{/gist_id}","starred_url":"https://api.github.com/users/iliis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iliis/subscriptions","organizations_url":"https://api.github.com/users/iliis/orgs","repos_url":"https://api.github.com/users/iliis/repos","events_url":"https://api.github.com/users/iliis/events{/privacy}","received_events_url":"https://api.github.com/users/iliis/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-05-23T22:39:31Z","updated_at":"2015-05-25T09:07:15Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/iliis/BA/pulls/3","html_url":"https://github.com/iliis/BA/pull/3","diff_url":"https://github.com/iliis/BA/pull/3.diff","patch_url":"https://github.com/iliis/BA/pull/3.patch"},"body":"So, Schluss für heute. Das wichtigste ist da und läuft, wenn auch noch nicht ganz korrekt... Basically sind wir wieder gleich weit wie vorher, dafür mit viel schönerem Code.\r\n\r\nDie Änderungen im Schnellüberblick:\r\n- Es werden jetzt überall Spaltenvektoren verwendet.\r\n- Die Koordinatensysteme entsprechen jetzt denen in https://github.com/iliis/BA/raw/rewrite/matlab/coordinate_systems.pdf\r\n  Die umgekehrte V-Achse der Bildkoordinaten ist irgendwie echt dämlich. Man muss jetzt aufpassen, dass die Itensitäts- und Tiefen-Bilder aufm Kopf übergeben werden, bzw. immer intensity_sample() verwenden :/\r\n- vollautomatische Jacobians sind implementiert: die Funktionen rufen sich selber symbolisch auf und leiten sich dann selber ab. Sehr elegant und saulangsam.\r\n- Ein paar weitere Tests\r\n\r\nWas als nächstes zu tun ist:\r\n- Wie rum wollt ihr eure Euler Winkel? ZYZ wie hier http://www.easyspin.org/documentation/eulerangles.html? ZYX wie das Matlab per default macht?\r\n- Wie rum soll die Tranformation gehen?\r\n  Momentan werden Punkte mit R*P+T verarbeitet. Das ist simpel, entspricht aber dem inversen der eigentlichen Kamerabewegung (er werden Punkte und nicht Koordinatensysteme/Kameras verschoben). Ich fänds eigentlich eleganter, wenn bei der Odometrie direkt interpretierbare Zahlen rauskommen, aber wie ihr wollt.\r\n- Sobald obere Punkte geklärt sind Test für die entsprechenden Funktionen schreiben (hauptsächlich camera_transform() und dann camera_warp())\r\n- Tests für die Jacobians. Evtl. mal ein oder zwei Fälle von Hand durchrechnen und sicher numerisch ableiten.\r\n\r\nFalls du mit dem Code rumspielen willst:\r\n- setup.m ausführen (da muss das cd() wohl erst rausgenommen werden, evtl. vergessene Pfade hinzufügen ;))\r\n- Testscripte sind in test_scripts: test_simple_warping.m plottet die gewarpten Punkte und test_minimization_gui.m lässt die verschiedenen Minimierungsverfahren laufen. Gradient Descent läuft auf den ersten Blick in die richtige Richtung, aber auch nur wenn man den Gradienten invertiert...\r\n- unittests können mit run_unittests.m laufengelassen werden (die müssten alle durchlaufen)\r\n\r\nHave fun..."},"comment":{"url":"https://api.github.com/repos/iliis/BA/issues/comments/105173934","html_url":"https://github.com/iliis/BA/pull/3#issuecomment-105173934","issue_url":"https://api.github.com/repos/iliis/BA/issues/3","id":105173934,"user":{"login":"PascalGohl","id":1766647,"avatar_url":"https://avatars.githubusercontent.com/u/1766647?v=3","gravatar_id":"","url":"https://api.github.com/users/PascalGohl","html_url":"https://github.com/PascalGohl","followers_url":"https://api.github.com/users/PascalGohl/followers","following_url":"https://api.github.com/users/PascalGohl/following{/other_user}","gists_url":"https://api.github.com/users/PascalGohl/gists{/gist_id}","starred_url":"https://api.github.com/users/PascalGohl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PascalGohl/subscriptions","organizations_url":"https://api.github.com/users/PascalGohl/orgs","repos_url":"https://api.github.com/users/PascalGohl/repos","events_url":"https://api.github.com/users/PascalGohl/events{/privacy}","received_events_url":"https://api.github.com/users/PascalGohl/received_events","type":"User","site_admin":false},"created_at":"2015-05-25T09:07:15Z","updated_at":"2015-05-25T09:07:15Z","body":"sieht auf den ersten blick schon sehr gut aus. bei mir laufen die test aber nicht alle erfolgreich. evt hab ich gerade pech/glück mit den random zahlen. ich empfehle daher in unitest einen fixen seed für die zufallszahlen zu verwenden und dafür aber mehrere durchläufe testen."}}