This document explains POCS concepts without requiring installation. Perfect for understanding before you install!
Imagine you want to search for planets around other stars. You need to:
- Point a telescope at thousands of stars
- Take pictures all night, every night
- Look for tiny dips in brightness (planets passing in front of stars)
- Do this automatically without human intervention
POCS automates all of this!
POCS is like an autopilot system for a telescope. Just as airplane autopilot:
- Knows the flight plan (observation schedule)
- Monitors conditions (weather, safety)
- Adjusts course as needed (points telescope)
- Follows procedures (state machine)
Important: POCS is the ONLY intelligence - the "autopilot system" itself. All other components are mechanical/electronic systems that POCS controls. When running manually (via scripts or notebooks), a human directly replaces POCS as the autopilot - not as a separate "pilot" or "operator".
| Component | Airplane Analogy | What It Does |
|---|---|---|
| POCS | Autopilot system | Makes all decisions, ensures safety |
| Observatory | Aircraft frame | Manages all hardware components |
| Mount | Control surfaces | Points the telescope |
| Camera | Instruments/sensors | Captures images |
| Scheduler | Flight computer | Chooses what to observe |
| State Machine | Flight sequence | Ensures steps happen in order |
Key point: Only POCS has intelligence - it's the autopilot system! Everything else is mechanical hardware that POCS controls. There are no autonomous "pilots" or "crew" - just one smart autopilot (POCS) commanding all the aircraft systems.
POCS checks: "Is it dark yet?"
Answer: No
Action: Keep sleeping, check again in 10 minutes
POCS checks: "Is it dark? Is weather OK?"
Answer: Yes to both
Action: Move to scheduling
Scheduler thinks: "What star should we observe?"
- Checks which stars are visible
- Considers priority and previous observations
- Picks the best target
Action: Tell mount where to point
Mount receives: "Point to RA 12h 34m, Dec +56° 12'"
Mount motors: Engage!
Mount reports: "Arrived at target"
Action: Mount begins tracking (follows target as Earth rotates)
POCS: "Is mount still tracking?"
Mount could have stopped due to:
- Hitting meridian limit
- Hitting horizon limit
- Mechanical issues
If still tracking: Proceed to observing
If stopped: Return to scheduling for new target
Camera: "Taking 60-second exposure"
Camera: "Image captured!"
POCS: "Save to disk"
Repeat: Take multiple images
Note: Mount continues tracking throughout
POCS examines: "Are the images good?"
Checks: Focus, image quality, star count
If good: Move to next target
If bad: Try again or skip target
POCS checks: "Getting light?"
Answer: Yes
Action: Point telescope to safe position
Action: Close dome (if present)
State: Return to sleeping
A state machine is like a flowchart where:
- Each box is a "state" (what POCS is doing now)
- Arrows show allowed transitions
- Rules determine when to move to next state
Why this helps beginners:
- You always know what POCS is doing (just check
pocs.state) - Problems are easier to diagnose (which state is it stuck in?)
- Code is organized by state (easier to understand)
POCS needs to know:
- Where you are (latitude/longitude)
- What equipment you have
- How to talk to that equipment
This info lives in YAML files:
# Example: Tell POCS about your location
location:
name: "My Backyard"
latitude: 34.1234
longitude: -118.5678
elevation: 100 # meters
# Example: Tell POCS about your camera
cameras:
devices:
- model: Canon EOS
port: /dev/video0One of POCS's best features for beginners:
# This creates a completely virtual observatory!
pocs = POCS.from_config(simulators=['all'])What gets simulated:
- Virtual cameras that generate test images
- Virtual mount that "points" anywhere instantly
- Virtual weather station that reports "always clear"
- Virtual dome (if you have that configured)
Why this is great:
- Learn POCS before buying equipment
- Test code changes safely
- Develop new features without hardware
Telescopes are complex! POCS handles:
- Astronomy math (coordinate conversions)
- Hardware communication (serial ports, USB)
- Safety (weather, sun position, limits)
- Scheduling (optimization, constraints)
- Image processing (focus, alignment)
But POCS hides most complexity behind simple interfaces.
- Read this document (you're doing it!)
- Run examples/beginner_simulation.py
- Explore notebooks/TestPOCS.ipynb
- Read docs/architecture-for-beginners.md
- Look at src/panoptes/pocs/core.py
In simulator mode: You can't! Break things freely to learn.
With real hardware: POCS has safety checks:
- Won't operate in daytime
- Won't operate in bad weather
- Won't point at sun
- Won't move beyond mechanical limits
- Forum: https://forum.projectpanoptes.org (friendly community!)
- Documentation: https://pocs.readthedocs.io
- Code issues: https://github.com/panoptes/POCS/issues
- Live chat: Join via the forum
POCS provides a user-friendly command line interface. After installation, you'll use the pocs command for everything.
# 1. First-time setup (interactive wizard)
pocs config setup
# 2. Test hardware
pocs mount search-home
pocs camera take-pics --num-images 1
pocs mount parkFor complete documentation of all CLI commands, see the CLI Guide.
The CLI guide includes:
- All configuration commands (
pocs config ...) - Observing commands (
pocs run auto, etc.) - Hardware control (
pocs mount ...,pocs camera ...) - Common workflows and troubleshooting
- Advanced usage tips
For most users: Use the CLI commands above. They're simpler and safer.
For developers: Use the Python API (shown in example scripts) when you need:
- Custom observing sequences
- Integration with other software
- Automated testing
- Advanced customization
After understanding these concepts:
- Install POCS - Follow installation instructions in README
- Configure your unit - Run
pocs config setup - Test hardware - Use
pocs mountandpocs cameracommands - Run simulations - Try
pocs run autowith simulators - Join the community - Share your learning journey!
- POCS automates robotic telescopes
- It uses a state machine for organized operation
- Everything can be simulated for learning
- Configuration tells POCS about your specific setup
- The community is here to help you learn
Happy learning! 🔭✨