desihub / desimeter

DESI coordinates and transformations
BSD 3-Clause "New" or "Revised" License
2 stars 4 forks source link

Identify requests #137

Closed joesilber closed 3 years ago

joesilber commented 3 years ago

Code now distinguishes "TRACKED" targets from "REQUESTED".

TRACKED: These are errors calculated with respect to POS_T, POS_P. They show whether we have control over the robots.

REQUESTED: Code now parses MOVE_CMD field, and identifies the requested targets from the caller. Due to anticollision, travel limits, and enabled/disabled state, the petal of course has the right to refuse some of these targets. Hence REQUESTED will vary from TRACKED in these cases. Errors calculated with respect to REQUESTED show us how well we are getting fibers to desired locations / whether our desired locations are possible.

joesilber commented 3 years ago

git checkout posmoves-tp-updates
get_posmoves --host beyonce.lbl.gov --port 5432 --password reader --petal-ids 1 --exposure-ids 3094 --pos-ids M02226,M02182,M06357,M06074,M06389,M06303,M01981,M06304,M02136,M01504,M06522,M01867,M01858,M06949,M06073,M06574 -o ~/jhsilber/posmovedata/test_3094/ -c -t
git checkout identify_requests
analyze_pos_performance -i ~/jhsilber/posmovedata/test_3094/* -o ~/jhsilber/posmovedata/test_3094/
joesilber commented 3 years ago

Example result:

image

julienguy commented 3 years ago

Thanks. I verified I can run this at nersc. So I am going to merge, but I have one comment: is there a metric that would allow us to detect an actual collision? The max error on this example is 100um, but it's not clear if it's due to a poor blind move accuracy or some friction or collision.

joesilber commented 3 years ago

Thanks. I do not have any quantitative metric, that would say a 100 um error was or was not a "glancing" collision. It's about 3x RMS error. Sort of a gray area as to whether it's a collision or something else.

One would be tempted to just run 100 targets with restricted patrol radius, but that isn't exactly comparable. Because the errors should be magnified with both arms extended.

What I can do is run my new replay.py tool and generate an animation of what the move tables say should have happened. We can look at the animation and see if there was a "close call" between that positioner and any others.

joesilber commented 3 years ago

I would be delighted if you would like to try out replay.py --- it is very useful, and I am feeling bottlenecked in terms of what I can get through in a day.