×

INDI Library v2.0.6 is Released (02 Feb 2024)

Bi-monthly release with minor bug fixes and improvements

indihub.space - equipment sharing & space sustainability project based on INDI!

  • Posts: 34
  • Thank you received: 20
Hi everyone,

So just wanted to introduce something I've been working on for last a couple of weeks (while waiting for clear skies). It is a mix of INDI-client and INDI-proxy so I thought I can post it here.

indihub.space - this is a tool/service to simplify remote connection and equipment sharing for setups controlled by INDI-stack.

I was seating without clear skies 6+ weeks this winter and started experimenting with remote access. I decided to build something light weight which would allow me to open remote access easily, without any reverse-SSH tunnels, NAT modifications or VNC.
The idea is just to point KStars/Ekos to publicly available remote-endpoints and do regular imaging session. I have a friend who lives in another location - we did some testing and it actually worked pretty well!

So to open access to your INDI-server (and PHD2!) you would need to run INDIHUB-agent like this:
indihub-agent -indi-profile=my-remote -indi-server-manager=raspberrypi.local:8624 -phd2-server=localhost:4400

where:
- my-remote - your predefined profile created earlier via KStars/Ekos and you want to share it for remote imaging session
- raspberrypi.local:8624 - is my RPI with INDI-server and manager connected to home network
- localhost:4400 - is PHD2 running on my Mac (connected to camera and mount over INDI in my case) - this is optional but recommended as we need to keep guiding closer to mount

Then my agent outputs public endpoints which I need to send to my guest:
​INDI-Server: us-east-1-node-1.indihub.io:55984
PHD2-Server: us-east-1-node-1.indihub.io:54869


So my guest will set remote connection in KStars/Ekos using these endpoints. All data goes via cloud so guest might notice some network lag time to time but that's Ok, it works pretty well.
Public endpoints are ephemeral, when you stop agent with CTRL+C - they are gone.

You might ask why do I need to share my equipment? I don't know tbh :) I can say for myself, having a couple of clear sky nights remotely - motivated me and helped me a lot to move forward.

Also, you don't have to share your equipment - there is a solo-mode:
indihub-agent -indi-profile=my-remote -indi-server-manager=raspberrypi.local:8624 -solo

In this case agent won't open any public endpoints, it will act as a INDI-server reverse-proxy listening on localhost:7624 so you can point your KStars/Ekos to localhost:7624 and do imaging session as you usually do.

You might ask again - why do I need this?
I think we all can contribute to different science projects and still have great times while doing astro-photography.
For instance - I see INDIHUB as a resource of data for space sustainability projects. By 2030 the number of LEO satellites will reach 40,000. These “mega-constellations” will be up to 25 fold increase of what we are having at the moment. We can help to track them and prevent collisions.
Another example - processing huge amount images with applying synthetic tracking can reveal unknown NEO.

I believe that value of images we take are underestimated, they can can be a powerful scientific tool!
The following user(s) said Thank You: Jasem Mutlaq, Ciarán
4 years 1 month ago #49038

Please Log in or Create an account to join the conversation.

This is awesome!! Thank you for the initiative, I have to settle sometime to try this out with my observatory and join it to the network!
4 years 1 month ago #49216

Please Log in or Create an account to join the conversation.

  • Posts: 34
  • Thank you received: 20
Thank you!

I would love to hear you feedback and ready to help with any questions.

The INDIHUB-agent doesn't have any manual at the moment, I am working on this. But it has usage help command, when you run "indihub-agent -help"

To summorize my previous long post - there are two modes in current implementation:
1. Equipment sharing mode (default one) - when you give access to your equipment to someone else via publicly accessible endpoints. You can actually test it by yourself by running indihub-agent in this mode and pointing your KStars/Ekos to public endpoints.
indihub-agent -indi-profile=my-remote -indi-server-manager=raspberrypi.local:8624 -phd2-server=localhost:4400
or
2. Solo-mode, "-solo" option -you don't share access to equipment, it is all yours. This is for contributing imaging material to INDIHUB without having to share access to equipment. In this case indihub-agent pretends to be INDI-server so you need to point KStars/Ekos to it.
indihub-agent -indi-profile=my-remote -indi-server-manager=raspberrypi.local:8624 -solo

Upcoming features:

- "broadcast" mode! It is like solo-mode but you will have public endpoints to share with others and hundreds of people can watch your imaging session in their KStars/Ekos running on computers around the world. They will also receive all taken images right away in FITS Viewer! Equipment is controlled only by you in this case.

- All imaging sessions will have a URL where you can see all images taken, report how they were processed and used in different Space sustainability projects
4 years 1 month ago #49222

Please Log in or Create an account to join the conversation.

  • Posts: 2247
  • Thank you received: 223
This is a great idea. I do have some feedback for you.

The agent is not open-source, it would be great if it could be so that more people contribute to this project.
If I was to share my equipment, how is the client going to really manage collisions (ie: send the scope into an unsafe position)?
Who is going to be responsible for equipment damage (ie: my roof does not open and the mount is being deployed)?
Can the server side settings be changed (ie: can the client change the park position data?)

