Jump to content

  •  

CNers have asked about a donation box for Cloudy Nights over the years, so here you go. Donation is not required by any means, so please enjoy your stay.

Photo

TeleTrak - New Software for Video Tracking and More

  • Please log in to reply
7 replies to this topic

#1 ngchunter

ngchunter

    Mariner 2

  • -----
  • topic starter
  • Posts: 215
  • Joined: 09 Oct 2009
  • Loc: Florida

Posted 10 November 2015 - 11:38 AM

Hello!  This is my first time in the software sub-forum, but I have a new program to announce and get feedback on.  I'm new to software development as well, but I saw a personal need and decided to dive in to fix it.  I live in Florida and attend a lot of rocket launches out at the cape, and though I frequently photograph them with my telescope I'm not satisfied with the results of hand tracking.  It also just feels wrong to hand track a scope which has built in motors and a computer which could potentially be used to track these things automatically.   I use an old 8" LX200 Classic, but it still works great. If it can track ISS (using Brent Boshart's Satellite Tracker) then why not a rocket heading uphill to ISS?  For that matter, why not airplanes and helicopters?  There is a program out there for video tracking already, but it's not compatible with the LX200 Classic at all (only Autostar II LX200s), and it's quite expensive for the higher tiers of the program. 

 

So that's where TeleTrak comes in.  It has three basic features at the moment: minor planet tracking, manual joystick control, and automatic video tracking.  Minor planet tracking (open loop, no guiding) is for telescopes that lack direct tracking of minor planets.  I wrote that feature specifically for brighter NEOs that my little 8" LX200 can see, but that are still too dim and/or too fast to effectively autoguide on with the guidescope.  2015 TB145, for example (and thinking way ahead, Apophis in 2029).  It reads an ephemeris file generated by FindOrb and sends the current coordinates of the object to the telescope in a constant stream of GOTO commands, producing what is effectively continuous tracking of the object.  Of course with the LX200 there is a limitation in that it can't receive anything past a decimal point in coordinates, and you have to deal with residual periodic error.  Nevertheless I still found it to be good enough for continuous tracking with a widefield scope riding piggyback on the LX200.  I imaged 2015 TB145 with an Orion ST-80 and SBIG ST-2000XCM using 1 minute exposures on halloween.  Here's a short time lapse gif of the first 24 exposures:
 

http://h.dropcanvas....B145first24.gif

There's still more work to do to improve the minor planet tracking feature.  For one thing, I want to code it to read JPL HORIZONS ephemeris in addition to FindOrb.  I also want to include a more user friendly way to do "leapfrog" tracking in addition to continuous tracking.  Leapfrog tracking puts the telescope slightly ahead of the asteroid's position and allows it to pass through the field of view before leaping ahead again.  Basically it's the kind of tracking you could do with any standard planetarium program, but without needing to press "slew" every five minutes.  In any case, it's not intended to be the main feature of the program; there's only so much you can do with the encoder resolution on a standard LX200 or equivalent telescope.  The feature really works best with a widefield scope riding piggyback, but for "major" asteroid encounters like 2005 YU55 or 2015 TB145 it works quite well (ironically due to encoder and slew command resolution limits, it works better the faster the asteroid is moving through the sky).

The main feature of the telescope is tracking bright fast moving objects, either with a joystick, or autonomously via video.  The program currently works with any windows compatible video camera or capture system.  I use a video capture card in combination with a Samsung SDC-435 (see the electronically assisted viewing sub-forum for more info), but it would also work in with any Astrovid, Stellacam, or Mallincam.  Of course it will also work with any webcam style imager as well.  I'm also planning to try to add support for any ASCOM compatible CCD camera in the future, but I can't promise that will work.  I initially tried to add support for ASCOM on the telescope control side, but there was far too much lag with the ASCOM drivers and they would not allow for a control loop to be established (I couldn't poll the telescope's position in the middle of a slew).

