5 Commits

Author SHA1 Message Date
2937de6fcd
controller: apply range checking after applying elevation mask
This should work better by not causing command errors when trying to
move to postures that would be masked out anyway.
2024-07-06 13:31:59 -07:00
b0aac111a2
controller: implement elevation mask
There's not really any analogous concept for azimuth. This is for a
specific piece of hardware, so there's no real point in making it more
generic. This is respected at the 180 degree point as well, for
software that can handle flipped rotation configurations.

This doesn't currently play well with the elevation offset setting,
which should be applied after this clamping operation. Either this
needs to be moved to the API layer or (more appropriately) the input
range validation needs to move in the controller.
2024-07-06 13:04:55 -07:00
bd465af30d
rotctl: hook up remaining interface
This is missing a little bit of input validation, e.g. we don't
currently check that set_position azimuth and elevation are actually
in the range that the controller can possibly move.

The geodetic north offset configuration value is applied in when
computing the current position, but I think there are still some
slightly fiddly edge cases around it and I haven't actually figured
out which direction I want the sign to be.

The various pieces appear to be functional, so next up will be figuring
out what all the problems are with some hardware in the loop.
2024-07-05 00:32:42 -07:00
dbbb5c1748
rotctl: hook up P interface
This appears to work. Now all that remains is doing the rest of the
work.
2024-07-03 17:44:26 -07:00
c8bec6a7c5
start writing control and config functionality
In theory, this will poll the feedback lines, but in practice, it
probably crashes or catches on fire or something.
2024-07-03 16:06:49 -07:00