Thanks
4 years 1 month ago #49530

Please Log in or Create an account to join the conversation.

  • Posts: 34
  • Thank you received: 20
Thank you for your feedback. Glad you liked the idea!

Btw, INDIHUB is receiving some strong interests from serious projects like TruSat.org from consensys.space Invalid consumer key/secret in configuration !

Good point about open-sourcing indihub-agent! This is something I am working on right now, hopefully I will move it to public next week. I will let you know when this happens if you don't mind.

Also, I am working on PR to INDI-server web manager to control indihub-agent.

Good ideas about constraints for shared equipment. It is not implemented yet but I see it implemented via setting on indihub-agent side, i.e.:

- constrain ranges for RA/DEC - this is safety for equipment/cables and also in interest of guests, i.e. half of my South side is blocked by trees - there is no point for guests to point there as they will see just dark
- un-park amount only if A, B, C conditions are met (i.e. roof open)
- park position can't be changed by guest
- automatically park mount if equipment sharing session finished
- other constraints

There so many things which can be done on indihub-agent side to make sharing experience smoother and safer for both parties, so one more strong reason to open-source it as you suggested.
4 years 1 month ago #49534

Please Log in or Create an account to join the conversation.

  • Posts: 2247
  • Thank you received: 223
Thank for the detailed answer, appreciated.
What you are doing is something I believe is missing from Ekos/Kstars/Indi and I'm glad someone has gone ahead with this idea. It should be merged into it.
My observatory is ultra compact and has some critical points I need to pay attention to. Thins like: if the roof fails to open and you deploy the mount, it's going to be a very expensive mistake that you'll do once only.

I still want to repeat my main concern, in case of a hardware issue/failure due to improper use from a client, who is responsible?
This should be well described in the terms and conditions of indihub.space and in the application.

Maybe the owner of the observatory should also "sign" / "tick" a box saying that the equipment and the observatory is in full working condition and all physical constraints have been taken care off.
You might want to mention that no-one should share their equipment if they use nightly Indi/Ekos builds, for obvious reasons ;)
The following user(s) said Thank You: Denis
4 years 1 month ago #49543

Please Log in or Create an account to join the conversation.

  • Posts: 34
  • Thank you received: 20
No problem! Hopefully we will see indihub-agent as one of useful (but optional!) components of INDI-stack.

Wow, you observatory looks pretty cool. Now I understand your concerns!

I totally agree - terms and conditions should be covered and described on indihub.space as part of signup application. Also, every observatory should have manual/guide for guests - describing what can be done and what not, so guest can put check mark that manual "was read and agreed". In case of any accidents - we have a full log what was done and guest should be responsible if log shows this. Also, in the future - INDIHUB as a platform might be covering expenses for hosts in these cases (if we ever get any funds for this).

I think it is a good idea about owner of the observatory having this "sign"/"tick" to acknowledge that equipment is ready. In fact indihub-agent must prevent sharing-mode completely if this option is not set by owner as "ON". At the same time I believe we have a great capabilities to protect equipment - in ideal case owner should easily configure how observatory can be used.

Good point about nightly INDI/Ekos builds - sharing equipment must be available only on latest stable release!
The following user(s) said Thank You: Mike
4 years 1 month ago #49552

Please Log in or Create an account to join the conversation.

  • Posts: 34
  • Thank you received: 20
Just to let you know - indihub-agent is open sourced!

Link to the repo: github.com/indihub-space/agent

Don't forget to download new release from: github.com/indihub-space/agent/releases or from the wen-site!

Particularly filtering of all incoming commands to equipment (in share-mode) will be here: github.com/https://github.com/indihub-sp....go#L135-space/agent

Also, please node that syntax of CLI params is changed a bit - the mode is now set by "-mode" param with possible values:
- "share" - open remote access to your equipment via INDIHUB-network of telescopes, so you can provide remote imaging sessions to your guests.
- "solo" - use you equipment without opening remote access but equipment is still connected to INDIHUB-network and all images taken are contributed for scientific purposes.
- "broadcast" - broadcast you imaging session to observers watching it via INDI-clients, in this case without any equipment remote access and sharing (experimental).
- "robotic" - open remote access to your equipment to be controlled by scheduler running in INDIHUB-cloud (experimental).

I.e. to run indihub-agent in solo mode:
./indihub-agent -indi-profile=profile-ABC -mode=solo

According to solo-mode - it is almost pure TCP reverse proxy but allows you to contribute imaging material (to be used for machine learning on cloud side). So in that mode you connect your KStars to indihub-agent proxy listening on `localhost:7426`!
The following user(s) said Thank You: Jasem Mutlaq, Gonzothegreat, Eric, Mike
4 years 1 month ago #50160

Please Log in or Create an account to join the conversation.

  • Posts: 34
  • Thank you received: 20
