Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
239 commits
Select commit Hold shift + click to select a range
45e96eb
Add comments about the IMU
Sep 21, 2024
dcb47b5
Add comments about IMU
Dec 30, 2024
100b199
Create temporary environment_imu.yml file with numpy-quaternion
Jun 1, 2025
27d4d7d
Init. commit of the temporary README_IMU.md with instructions
Jun 1, 2025
80b639b
Replace conda environment_imu.yml with pip requirements
Jun 1, 2025
f2b50d3
Update README_IMU.md with setup instructions
Jun 1, 2025
fff26cf
Convert IMU measurement to numpy quaternion
Jun 1, 2025
bfb0056
requirements_imu.txt: Fix - numpy-quaternion now installs correctly
Jun 7, 2025
2407738
Move pip packages from requirements_imu to requirements_dev to try to…
Jun 7, 2025
81dd002
Commit imu_simple_test.py to do basic tests of the IMU and print resu…
Jun 8, 2025
56f94dc
Refactor
Jun 10, 2025
9361d13
Resolve merge conflict
Jun 22, 2025
ab1ba5c
Add comments to clarify that it should scalar-first quaternion
Jun 9, 2025
450a2e3
Disable rotating the IMU axes - use its native axes
Jun 9, 2025
7648c38
Remove calls to using Euler angles
Jun 9, 2025
96d052c
imu_pi: Disable "pos" (Euler angles)
Jun 9, 2025
ca5cbd8
imu_pi: Convert avg_quat to numpy quaternion to avoid ambiguity over …
Jun 9, 2025
996d937
integrator: Change over from using imu_pos to quaternions. Still in p…
Jun 9, 2025
28e64ba
Rename --> imu_print_measurements.py. Add usage in README_IMU.md
Jun 21, 2025
5cd93c4
Initial commit of pointing_model.py
Jun 21, 2025
07ba1e1
Add comments
Jun 21, 2025
150dc89
pointing_model.py - remove unused funcs for now
Jun 21, 2025
001b2d1
pointing_model: Add func
Jun 21, 2025
64fadc1
pointing_model: Rename func
Jun 21, 2025
756c5be
Modify integrator.py to use quaternion-based IMU dead-reckoning
Jun 21, 2025
77b1b88
Add comments
Jun 21, 2025
e7b50ea
Fix typo
Jun 21, 2025
e96b71b
Edit comment
Jun 21, 2025
983476f
Change usages of imu["pos"] to imu["quat"]
Jun 21, 2025
08d3004
Fix so that it's '..' inside "..."
Jun 21, 2025
44f12b2
Removed astro_data/comets.txt that was mistakenly committed
Jun 22, 2025
4de737a
Remove PiFinder/python/tetra3 that was mistakenly added.
Jun 22, 2025
7f61c7e
Update README
Jun 22, 2025
0ad8b44
Initialize imu["quat"] and imu["avg_quat"] to None rather than np.qua…
Jun 22, 2025
921d2da
Move to pointing_model/README.md
Jun 24, 2025
8177b6b
Update README with theory
Jun 24, 2025
968e65f
Add pointing_model.get_quat_angular_diff()
Jun 25, 2025
5ceb464
Use quaternion-based difference for deciding if the camera was still …
Jun 25, 2025
f718879
solver.py: Disable "imu_pos"
Jun 25, 2025
d4f012f
camera_interface: Convert pointing_diff radians to degrees to be comp…
Jun 25, 2025
d011b5b
Fix missing/incorrect import of pointing_model
Jun 25, 2025
3e9e0d2
pointing_model: Fix np.arctan2 in this version rather than np.atan2
Jun 25, 2025
b45056f
Define max_imu_ang_during_exposure in solver.py; a threshold for last…
Jun 25, 2025
877361e
Temporarily disable printing IMU quaternions to status.py
Jun 25, 2025
ebfa023
Restored the old IMU code blocks --> Camera now works in Focus mode
Jun 26, 2025
54618e7
camera_interface.py: Reverted to pointing_diff calculation using quat…
Jun 26, 2025
51cf757
Store quaternion measurements as np.quaternion type in state --> Came…
Jun 26, 2025
c753be1
Shared state: imu["quat"] stores numpy.quaternion --> Camera runs in …
Jun 26, 2025
3011269
integrator.py: Use quaternion ang. diff to switch to IMU tracking in …
Jun 27, 2025
12cb497
integrator.py: Refactor
Jun 27, 2025
95c0e82
integrator.py: Disable old calculation of Altaz
Jun 27, 2025
91eab69
Add comments
Jun 27, 2025
b957209
Need to change dictionary solve in both integrator.py and solver.py -…
Jun 27, 2025
5917e79
Fix at scope: Missing name space pointing.
Jun 27, 2025
a01bb0a
Edit comment
Jun 27, 2025
9b9ddf8
Fix at scope: Typo
Jun 27, 2025
d04d17b
Debug at scope: Increased threshold for using IMU tracking to 0.1 deg…
Jun 27, 2025
8fd5ef1
imu_pi.py: Disable BNO055 config to rotate the IMU data
Jun 27, 2025
f7e194b
Disable using the old method to calculate Euler angles (imu["pos"])
Jun 28, 2025
5b9441c
Update comments
Jun 28, 2025
752d3b1
Remove debug logging that was added that was dumping too much to the …
Jun 28, 2025
4eb04d5
Additional logging printing for debugging
Jul 5, 2025
9a10120
Rename func
Jul 5, 2025
8ab3613
Add new class ImuDeadReckoning
Jul 5, 2025
8143282
Update ImuDeadReckoning() class
Jul 5, 2025
6d25aa4
Remove unused dictionary entry (now using the new ImuDeadReckoning() …
Jul 5, 2025
42b5943
Update integrator.py to use ImuDeadReckoning()
Jul 5, 2025
7a181b8
Debug on PiFinder in test mode --> The charts move up/down and left/r…
Jul 5, 2025
01b7304
Remove cached astro_data/comets.txt
Jul 5, 2025
4efc862
Fix .gitignore to ignore astro_data/comets.txt
Jul 5, 2025
44961cf
Correct spelling in comments
Jul 12, 2025
733a349
Update README. Tested and runs OK. Reproduces functionality of the ex…
Jul 12, 2025
5626e65
Add __init__.py to pointing_model/
Jul 12, 2025
e5b5409
Refactor: Define axis_angle2quat()
Jul 18, 2025
6343fdd
Update README
Jul 18, 2025
52915ee
First attempt at non-upright support using roll offset
Jul 18, 2025
4b6bd1e
Fix bug -runs on PiFinder in simulation mode
Jul 18, 2025
fa008f4
Update README with EQ approach
Aug 10, 2025
e692a45
Move helper functions to quaternion_transforms.py
Aug 10, 2025
9bc3b40
Update name space of quaternion functions
Aug 10, 2025
c201a76
Move ImuDeadReckoning to imu_dead_reckoning.py
Aug 10, 2025
3c63e70
Fix import of custome package
Aug 10, 2025
d4d3cf4
Add ImuDeadReckoningEq and associated funcs for EQ frame
Aug 10, 2025
22975e0
Refactor integrator.py to encapsulate the altaz calculation
Aug 10, 2025
ebdf43f
Refactor integrator.py - Encapsulate another code block out of the wh…
Aug 10, 2025
e25bc3d
Fix - use last_image_solve to calculate cam2scope_offset
Aug 10, 2025
8a54b11
Refactor
Aug 10, 2025
bf081d7
Update comments
Aug 10, 2025
f6e6c7c
Use flag in ImuDeadReckoning rather than solved["Alt"] to determine i…
Aug 10, 2025
2e96a28
Add helper functions of the EQ versions (currently just a copy of the…
Aug 10, 2025
cc01e65
Refactor: Move if to where funcs are called
Aug 10, 2025
3185cb3
integrator.py: Modify the EQ version
Aug 10, 2025
90585e0
Init commit of RaDecRoll data class
Aug 10, 2025
9a0a4ff
Draft: calculating q_cam2scope (alignment)
Aug 10, 2025
1433995
Reorder
Aug 11, 2025
c11dfa4
Fix
Aug 11, 2025
2358dce
Fix: was not returning ra, dec of scope
Aug 11, 2025
28e9065
Set alignment between scope and camera
Aug 11, 2025
71bb9f1
Add comments
Aug 11, 2025
81a4382
Remove Horiz version
Aug 16, 2025
360144f
integrator.py: Fix to get it working for EQ version
Aug 16, 2025
f3cf177
Remove unused code block
Aug 16, 2025
e27e62b
Move initialization of logger to outside try:
Aug 16, 2025
dd3e891
Move init of solved dict to external module. Desktop-tested.
Aug 16, 2025
8800051
Remove setting of flip_alt_offset --> Not used. Desktop-tested.
Aug 16, 2025
7ad624d
Remove setting of location and datetime in the integrator.py loop -->…
Aug 16, 2025
2b22c0f
Remove unused datetime. Desktop-tested.
Aug 16, 2025
2f93f08
Rename func
Aug 16, 2025
060f65a
Refactor to set_alignment(). Desktop-tested.
Aug 16, 2025
8395eb9
Lint and update comments
Aug 16, 2025
6df3a18
Add comment
Aug 16, 2025
0aee663
Rename class to ImuDeadReckoning . Desktop-tested.
Aug 16, 2025
0e95c07
Add .get() methods
Aug 16, 2025
6a0861a
Add type hints
Aug 16, 2025
1af8e9a
Add comments
Aug 16, 2025
594354e
Add comments
Aug 16, 2025
ee27efd
Type hints. Desktop-check
Aug 16, 2025
47b4194
Re-order
Aug 16, 2025
30a15ae
Import RaDecRoll
Aug 16, 2025
5cf8aae
Add TODO
Aug 16, 2025
26e1681
Add sky test notes. --> Sky test OK
Aug 16, 2025
d6fa83f
Fix tuple type hints
Aug 17, 2025
536cbc4
Remove else: for clarity
Aug 17, 2025
2206da7
RaDecRoll: Make it a @dataclass and ddd support for None
Aug 17, 2025
5c4fbf7
Add note
Aug 17, 2025
7ce3303
imu_dead_reckoning: Disallow None as input to keep the interface clea…
Aug 17, 2025
431cbbf
Fix missing import
Aug 17, 2025
c8097f8
Rename object pointing_tracker --> imu_dead_reckoning to make it more…
Aug 17, 2025
a08d1a3
Remove returning unused dead_reckoning_flag
Aug 17, 2025
3a01c1c
Change invalid imu measurement from None to np.nan. Desktop-tested
Aug 17, 2025
15b0fe9
Remove unused code
Aug 17, 2025
85b39df
Move to class-level type hints
Aug 17, 2025
213d272
Rename confusing func name
Aug 17, 2025
d46c0cc
Move calculation of screen direction quaternion to a separate func fo…
Aug 17, 2025
020b880
screen_direction: Sketch other types. use axis_angle2quat() for flat …
Aug 17, 2025
a8eeab0
Fix latex equation formatting
Aug 17, 2025
e38ccab
Add photo and explanation in README for q_imu2cam
Aug 17, 2025
0c8510a
Move assert location for clarity.
Aug 17, 2025
6e4c519
Update README
Aug 17, 2025
f7ce9f4
Update q_imu2cam transformations for other types (not all done yet)
Aug 17, 2025
603fb05
Update comments
Aug 17, 2025
a566de2
Remove commented out code that change the IMU output axes.
Aug 17, 2025
3e31adf
Add type hints to integrator
Aug 17, 2025
af30980
Update README
Aug 17, 2025
9a09ec3
Reorder input parameter order for consistency
Aug 17, 2025
07f24f1
Update set_screen_direction with v3 Flat and as_dream
Aug 19, 2025
c15c12a
Update comments
Aug 19, 2025
700f77c
Add get_roll_by_mount_type(). --> Desktop-tested
Aug 19, 2025
4ce0012
Updated README with sky test observations --> Sky Test
Aug 19, 2025
b9df702
Update TODO
Aug 19, 2025
c7b65f0
Update altaz in integrator.py to see if this helps with the catalog i…
Aug 19, 2025
8d4346f
Refactored altaz calcuatlion. Now catalog works in altaz mount mode.
Aug 20, 2025
c0d1a88
Add note
Aug 20, 2025
e337805
Update README
Aug 20, 2025
06ac224
Add note to requirements_dev.txt
Aug 20, 2025
a80cc17
Merge branch 'main' into imu_quat_eq_coords
Aug 20, 2025
f3acc7c
Ruff: camera_interface.py
Aug 20, 2025
215f78a
Ruff: imu_pi.py
Aug 20, 2025
3921c81
Ruff: imu_print_measurements.py
Aug 20, 2025
f84b6e7
Move imu_print_measurements.py to pointing_model/
Aug 20, 2025
8836d36
Ruff: integrator.py
Aug 20, 2025
36e5709
Ruff: astro_coords.py
Aug 20, 2025
db274ce
Ruff: imu_dead_reckoning.py
Aug 20, 2025
684228a
Ruff: quaternion_transforms.py
Aug 20, 2025
b8e0a95
Move pip numpy-quaternion from requirements_dev.txt to requirements.txt
Aug 20, 2025
9d8e756
Fix screen_direction calculation bug for as_dream
Aug 20, 2025
bea3d50
Convert np.quaternion --> quaternion.quaternion to be compatible with…
Aug 20, 2025
355dc10
requirements.txt: Fix missing =
Aug 20, 2025
270a295
Ruff: imu_pi.py: Remove config that's no longer used because screen_d…
Aug 20, 2025
0c46ce1
Ruff
Aug 20, 2025
8be03fd
Fix type hints
Aug 20, 2025
92b898d
Lint
Aug 23, 2025
001da05
RaDecRoll: Add .initialize() method
Aug 26, 2025
312d6cd
Rename --> .reset()
Aug 26, 2025
d89455c
RaDecRoll: Add method to set using quaternions
Aug 26, 2025
daf4391
Change to using RaDecRoll class for inerfacing
Aug 26, 2025
06c636f
Update comments
Aug 26, 2025
4f7edd6
Update README
Aug 26, 2025
40b0466
Fix circular import. Desktop test --> OK
Aug 26, 2025
90d0620
Nox format
Aug 26, 2025
8b4de54
Fix issue from linting that was causing align to fail
Aug 31, 2025
af358e3
Refactor. Destop test --> OK (inc. align)
Aug 31, 2025
60b78ea
Move functionality from integrator.py to imu_dead_reckoning.py
Sep 6, 2025
a79f922
Add commens. Update README
Sep 6, 2025
b831815
astro_coords: Remove dependence on quaternion_transforms
Sep 6, 2025
ffb9883
Rename func --> get_q_eq()
Sep 6, 2025
842c727
Remove commented out code block
Sep 6, 2025
264a242
Update README issues list
Sep 21, 2025
b966269
Now shows RA difference to aim as -180 to +180 degrees rather than 0 …
Sep 21, 2025
4b91d20
README - detail out TODO & issues
Sep 21, 2025
50952b8
Lint
Sep 21, 2025
645c072
Add quaternion to mypy.overrides to ignore type hints
Sep 21, 2025
c3c30bf
Rename --> initialized_solved_dict
Sep 22, 2025
eea1e35
Fix bug in ra_diff calculation: Was causing a crash when catalogs sel…
Sep 22, 2025
1a082d6
Remove commented out code block
Sep 22, 2025
d0146da
Remove unused IMU data: "pos", "imu_pos", etc. which stored Euler ang…
Sep 22, 2025
79f00a7
Remove "imu_pos", "pos" etc. for Euler angles
Sep 22, 2025
7ce868c
Remove unused Euler angle functions/methods quat_to_euler() and get_e…
Sep 22, 2025
642f508
Merge branch 'main' into eq_mount_imu_support
Sep 22, 2025
d6b24bf
Address TODO items
Sep 22, 2025
f534001
ToDo items: Remove unused variables
Sep 22, 2025
944a6a8
Use solve dict from astro_coords
Sep 22, 2025
70717e7
Update README
Sep 22, 2025
03fc2e3
Update README
Sep 22, 2025
04465a2
Update README
Sep 22, 2025
5f1e1cc
Remove scipy spatial rotation package import - no longer needed for E…
Sep 22, 2025
dba10b1
Nox format
Sep 22, 2025
4ad6f5b
Nox format for changes merged from main
Sep 22, 2025
cc7b008
Nox format
Sep 22, 2025
76adc31
Change requirements.txt numpy=1.26.2 --> numpy=1.26.4 preferred by nu…
Sep 27, 2025
1cdf87b
Update README - remove parts that are no longer relevant (virtual env…
Sep 28, 2025
5d4946a
Merge branch 'brickbots:release' into eq_mount_imu_support
TakKanekoGit Sep 28, 2025
8229945
Change np.quaternion --> quaternion.quaternion so that it passes Nox …
Oct 1, 2025
c642224
Remove imu_print_measurements.py -- used for debugging
Oct 1, 2025
0ecfffe
Add chamfer to avoid damaging a PiSugar component
brickbots Oct 3, 2025
e4f1e1d
Fix OSX logging levels by apply log config in each new subprocess
brickbots Oct 4, 2025
761653e
Sky-tested. Wrote notes in README.
Oct 5, 2025
1ac1f95
Merge branch 'main' into eq_mount_imu_support
Oct 5, 2025
412deff
Fix crash in screenshot if title has slash
brickbots Oct 5, 2025
040bbd9
Add issue to README
Oct 5, 2025
084bc4a
Fix typo in pyproject.toml --> Should pass nox
Oct 5, 2025
fae4033
Fix: adapt to changes in imu_pi.py from merging main
Oct 5, 2025
ce12196
Add details to issue in README
Oct 5, 2025
bb214d0
configurable GPS baud rate (#345)
d33psky Oct 8, 2025
085877d
WDS fixes (#352)
mrosseel Oct 8, 2025
3e764bf
Fix 1 offset in bright stars catalog
brickbots Oct 8, 2025
0c363fa
Shroud with tighter tolerance
brickbots Oct 8, 2025
e2b2356
Revise main menu image
brickbots Oct 15, 2025
157d570
Merge branch 'main' into eq_mount_imu_support
Oct 17, 2025
398e538
Fix README
Oct 20, 2025
7519b7d
Edit README
Oct 21, 2025
4276701
Add test notes to README
Oct 24, 2025
2b8d178
Formatting
Oct 24, 2025
6f7e17b
Fixed q_imu2cam for 'right'
Oct 24, 2025
808ddb7
Fix rotation q_imu2cam for the "straight" type
Oct 25, 2025
3af5d57
Fix typo in comment
Oct 25, 2025
1ced258
Remove TODO in comments that's done
Oct 30, 2025
b8e09ff
Update comments
Oct 30, 2025
06df9be
Add notes from testing to README
Nov 1, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ kicad/PiFinder/PiFinder-backups
*.ps?
config.json
astro_data/hip_main.dat
comets.txt
astro_data/comets.txt

# 3d printing business
*.3mf
Expand Down
156 changes: 78 additions & 78 deletions astro_data/bright_stars.csv
Original file line number Diff line number Diff line change
@@ -1,79 +1,79 @@
N,NamedStar,LatinDesignation,RA Hr,RA Min,Dec Deg,Dec Min,Magnitude,Const
0,Acamar,Theta Eridanus,2,58.2,-40,18,3.2,Eri
1,Achernar,Alpha Eridanus,1,37.6,-57,14,0.4,Eri
2,Acrux,Alpha Crucis,12,26.5,-63,5,1.3,Cru
3,Adara,Epsilon Canis Majoris,6,58.6,-28,58,1.5,CMa
4,Albireo,Beta Cygni,19,30.6,27,57,3,Cyg
5,Alcor,80 Ursae Majoris,13,25.2,54,59,4,UMa
6,Alcyone,Eta Tauri,3,47.4,24,6,2.8,Tau
7,Aldebaran,Alpha Tauri,4,35.8,16,30,0.8,Tau
8,Alderamin,Alpha Cephei,21,18.5,62,35,2.4,Cep
9,Algenib,Gamma Pegasi,0,13.2,15,11,2.8,Peg
10,Algieba (Algeiba),Gamma Leonis,10,19.9,19,50,2.6,Leo
11,Algol,Beta Persei,3,8.1,40,57,2.1,Per
12,Alhena,Gamma Geminorum,6,37.6,16,23,1.9,Gem
13,Alioth,Epsilon Ursae Majoris,12,54,55,57,1.7,UMa
14,Alkaid,Eta Ursae Majoris,13,47.5,49,18,1.8,UMa
15,Almaak (Almach),Gamma Andromedae,2,3.8,42,19,2.2,And
16,Alnair,Alpha Gruis,22,8.2,-46,57,1.7,Gru
17,Alnath (Elnath),Beta Tauri,5,26.2,28,36,1.6,Tau
18,Alnilam,Epsilon Orionis,5,36.2,-1,12,1.7,Ori
19,Alnitak,Zeta Orionis,5,40.7,-1,56,2,Ori
20,Alphard,Alpha Hydrae,9,27.5,-8,39,1.9,Hyd
21,Alphekka,Alpha Coronae Borealis,15,34.6,26,42,2.2,CrB
22,Alpheratz,Alpha Andromedae,0,8.3,29,5,2,And
23,Aishain,Beta Aquilae,19,55.2,6,24,3.7,Aql
24,Altair,Alpha Aquilae,19,50.7,8,52,0.7,Aql
25,Ankaa,Alpha Phoenicis,0,26.2,-42,18,2.3,Phe
26,Antares,Alpha Scorpii,16,29.4,-26,25,1,Sco
27,Arcturus,Alpha Bootis,14,15.6,19,10,0.1,Boo
28,Arneb,Alpha Leporis,5,32.7,-17,49,2.5,Leo
29,Bellatrix,Gamma Orionis,5,25.1,6,20,1.6,Ori
30,Betelgeuse,Alpha Orionis,5,55.1,7,24,0.5,Ori
31,Canopus,Alpha Carinae,6,23.9,-52,41,-0.6,Car
32,Capella,Alpha Aurigae,5,16.6,45,59,0,Aur
33,Castor,Alpha Geminorum,7,34.6,31,53,1.5,Gem
34,CorCaroli,Alpha Canum Venaticorum,12,56,38,19,2.8,CVn
35,Deneb,Alpha Cygni,20,41.4,45,16,1.3,Cyg
36,Denebola,Beta Leonis,11,49,14,34,2.1,Leo
37,Diphda,Beta Ceti,0,43.5,-17,59,2,Cet
38,Dubhe,Alpha Ursae Majoris,11,3.7,61,45,1.8,UMa
39,Enif,Epsilon Pegasi,21,44.1,9,52,2.3,Peg
40,Etamin,Gamma Draconis,17,56.6,51,29,2.2,Dra
41,Fomalhaut,Alpha Piscis Austrini,22,57.6,-29,37,1.2,Psc
42,Hadar,Beta Centauri,14,3.8,-60,22,0.6,Cen
43,Hamal,Alpha Arietis,2,7.1,23,27,2,Ari
44,Izar,Epsilon Bootis,14,44.9,27,4,2.5,Boo
45,Kaus Australis,Epsilon Sagittarii,18,24.1,-34,23,1.8,Sag
46,Kocab (Kochab),Beta Ursae Minoris,14,50.7,74,9,2,UMi
47,Markab,Alpha Pegasi,23,4.7,15,12,2.4,Peg
48,Megrez,Delta Ursae Majoris,12,15.4,57,1,3.3,UMa
49,Menkar,Alpha Ceti,3,2.2,4,5,2.5,Cet
50,Merck,Beta Ursae Majoris,11,1.8,56,22,2.3,UMa
51,Mintaka,Delta Orionis,5,32,0,17,2.2,Ori
52,Mira,Omicron Ceti,2,19.3,-2,58,6.5,Cet
53,Mirach,Beta Andromedae,1,9.7,35,37,2,And
54,Mirphak,Alpha Persei,3,24.3,49,51,1.8,Per
55,Mizar,Zeta Ursae Majoris,13,23.9,54,55,2.2,UMa
56,Nihal,Beta Leporis,5,28.2,-20,45,2.8,Lep
57,Nunki,Sigma Sagittarii,18,55.2,-26,17,2,Sag
58,Phad,Gamma Ursae Majoris,11,53.8,53,41,2.4,UMa
59,Polaris,Alpha Ursae Minoris,2,31.8,89,15,2,UMi
60,Pollux,Beta Geminorum,7,45.3,28,1,1.2,Gem
61,Procyon,Alpha Canis Minoris,7,39.3,5,13,0.4,CMi
62,Rasalgethi,Alpha Herculis,17,14.6,14,23,3.4,Her
63,Rasalhague,Alpha Ophiuchi,17,34.9,12,33,2,Oph
64,Regulus,Alpha Leonis,10,8.3,11,58,1.4,Leo
65,Rigel,Beta Orionis,5,14.5,-8,12,0.2,Ori
66,Sadalmelik,Alpha Aquarii,22,5.7,0,19,2.9,Aql
67,Saiph,Kappa Orionis,5,47.7,-9,40,2,Ori
68,Scheet,Beta Pegasi,23,3.7,28,4,2.4,Peg
69,Shaula,Lambda Scorpii,17,33.6,-37,6,1.6,Sco
70,Shedir (Shedor),Alpha Cassiopeiae,0,40.5,56,32,2.2,Cas
71,Sirius,Alpha Canis Majoris,6,45.1,-16,42,-1.4,CMa
72,Spica,Alpha Viriginis,13,25.1,-11,9,1,Vir
73,Tarazed,Gamma Aquilae,19,46.2,10,36,2.7,Aql
74,Thuban,Alpha Draconis,14,4.3,64,22,3.6,Dra
75,Unukalhai,Alpha Serpentis,15,44.2,6,25,2.6,Ser
76,Vega,Alpha Lyrce,18,36.9,38,47,0,Lyr
77,Vindemiatrix,Epsilon Virginis,13,2.1,10,57,2.8,Vir
1,Acamar,Theta Eridanus,2,58.2,-40,18,3.2,Eri
2,Achernar,Alpha Eridanus,1,37.6,-57,14,0.4,Eri
3,Acrux,Alpha Crucis,12,26.5,-63,5,1.3,Cru
4,Adara,Epsilon Canis Majoris,6,58.6,-28,58,1.5,CMa
5,Albireo,Beta Cygni,19,30.6,27,57,3,Cyg
6,Alcor,80 Ursae Majoris,13,25.2,54,59,4,UMa
7,Alcyone,Eta Tauri,3,47.4,24,6,2.8,Tau
8,Aldebaran,Alpha Tauri,4,35.8,16,30,0.8,Tau
9,Alderamin,Alpha Cephei,21,18.5,62,35,2.4,Cep
10,Algenib,Gamma Pegasi,0,13.2,15,11,2.8,Peg
11,Algieba (Algeiba),Gamma Leonis,10,19.9,19,50,2.6,Leo
12,Algol,Beta Persei,3,8.1,40,57,2.1,Per
13,Alhena,Gamma Geminorum,6,37.6,16,23,1.9,Gem
14,Alioth,Epsilon Ursae Majoris,12,54,55,57,1.7,UMa
15,Alkaid,Eta Ursae Majoris,13,47.5,49,18,1.8,UMa
16,Almaak (Almach),Gamma Andromedae,2,3.8,42,19,2.2,And
17,Alnair,Alpha Gruis,22,8.2,-46,57,1.7,Gru
18,Alnath (Elnath),Beta Tauri,5,26.2,28,36,1.6,Tau
19,Alnilam,Epsilon Orionis,5,36.2,-1,12,1.7,Ori
20,Alnitak,Zeta Orionis,5,40.7,-1,56,2,Ori
21,Alphard,Alpha Hydrae,9,27.5,-8,39,1.9,Hyd
22,Alphekka,Alpha Coronae Borealis,15,34.6,26,42,2.2,CrB
23,Alpheratz,Alpha Andromedae,0,8.3,29,5,2,And
24,Aishain,Beta Aquilae,19,55.2,6,24,3.7,Aql
25,Altair,Alpha Aquilae,19,50.7,8,52,0.7,Aql
26,Ankaa,Alpha Phoenicis,0,26.2,-42,18,2.3,Phe
27,Antares,Alpha Scorpii,16,29.4,-26,25,1,Sco
28,Arcturus,Alpha Bootis,14,15.6,19,10,0.1,Boo
29,Arneb,Alpha Leporis,5,32.7,-17,49,2.5,Leo
30,Bellatrix,Gamma Orionis,5,25.1,6,20,1.6,Ori
31,Betelgeuse,Alpha Orionis,5,55.1,7,24,0.5,Ori
32,Canopus,Alpha Carinae,6,23.9,-52,41,-0.6,Car
33,Capella,Alpha Aurigae,5,16.6,45,59,0,Aur
34,Castor,Alpha Geminorum,7,34.6,31,53,1.5,Gem
35,CorCaroli,Alpha Canum Venaticorum,12,56,38,19,2.8,CVn
36,Deneb,Alpha Cygni,20,41.4,45,16,1.3,Cyg
37,Denebola,Beta Leonis,11,49,14,34,2.1,Leo
38,Diphda,Beta Ceti,0,43.5,-17,59,2,Cet
39,Dubhe,Alpha Ursae Majoris,11,3.7,61,45,1.8,UMa
40,Enif,Epsilon Pegasi,21,44.1,9,52,2.3,Peg
41,Etamin,Gamma Draconis,17,56.6,51,29,2.2,Dra
42,Fomalhaut,Alpha Piscis Austrini,22,57.6,-29,37,1.2,Psc
43,Hadar,Beta Centauri,14,3.8,-60,22,0.6,Cen
44,Hamal,Alpha Arietis,2,7.1,23,27,2,Ari
45,Izar,Epsilon Bootis,14,44.9,27,4,2.5,Boo
46,Kaus Australis,Epsilon Sagittarii,18,24.1,-34,23,1.8,Sag
47,Kocab (Kochab),Beta Ursae Minoris,14,50.7,74,9,2,UMi
48,Markab,Alpha Pegasi,23,4.7,15,12,2.4,Peg
49,Megrez,Delta Ursae Majoris,12,15.4,57,1,3.3,UMa
50,Menkar,Alpha Ceti,3,2.2,4,5,2.5,Cet
51,Merck,Beta Ursae Majoris,11,1.8,56,22,2.3,UMa
52,Mintaka,Delta Orionis,5,32,0,17,2.2,Ori
53,Mira,Omicron Ceti,2,19.3,-2,58,6.5,Cet
54,Mirach,Beta Andromedae,1,9.7,35,37,2,And
55,Mirphak,Alpha Persei,3,24.3,49,51,1.8,Per
56,Mizar,Zeta Ursae Majoris,13,23.9,54,55,2.2,UMa
57,Nihal,Beta Leporis,5,28.2,-20,45,2.8,Lep
58,Nunki,Sigma Sagittarii,18,55.2,-26,17,2,Sag
59,Phad,Gamma Ursae Majoris,11,53.8,53,41,2.4,UMa
60,Polaris,Alpha Ursae Minoris,2,31.8,89,15,2,UMi
61,Pollux,Beta Geminorum,7,45.3,28,1,1.2,Gem
62,Procyon,Alpha Canis Minoris,7,39.3,5,13,0.4,CMi
63,Rasalgethi,Alpha Herculis,17,14.6,14,23,3.4,Her
64,Rasalhague,Alpha Ophiuchi,17,34.9,12,33,2,Oph
65,Regulus,Alpha Leonis,10,8.3,11,58,1.4,Leo
66,Rigel,Beta Orionis,5,14.5,-8,12,0.2,Ori
67,Sadalmelik,Alpha Aquarii,22,5.7,0,19,2.9,Aql
68,Saiph,Kappa Orionis,5,47.7,-9,40,2,Ori
69,Scheet,Beta Pegasi,23,3.7,28,4,2.4,Peg
70,Shaula,Lambda Scorpii,17,33.6,-37,6,1.6,Sco
71,Shedir (Shedor),Alpha Cassiopeiae,0,40.5,56,32,2.2,Cas
72,Sirius,Alpha Canis Majoris,6,45.1,-16,42,-1.4,CMa
73,Spica,Alpha Viriginis,13,25.1,-11,9,1,Vir
74,Tarazed,Gamma Aquilae,19,46.2,10,36,2.7,Aql
75,Thuban,Alpha Draconis,14,4.3,64,22,3.6,Dra
76,Unukalhai,Alpha Serpentis,15,44.2,6,25,2.6,Ser
77,Vega,Alpha Lyrce,18,36.9,38,47,0,Lyr
78,Vindemiatrix,Epsilon Virginis,13,2.1,10,57,2.8,Vir
Binary file modified astro_data/pifinder_objects.db
Binary file not shown.
Binary file modified case/v2.5/pi_mount.stl
Binary file not shown.
Binary file modified case/v3/common/shroud_back.stl
Binary file not shown.
Binary file modified case/v3/common/shroud_front.stl
Binary file not shown.
1 change: 1 addition & 0 deletions default_config.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
"chart_constellations": 64,
"solve_pixel": [256, 256],
"gps_type": "ublox",
"gps_baud_rate": 9600,
"filter.selected_catalogs": [
"NGC",
"M",
Expand Down
6 changes: 3 additions & 3 deletions docs/source/dev_arch.rst
Original file line number Diff line number Diff line change
Expand Up @@ -219,12 +219,12 @@ There are three types of shared state in PiFinder
SharedStateObj(
power_state=1,
solve_state=True,
solution={'RA': 22.86683471463411, 'Dec': 15.347716050003328, 'imu_pos': [171.39798541261814, 202.7646132036331, 358.2794741322842],
solution={'RA': 22.86683471463411, 'Dec': 15.347716050003328,
'solve_time': 1695297930.5532792, 'cam_solve_time': 1695297930.5532837, 'Roll': 306.2951794424281, 'FOV': 10.200729425086111,
RMSE': 21.995567413046142, 'Matches': 12, 'Prob': 6.987725483613384e-13, 'T_solve': 15.00384000246413, 'RA_target': 22.86683471463411,
'Dec_target': 15.347716050003328, 'T_extract': 75.79255499877036, 'Alt': None, 'Az': None, 'solve_source': 'CAM', 'constellation': 'Psc'},
imu={'moving': False, 'move_start': 1695297928.69749, 'move_end': 1695297928.764207, 'pos': [171.39798541261814, 202.7646132036331, 358.2794741322842],
'start_pos': [171.4009455613444, 202.76321535004726, 358.2587208386012], 'status': 3},
imu={'moving': False, 'move_start': 1695297928.69749, 'move_end': 1695297928.764207,
'status': 3},
location={'lat': 59.05139745, 'lon': 7.987654, 'altitude': 151.4, 'gps_lock': False, 'timezone': 'Europe/Stockholm', 'last_gps_lock': None},
datetime=None,
screen=<PIL.Image.Image image mode=RGB size=128x128 at 0xE693C910>,
Expand Down
3 changes: 1 addition & 2 deletions docs/source/quick_start.rst
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,7 @@ Using the PiFinder

The PiFinder features a scolling menu with the active option highlighted in the middle of the screen.

.. image:: images/quick_start/main_menu_01_docs.png
.. image:: images/quick_start/main_menu_02_docs.png
.. image:: images/quick_start/pifinder_main_menu.png

All the features of the PiFinder are available through this menu by scrolling, selecting options
or moving to new menu screens.
Expand Down
3 changes: 3 additions & 0 deletions python/PiFinder/calc_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -168,8 +168,11 @@ def aim_degrees(shared_state, mount_type, screen_direction, target):
else:
# EQ Mount type
ra_diff = target.ra - solution["RA"]
ra_diff = (ra_diff + 180) % 360 - 180 # Convert to -180 to +180

dec_diff = target.dec - solution["Dec"]
dec_diff = (dec_diff + 180) % 360 - 180

return ra_diff, dec_diff
return None, None

Expand Down
21 changes: 14 additions & 7 deletions python/PiFinder/camera_interface.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,13 @@
import queue
import time
from PIL import Image
from PiFinder import state_utils, utils
import numpy as np
from typing import Tuple
import logging

from PiFinder import state_utils, utils
import PiFinder.pointing_model.quaternion_transforms as qt

logger = logging.getLogger("Camera.Interface")


Expand Down Expand Up @@ -111,21 +114,25 @@ def get_image_loop(
imu_end = shared_state.imu()

# see if we moved during exposure
reading_diff = 0
if imu_start and imu_end:
reading_diff = (
abs(imu_start["pos"][0] - imu_end["pos"][0])
+ abs(imu_start["pos"][1] - imu_end["pos"][1])
+ abs(imu_start["pos"][2] - imu_end["pos"][2])
# Returns the pointing difference between successive IMU quaternions as
# an angle (radians). Note that this also accounts for rotation around the
# scope axis. Returns an angle in radians.
pointing_diff = qt.get_quat_angular_diff(
imu_start["quat"], imu_end["quat"]
)
else:
pointing_diff = 0.0

camera_image.paste(base_image)
shared_state.set_last_image_metadata(
{
"exposure_start": image_start_time,
"exposure_end": image_end_time,
"imu": imu_end,
"imu_delta": reading_diff,
"imu_delta": np.rad2deg(
pointing_diff
), # Pointing change during exposure in degrees
}
)

Expand Down
2 changes: 1 addition & 1 deletion python/PiFinder/catalog_imports/bright_stars_loader.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ def load_bright_stars():
dfs = line.split(",")
dfs = [d.strip() for d in dfs]
other_names = dfs[1:3]
sequence = int(dfs[0]) + 1
sequence = int(dfs[0])

logging.debug(f"---------------> Bright Stars {sequence=} <---------------")
size = ""
Expand Down
Loading