Stellarium / stellarium

Stellarium is a free GPL software which renders realistic skies in real time with OpenGL. It is available for Linux/Unix, Windows and macOS. With Stellarium, you really see what you can see with your eyes, binoculars or a small telescope.
https://stellarium.org
GNU General Public License v2.0
7.54k stars 813 forks source link

Usability of Stellarium on a boat #1913

Open mgrouch opened 2 years ago

mgrouch commented 2 years ago

I'm looking for help to 'slim' down Stellarium configuration for use on a boat. Basically I'm looking to make it perform and start faster on raspberry pi4. Use gpsd and use heading from autopilot. It shouldn't show too many stars (only visible ones in marine binoculars) It should act as augmented reality app (the ones you see on smart phones, i. e. adjust to the boat heading) Boat movements due to waves should be discarded (so only heading is a factor no IMUs pitch, roll) What can be done in stellarium config file to reduce amoutn of menus and dialogues too. It's overwhelming for this use case.

Thanks, --MG

alex-w commented 2 years ago

I'm looking for help to 'slim' down Stellarium configuration for use on a boat.

I'm afraid desktop edition of Stellarium "as is" will be not very useful in this specific case.

Basically I'm looking to make it perform and start faster on raspberry pi4.

Some speed-up can be obtaining when you disable displaying an unnecessary data for navigation (see "Configuration window" [F4] -> "Information" tab). Plus disabling plugins, like Satellites, Exoplanets, Meteor showers... Plus redice the number of Solar system bodies.

Use gpsd and use heading from autopilot.

Stellarium can use gpsd to set the location without automatisation and autopilot is unknown device for Stellarium.

It shouldn't show too many stars (only visible ones in marine binoculars)

Do not install all extra stars catalogs, probably standard package will be enough for you.

It should act as augmented reality app (the ones you see on smart phones, i. e. adjust to the boat heading) Boat movements due to waves should be discarded (so only heading is a factor no IMUs pitch, roll)

I'm afraid the support of augmented reality and IMUs is not in aim of desktop edition of Stellarium. Patches and code of plugin for support AR, IMUs, autopilot and automatization of gpsd usage are welcome.

What can be done in stellarium config file to reduce amoutn of menus and dialogues too.

No, this is impossible. But formally Stellarium can be build with other GUI (it should be implemented of course).

axd1967 commented 2 years ago

If you can build Stellarium, there are build directives and flags to reduce what is actually being built, what modules may be left out etc.