Hi everyone!

Just for the info - the new version of indihub-agent v1.0.3 is released: github.com/indihub-space/agent/releases/tag/v1.0.3

Changes:
- agent doesn't act as a reverse TCP-proxy any more, just connect your INDI-client directly to INDI-server as you usually do
- HTTP RESTful control API added - get status or change agent modes via simple HTTP API without restarting agent
- Websocket API added - open WS-connections to INDI-server from web-apps easily
- broadcast mode is removed as for now - I've realized that it is not that easy to broadcast INDI-traffic properly so any INDI-client can understand it, also user experience flow is not clear so decided to postpone this work
The following user(s) said Thank You: Jasem Mutlaq, Mike
4 years 3 weeks ago #50393

Please Log in or Create an account to join the conversation.

  • Posts: 39
  • Thank you received: 38
Hello dencoded!

Pierros here from Libre Space Foundation (makers of the SatNOGS network). I am excited to see indihub as a potential telescope network, great work on kickstarting this!

I have a couple of questions:
- So far it seems like this is a point to point type of deal. What are your plans for a more coordinated network approach?
- What is your plan about the project in terms of sustainability and governance?
- Do you have plans to open source the server side of your project?

Cheers!
4 years 2 weeks ago #50601

Please Log in or Create an account to join the conversation.

  • Posts: 34
  • Thank you received: 20
Hello Pierros!

Thanks for showing interest to INDIHUB project, glad you liked the idea and see the potential!

Answering your questions:

- You are right - at this point it is "friend-to-friend" deal at the moment. There is no way to discover other hosts on network at the moment (we will change it soon). We are planing to add directory of hosts where users will be able to "book" time for remote imaging sessions or see things like host's feed of images/equipment/weather forecast/feedback/rank and etc. Please note, hosts won't have to be in that directory but still can contribute images (this is our tool indihub-agent "solo" mode).
- INDIHUB will be processing all contributed images, turning them into data and provide this data as an Open API to anyone interested. Any data set will have a trace pointing to from where that data was extracted (raw images) and how (pipeline of open sourced algorithms). We see INDIHUB as a great resource of data for Space sustainability projects like trusat.org . According to governance - we plan to move in direction where INDIHUB is more decentralized and governed by hosts. Potentially, by utilizing blockchain/Ethereum when INDIHUB web-portal will act as a DApp powered by "open-sensor" nature of INDIHUB (anyone can setup equipment and connect it without asking any permission or any kind of registration).
- Yes, the server side will be open-sourced. I think it has to be open sourced as there are so many ways to process images, I can't even imagine. I think both data acquisition (agent) and data processing (server side) should be open-sourced and powered by people.

Let me know if I missed anything or you have more questions!

Btw, I know about LSF and SatNOGS and have been following your project for a while - I think it is a great effort and initiative!

I think INDIHUB-network is a similar project - we are giving opportunity to contribute to everyone who has a telescope on backyard and desire to contribute.
However, while doing so, INDIHUB as a network will also provide some new astro-photography experiences so hosts can benefit - i.e.:
- remote imaging sessions, so network hosts will have more clear skies, no need to travel with equipment, ability to try other equipment without buying it
- automatic processing/stacking for image sequences
- recommendations for equipment to improve experience and image quality
- hosts will see detailed reports about how the images are used and contributed to discoveries/projects and etc.
The following user(s) said Thank You: Mike
4 years 2 weeks ago #50605

Please Log in or Create an account to join the conversation.

  • Posts: 34
  • Thank you received: 20
Hello everybody, hope everyone's quarantining is going well!

Just wanted to let you know that we have made a first video showcasing a share-session via INDIHUB:


Also, meanwhile we've have been working on a number of things:

1. made indihub-agent to be more light weight in terms of CPU/RAM, I actually have been running indihub-agent v1.0.6 directly on my RPI 3b+ for last four months - it has never crashed or made RPI irresponsive, so it can be considered as a well behaved agent :)

2. redesigned backend for traffic-relays to make it more robust and ready for bigger load

3. image processing pipeline with 1st steps including
- image preprocessing with generating previews
- plate solving and celestial objects extraction
- finding satellites trails and calculating IODs to be submitted to TruSat
- finding moving parts (we started with naive blinking algorithm implementation)
- all this data will be available as public APIs
All pieces of INDIHUB MVP as a platform are coming together and I think it will be ready soon for open sourcing.

4. Integrating INDIHUB with World Wide Telescope project - this is very cool project from AAS and Microsoft so we are very excited to use it for INDIHUB WEb-UI! (coming soon)

5. integrating indihub-agent to be run on host directly from KStars - I will re-prioritize this work and continue asap

Hope everyone is enjoying the summer sky!

Clear Skies,

Denis
The following user(s) said Thank You: Jasem Mutlaq, Eric, Jim, Paul Muller, Mike
3 years 9 months ago #55728

Please Log in or Create an account to join the conversation.

Time to create page: 1.013 seconds