The video tracking works by detecting an object based on its color.  Since it's generally intended for viewing objects in the sky, there's a natural "blue screen" we can use for very fast detection and image processing.  In the future I may add support for more advanced object recognition algorithms, but in my testing I found they caused my i3 laptop to choke pretty hard.  Color detection is a very fast process which means the system requirements will be pretty low.  The object to be tracked is designated by moving the telescope to it using a joystick in manual control mode, and then pressing the trigger button while pointed at the object to be followed.  The telescope will immediately begin tracking the object automatically, and you can tune the detection as needed by changing the color similarity constraint.  You can also shift the automatic tracking by continuing to move the joystick.  Pressing any button other than the trigger will immediate un-designate the target and stop the automatic tracking.  The joystick's throttle slider controls the sensitivity of the manual tracking, and when pulled all the way down it issues a stop command to the telescope and stops all tracking (manual or automatic) as a safety measure in case you see the telescope's about to tangle a cord or collide with its own mount.

 

The tracking is also "predictive" - it calculates a running average of the object's velocity vector over the last few samples and uses that to "predict" where it will be at the moment it sends each GOTO command.  If you find the telescope is lagging behind an object and you want to "tune out" the lag so that you don't need to use the joystick to correct the tracking, you can enter a "lag correction" value as the number of milliseconds you want the telescope to "move ahead" of where it expects the object to be.

 

I'll be making tutorial videos on how to use the software and cover the features as well as ways to optimize your rig to get the best tracking possible.  I'll also be adding features in the future.  One obvious feature would be satellite tracking (as you might have guessed from my avatar picture, I'm into satellite tracking).  Like the minor planet tracking feature I'm thinking of having it use a pre-generated ephemeris file, I think Brent Boshart's Satellite Tracker program can export such files.  The video tracking would then correct the predicted track and center ISS automatically.  I should also mention that the joystick and video tracking features are currently "altitude-azimuth" features. I am planning to add a "polar tracking" mode though, where the tracking commands are issued as RA and Dec for polar aligned telescopes.  Most critically though, the software is currently programmed exclusively in the LX200 Classic command set and I need to change that. 

 

As I mentioned, ASCOM is not an option, so I will need to port the program to other telescopes' command sets individually.  As I do not have any other telescope mounts, I'm going to need willing guinea pigs, err, beta testers to help me bug test and get the software up and running on other scope types.  I'm currently planning to port it to the more modern LX200 Autostar command set as well as the Celestron Nexstar command set (potentially others as well depending on demand).  The software itself is a windows program (sorry, as I mentioned I'm new to program development, so I know nothing about porting it to Mac) and as I mentioned I designed it to require minimal processing overhead so it should work on a wide variety of PC hardware.  I don't yet know what the lower limit is on system specs, so I need feedback on that as well.  If you're willing to help me beta test the ports to autostar and nexstar telescopes please let me know what kind of scope, PC, and camera you have.  I'll be choosing participants for a private beta test, assuming people want to help test it.

 

I'm hoping to have the first videos demonstrating the program sometime this week, but as usual it's weather-dependent and right now the clouds are conspiring against me.


Edited by ngchunter, 13 November 2015 - 08:43 AM.

  • psandelle, artem2, preise cialis and 1 other like this

#2 Dan Crowson

Dan Crowson

    Surveyor 1

  • *****
  • Moderators
  • Posts: 1856
  • Joined: 08 Oct 2010
  • Loc: O'Fallon, MO

Posted 10 November 2015 - 03:20 PM

This sounds like an interesting program but I think you're missing the boat by not using ASCOM. Your program would *just work* with all mounts with under Windows. INDI (http://indilib.org/) would allow it to work under Mac and Unix.



#3 ngchunter

ngchunter

    Mariner 2

  • -----
  • topic starter
  • Posts: 215
  • Joined: 09 Oct 2009
  • Loc: Florida

Posted 10 November 2015 - 04:58 PM

I do wish it were possible to use ASCOM, believe me I was depressed when I found out it just wouldn't work.  I went into this project with ASCOM in mind, and it still might be possible to port the minor planet tracking to ASCOM.  Of course minor planet tracking is not an issue with ASCOM normally, in fact it's practically a built-in feature, but the way it normally works is to set the drive rates directly.  While ASCOM supports variable drive rate commands, not all telescopes support variable drive rates (and for those that do, a variety of software already seems to exist for that).  This program works instead by sending a constant stream of GOTO commands to enable continuous tracking for scopes which lack independent drive rate control.  It's basically a work around for entry to mid level GOTO scopes like the classic LX200.  That can work with ASCOM because you don't need to receive any feedback from the scope in realtime, you simply have a predefined trajectory to follow and you follow it.  Even the lag wouldn't really matter in the vast majority of cases; even the fastest asteroid is not all that fast.

 