An interesting question in this context is: is it possible to remove all the translation data and keep an English version only (English, because that's the native language in the source code).

gzotti commented 2 years ago

disable translation by setting NLS_ENABLE to 0 in the cmake settings. disable building of several plugins, like telescope control, oculars, scenery3d, remotesync, pulsars, quasars (things you won't likely need on the boat) configure away menu buttons you don't need. You can use the remoteControl API to repeatedly set your heading. Such interfacing may be interesting, you could even combine that to a rotating landscape which simulates a ship's railing. (i.e. rotate so that the bow in the landscape looks towards your heading.)

axd1967 commented 2 years ago

if power is an issue, you can also reduce the frame rate to e.g. 10 fps

https://github.com/Stellarium/stellarium/blob/1e617e49918ab2e5e5fad318dd1ab4024eb1e41c/plugins/Vts/data/config.ini#L385

mgrouch commented 2 years ago

disable translation by setting NLS_ENABLE to 0 in the cmake settings. disable building of several plugins, like telescope control, oculars, scenery3d, remotesync, pulsars, quasars (things you won't likely need on the boat) configure away menu buttons you don't need. You can use the remoteControl API to repeatedly set your heading. Such interfacing may be interesting, you could even combine that to a rotating landscape which simulates a ship's railing. (i.e. rotate so that the bow in the landscape looks towards your heading.)

@alex-w @gzotti @axd1967

Ok thanks. I've now got it scripted

https://github.com/bareboat-necessities/lysmarine_gen/blob/master/install-scripts/8-apps/files/stellarium-augmented.sh

azimuth 0 in Stellarium is somehow South (I'd thought it would be North)

And config:

https://github.com/bareboat-necessities/lysmarine_gen/blob/master/install-scripts/8-apps/files/stellarium-config.ini

Anything else you can spot in my config that can improve it?

Thanks, --MG

gzotti commented 2 years ago

Haha, this looks cool! (I have not run it, but yes, such a hackish solution is great!) Yes, with the programmable API sometimes you must do a bit more math yourself. (like azi = 0 means south, and maybe the sense of rotation is counted in the opposite direction. See API docs, and/or fix some things after a few trials.

axd1967 commented 2 years ago

Nice!

Just some random thougts:

Minor comments:

See API docs, and/or fix some things after a few trials.

and don't be shy: make sure to report issues rather than accept an odd/unusual API (if that might happen) and apply workarounds.

mgrouch commented 2 years ago

@alex-w @gzotti @axd1967

Few things I've noticed about Stellarium

  1. Location plugin doesn't seem update location from GPSd when I click on get GPS location button. Instead it tries to check multiple serial ports even though I didn't specify them in the config.

  2. Is there continuous update from GPSd on the location? Is seems no

  3. If I specify city as blank could it show LAT, LON values instead?

  4. It should provide one more option to get a location from NMEA 0183 TCP or UDP server

  5. From the same stream of data it would be possible to update heading. Although it usually gives magnetic so that needs to be converted into true by using location, time and magnetic variation

  6. And yes I like to see satellites on a boat. Weather satellites, etc. for HAM, SSB, and Iridium, ans StarLink, GNSS

  7. It will be fun to try with OpenCPN celestial navigation plugin

Thanks, --MG

gzotti commented 2 years ago

Few things I've noticed about Stellarium

1. Location plugin doesn't seem update location from GPSd when I click on get GPS location button. Instead it tries
   to check multiple serial ports even though I didn't specify them in the config.

Please see the User Guide on how to configure this. There is also a build option for GPSD, maybe you have to activate this first. I have developed this with a borrowed device on Ubuntu 16(?), so cannot test it.

2. Is there continuous update from GPSd on the location? Is seems no

No. A mobile platform was never seen as target. And usually speed is not high enough to see effects within minutes.

3. If I specify city as blank could it show LAT, LON values instead?

You could simply create a place name from the coordinates.

4. It should provide one more option to get a location from NMEA 0183 TCP or UDP server

Feel free to create this.

5. From the same stream of data it would be possible to update heading. Although it usually gives magnetic
   so that needs to be converted into true by using location, time and magnetic variation

-"-

6. And yes I like to see satellites on a boat. Weather satellites, etc. for HAM, SSB, and Iridium, ans StarLink, GNSS

Use whatever seems useful.

7. It will be fun to try with OpenCPN celestial navigation plugin

Cannot comment on this.

NB: The azimuth API is as it is by design (efficiency), not by flaw (omission of user commodity). We will not change it even if axd1967 complains.

axd1967 commented 2 years ago

NB: The azimuth API is as it is by design (efficiency), not by flaw (omission of user commodity). We will not change it even if axd1967 complains.

As long as there is a sound reason, everybody's happy. But we all know that bugs can exist, especially in less used interfaces. And there is a difference between complaining, nagging and more the like, and trying to improve things: please don't be so negative.

alex-w commented 2 years ago

azimuth 0 in Stellarium is somehow South (I'd thought it would be North)

Astronomical azimuth 0 in South, geographical azimuth 0 in North. Where is 0 for azimuth can be toggle in GUI or config.ini

axd1967 commented 2 years ago
  1. And yes I like to see satellites on a boat. Weather satellites, etc. for HAM, SSB, and Iridium, ans StarLink, GNSS

@mgrouch out of curiosity, I see your point about communication sats (even if a Starlink receiver will have more accurate directional data than Stellarium), but what about GNSS: (1) the GPS receiver has far more accurate data (and can display that, sometimes with a sky map), (2) satellite TLE get outdated rather quickly and thus need an Internet connection to be updated. What if the user discovers that the sat display does not correspond to what the GPS unit is telling?

What could be fun (but not good to show...) is to compare NMEA data (eg GGA, TRF, GSV) with count, position of satellites as "seen" in Stellarium - if there is a connection between Stellarium and GPS receiver :-) In such a case, NMEA position/heading data could indeed also be injected in Stellarium :-) But you will need some intermediate piece of hard/software to implement that bridge.

gzotti commented 2 years ago

azimuth 0 in Stellarium is somehow South (I'd thought it would be North)

Astronomical azimuth 0 in South, geographical azimuth 0 in North. Where is 0 for azimuth can be toggle in GUI or config.ini

This is true for the main program, but not the RemoteControl API.

github-actions[bot] commented 2 years ago

Hello @mgrouch! Thank you for this suggestion.

mgrouch commented 2 years ago

Regarding satellites. There are just way too many StarLink ones. Is there a configurable way to hide them? I'd like to see satellites but without crowding the view.

Thanks

alex-w commented 2 years ago

Please check settings of Satellites plugin

mgrouch commented 2 years ago

Please check settings of Satellites plugin

I did check. What do I need to change there?

Thanks

mgrouch commented 2 years ago

I do not have starlink.txt reference in my config.ini but they are showing anyway

gzotti commented 2 years ago

Regarding satellites. There are just way too many StarLink ones. Is there a configurable way to hide them? I'd like to see satellites but without crowding the view.

Thanks

Yes, there are too many Starlink satellites. Fact. This single "constellation" triples the number of orbiting satellites of the last 60 years. I'd like to observe the sky without LEO satellites zipping through the view all the time.

Satellite configuration should be in the modules/Satellites subdirectory of your user data directory.

axd1967 commented 2 years ago

@mgrouch what you can do is hide all starlink sats, and then selectively unhide some; for example, the head and tail sats of various streams.

To make life easier, you create a new group (eg "_my_starlinks") and assign the selected sats to that group. (an additional tip: if you use an underscore, it gets in front of the other groups.)

image

(and #1636 can further make life easier)

alex-w commented 2 years ago

This is a good task for the community to participate in the contribution into Stellarium. Who wants to help us?

luzpaz commented 1 year ago

What is left to do here ?

gzotti commented 1 year ago

Not sure. I'd like to copy the links into the Wiki before closing.

gzotti commented 1 year ago

@mgrouch I think you have implemented all, right? Can we close this then?