With that said, ASCOM is not an option for joystick or automatic video tracking.  I've tried it, both with the ASCOM simulator and with my own scope.  I cannot get it to send the telescope's position back to the software in the middle of a slew and the lag really mucks things up.  Both the manual and the automatic tracking work by polling the telescope's current position, modifying that position by a value determined either by joystick deflection or the detected location of an object, sending the slew command, and repeating many many times per second.  Not only is ASCOM too slow in sending commands, but more importantly you can't poll the location in the middle of a slew.  In order track an object detected on video the program has to know where the object is in physical space, not just the pixel coordinates.  To get that information it has to constantly poll the telescope for its current location many times per second.  ASCOM was not designed for that kind of constant data stream as far as I can tell. 

 

I'll support as many telescopes as I can by porting it to the scope's native communications protocol.  I know that's going to be time consuming and less efficient than if I could just use the ASCOM platform, but realistically it's actually far more feasible.  Most of the code is involved in doing the actual tracking, the communication itself is handled in just a few lines.  I don't have access to many different kinds of scopes though, and there may be some scope-specific quirks that I have to come up with workarounds for, which is why getting beta testers is going to be so important for me.  That would be the case even if I could use ASCOM. 



#4 Cajundaddy

Cajundaddy

    Apollo

  • *****
  • Posts: 1484
  • Joined: 27 Dec 2016
  • Loc: Cucamonga CA

Posted 13 February 2018 - 07:02 PM

I too am a SpaceX launch rat here on the west coast and am very interested in your software adaptation to a Nexstar SLT mount. I have an older windows netbook which is simple but might be just enough to run it.  I have been shooting video with hand guidance on an Alt Az mount and as you know this is very difficult to keep smooth.  Perhaps we could collaborate on adapting your software to the Nexstar mount platform.  My programming skills are approaching zero but beta test pilot with precise feedback on issues I can do.  Automating part or all of the guidance would be great!


Edited by Cajundaddy, 13 February 2018 - 08:10 PM.


#5 StarmanDan

StarmanDan

    Skylab

  • *****
  • Posts: 4436
  • Joined: 27 Aug 2007
  • Loc: Deep in the heart of Texas

Posted 14 February 2018 - 02:14 PM

Sounds a lot like this: http://optictracker....What_is_it.html



#6 ngchunter

ngchunter

    Mariner 2

  • -----
  • topic starter
  • Posts: 215
  • Joined: 09 Oct 2009
  • Loc: Florida

Posted 15 February 2018 - 05:11 PM

Sounds a lot like this: http://optictracker....What_is_it.html

The principle is the same, but I wrote mine from scratch to work with the LX200 classic.  OpticTracker does not support the LX200 classic at all, and I verified it has no ability to control my scope.  It seems like it's compatible with a wide variety of Celestron mounts, but unless you have a newer LX200 you seem to be outta luck on the Meade side of the fence.  It's understandable if you're familiar with the old classic command set; there is no command for direct slew rate control (other than the few fixed slew speeds available).  Fortunately I came up with a work-around for that limitation.



#7 artem2

artem2

    Mariner 2

  • ****-
  • Posts: 265
  • Joined: 08 Nov 2013
  • Loc: Österreich (no kangaroos in Austria)

Posted 16 February 2018 - 12:50 PM

interestingwaytogo.gif



#8 ngchunter

ngchunter

    Mariner 2

  • -----
  • topic starter
  • Posts: 215
  • Joined: 09 Oct 2009
  • Loc: Florida

Posted 14 October 2018 - 01:52 PM

Just to update this thread, I'm splitting the various features of this program off into individual programs and porting them all to Python.  I've released the first module for tracking minor planets and deep space probes and included compatibility with ASCOM for scopes that support the "MoveAxis" method:

https://www.youtube....h?v=m33D6JZUYr8

The next module to release will be the satellite tracking functionality, I just tested it last night successfully with my LX200 classic.  It automatically tracks the satellite based on the orbit and centers it using a video viewfinder, making satellite tracking as simple as point and click.  From that point on it's hands-free, freeing you up to observe the satellite at the eyepiece at your leisure (or record images and video through the main telescope).  




CNers have asked about a donation box for Cloudy Nights over the years, so here you go. Donation is not required by any means, so please enjoy your stay.


Recent Topics






Cloudy Nights LLC
Cloudy Nights Sponsor: Astronomics