Linux、Talon 和天文学

作者:Tony Steidler-Dennison

自古代中国人首次绘制星图以来,我们就对天文学着迷。有人认为,天文学的计算机化是其迄今为止最伟大的飞跃。今天,无人值守的机器人望远镜扫描了几个世纪以来绘制的天空,并将它们的发现记录在现代数据库中。CCD 相机捕捉到的图像是胶片无法比拟的。对于业余或专业天文学家来说,这都是一个激动人心的时代。

天文学的革命并不仅限于硬件。从西班牙到韩国的天文台中的研究级望远镜都在开源软件和基于 Linux 的计算机的控制之下。在开源模式下,科学家可以自由地修改控制软件,产生涓滴效应,使业余爱好者受益。开源和 Linux 甚至改变了科学方法。由于源代码是免费提供的,同行评审现在不仅发生在数据上,也发生在数据收集方法上。

Talon 处于这场开源天文学革命的最前沿。Talon 最初由 Ellwood Downey 开发,作为天文台控制和天文分析软件 (OCAAS)。2001 年,该软件被爱荷华州爱荷华市的 Torus Technologies 收购。2002 年末,Torus 被 Optical Mechanics, Inc. 收购,更新后的 OCAAS 软件包以 GPL 许可发布为 Talon。

在过去的两年里,我每天都很荣幸能与 Talon 一起工作。我已经在多个望远镜套件上安装和配置了该软件,并且我跟随这些望远镜到达世界各地的目的地进行安装和现场配置。我很高兴与您分享 Talon 安装、配置和使用的一些要点。

Talon 可以从 observatory.sourceforge.net 下载。该软件与集成运动控制板交互,这些控制板可从 Optical Mechanics, Inc.(Optical Mechanics 运动控制器)或 Oregon Microsystems(PC39 运动控制器)获得。目标捕获和跟踪、预定操作、环境监控、圆顶控制、图像分析和处理都受 Talon 控制。使用远程 X 会话也可以进行网络操作。

使用 Talon

Talon 软件包包含完整的安装脚本;install.sh 创建一个 talon 用户,编译二进制文件,并创建一组文本配置文件,用于望远镜的初始操作。

Talon 包含一套完整的天文学应用程序,专门设计为工具套件使用。Talon 的主要界面利用 Motif 工具集,在整个应用程序集中产生熟悉和统一的外观和感觉。虽然该工具集功能丰富,但以下四个工具应该对大多数观测者有用。

xobs 是 Talon 的主控制窗口,通过终端命令启动startTel。它包含操作所需的所有监控和校准工具。此窗口提供对望远镜和任何连接的外围设备(如滤光轮或圆顶控制)的手动控制。它还提供望远镜当前位置的持续显示,该位置由电机编码器的反馈计算得出。此反馈在 xobs 窗口内的一组文本框中提供。

Linux, Talon and Astronomy

图 1. xobs,Talon 主控制屏幕

使用 Talon 时,首要的重要任务是找到系统中各个编码器的原位。这些编码器闭合了轴操作的环路,为每个轴的完整行程提供静态计数。望远镜的运动部分是通过所选轴相对于编码器零位置的运动来计算的。例如,减小赤纬编码器通常会将望远镜向北移动。在 xobs 窗口中查找原位的操作会搜索并建立每个轴编码器的零位置。

使用 xobs 窗口中的软件手柄命令(图 2),用户可以手动定位望远镜、滤光轮和焦点位置。望远镜向东和向西的运动称为望远镜的赤经 (RA) 或时角 (HA)。向北和向南移动称为赤纬 (Dec)。使用正负编码器计数,移动望远镜轴只是简单地将轴正或负 x (RA) 或 y (Dec) 移动。这些坐标与北极有关。

Linux, Talon and Astronomy

图 2. Talon 软件手柄,用于手动移动望远镜

此外,Talon 还提供有关观测站点天气条件的数据,并连接了 Davis 气象站。此功能确保望远镜在无人值守的操作期间不会暴露在不利的天气条件下。当条件落在预定范围内时,天文台圆顶或卷帘式屋顶关闭,望远镜移动到收起位置并停止操作。与位置数据一样,此信息也在 xobs 界面内的文本框中提供。

最后,xobs 提供了一个搜索功能,允许用户输入天体的名称,搜索内部数据库,并自动将望远镜旋转到适当位置以观测和拍摄所请求的天体。

telsched 是 Talon 的一个组件,使机器人无人值守观测成为可能。对于从偏远地区进行研究的机构或需要在给定时间内重复观测特定天体的机构来说,这可能是一项至关重要的功能。

Linux, Talon and Astronomy

图 3. Telsched,Talon 操作调度程序

telsched 命令打开一个用于这些无人值守观测会话的调度程序。调度程序根据用户选择的天空区域大小(以度为单位)自动计算会话期间要拍摄的图像。一般来说,天空区域越小(度数越少),拍摄的图像就越多。telsched 在无人值守会话期间拍摄的图像存储在用户选择的目录中。telsched 程序创建的所有指令都存储在一个平面文件中。当望远镜从 xobs 界面从属到机器人控制时,xobs 会引用这些指令。

Camera 是 Talon 套件中的另一个终端启动应用程序。它提供对连接到望远镜的 CCD 相机功能的完全控制。

Linux, Talon and Astronomy

图 4. Camera,Talon 图像处理应用程序

camera 应用程序包括用于曝光时间、图像大小、软件图像过滤和图像分析的工具。Camera 还包含用于调整图像亮度和对比度、确定图像的感兴趣区域 (AOI) 以及通过与世界坐标系 (WCS) 进行比较来自动标记物体的工具。后一个工具实际上是一种模式匹配算法,允许系统将已知的物体模式与 WCS 数据库进行比较。

xephem 为 Talon 套件的其余部分提供软件星历表或星图界面。与其他星历表一样,它在很大程度上依赖于正确的地理和时间坐标;此信息可以由用户手动配置。xephem 也可以配置为定期轮询连接的 GPS,调整系统时间以解释内部时钟漂移。

Linux, Talon and Astronomy

图 5. xephem,Talon 的星历表程序

xephem 程序,从命令行启动,命令为xephem,提供当前天空的精细视图。每个物体的数据都在右键单击弹出的屏幕中提供。用户还可以使用此弹出窗口指向望远镜,此功能广泛用于校准。可以增加放大倍数,有效地更深入地观察天空。作为缩放的替代方法,用户可以选择最小星等(视亮度)阈值。这允许在星历表视图中过滤掉较亮的恒星,只留下窗口中较暗的物体。天空视图也可以旋转,并提供物体类型过滤。例如,可以选择球状星团,从而消除所有其他物体类型的视图。

配置

配置文件对于 Talon 的运行至关重要。它们提供了软件与用户和望远镜中安装的硬件通信的方式。按照 Linux 的传统,这些文件是简单的文本文件,并进行了大量注释,以便用户理解。Talon 所有组件的配置文件都可以在 /usr/local/telescope/archive/config 中找到。使用默认的 tcsh shell,简单的命令cd config将用户移动到配置目录。

望远镜的运行可以看作是两个独立的元素,每个元素都由特定的配置文件类型来处理。首先,内部运动控制板必须与电机和编码器通信。旨在实现此功能的配置文件使用 .cmc 扩展名。我一直将此扩展名视为描绘配置运动控制器的文件,简称 cmc。.cmc 文件建立控制器板的操作参数,控制器板反过来向编码器和机电设备发送信号并接收反馈。

望远镜操作的另一个要素是用户和软件之间的界面。简而言之,所有用户控制的操作都使用扩展名为 .cfg 的配置文件。虽然 .cmc 文件在后台运行以直接与硬件通信,但用户界面必须与 .cfg 文件通信。

关键配置文件

虽然每个配置文件都在 Talon 的运行中发挥作用,但 .cmc 类和 .cfg 类中的某些文件都值得特别关注。这些 .cmc 文件包括

  • basic.cmc:建立运动控制板和驱动望远镜轴的电机之间的基本通信。

  • find.cmc:建立基于编码器计数查找物体的例程。

  • nodeDec.cmc:建立望远镜 Dec 轴的硬件参数。

  • nodeRA.cmc:建立望远镜 RA 轴的硬件参数。

  • nodeFocus.cmc:建立望远镜焦点控制的硬件参数。

.cfg 文件是

  • boot.cfg:允许用户编写 Talon 启动例程脚本。这些可能包括启动 GPS 监控、气象站监控以及在计算机启动时打开 Talon 主界面。

  • home.cfg:提供一组初始常量,使望远镜能够找到每个编码器的原位。这些常量代表望远镜在完成初始校准例程之前的空间感知。一旦这些例程完成,实际的编码器计数和轴行程将自动更新。

  • telescoped.cfg:提供有关望远镜轴的常量,建立物理行程限位开关相对于编码器的位置,并建立每个轴的最大旋转速度以及旋转加速度。

关键配置设置

每个 .cmc 和 .cfg 文件中的设置都使用命名约定,使其功能易于识别,但这些文件中的一些关键设置值得特别关注。可以使用任何熟悉的文本编辑器修改这些设置

  • boot.cfg:建立 Talon 软件在启动时的整体参数。

  • setTelUser:创建望远镜用户、望远镜用户组并设置适当的权限。默认情况下,初始望远镜用户和组命名为 talon。如果系统上已存在新的用户和组,则可以通过修改 boot.cfg 中的 setTelUser 常量来更改此设置以供后续使用。

  • setTelDaemons:初始化望远镜守护程序 (telescoped)、相机守护程序 (camerad)、气象站守护程序 (wxd) 和全球定位系统守护程序 (gpsd)。

  • home.cfg:为编码器计数、原位位置、限位开关以及旋转速度和加速度提供以下四个常量

  • HSTEP:HA 轴编码器完整旋转的编码器计数。

  • DSTEP:Dec 轴编码器完整旋转的编码器计数。

  • HSIGN:HA 编码器在望远镜上的物理位置。从北方观察时,如果 HA 编码器位于极轴(望远镜从东向西移动所依据的轴)的后部,则顺时针递增;如果位于前部,则递减。另一种看待这个问题的方式是,如果标记的编码器表面在最终望远镜配置中指向南方,则它将在顺时针旋转时递增。如果它指向北方,则编码器将随着顺时针旋转而递减。此配置是一个简单的常量:如果编码器递增,则为 1;如果递减,则为 -1。

  • DSIGN:Dec 编码器在望远镜上的物理位置。与 HA 编码器非常相似,编码器的递增/递减取决于用于安装编码器的方法。如果编码器安装时编码表面朝向叉臂外部,则在顺时针旋转或朝向北方旋转时,它会递减。这需要设置为 1。如果编码器安装时编码表面朝向叉臂内部,则在顺时针旋转时,它会递增。这需要设置为 -1。

  • telescoped.cfg:为初始操作提供以下常量

  • HAXIS:从中控制 HA 轴的望远镜网络节点。

  • DAXIS:从中控制 Dec 轴的望远镜网络节点。

  • HESTEP:HA 轴的每次旋转的原始编码器计数。

  • DESTEP:Dec 轴的每次旋转的原始编码器计数。

  • HMAXVEL:HA 轴的最大回转速度。

  • DMAXVEL:Dec 轴的最大回转速度。

  • HMAXACC:HA 轴的最大回转加速度。

  • DMAXACC:Dec 轴的最大回转加速度。

使用 Talon

要开始使用 Talon,需要进行一些初始校准项目。与任何望远镜一样,您需要检查和调整极轴对准 - 望远镜相对于天北极的物理位置。

在 boot.cfg 脚本中使用 xobs,主 Talon 屏幕应在桌面加载后立即打开。从此主屏幕中,选择“查找原位”(图 6)。如前所述,此例程查找每个编码器(RA、HA 和焦点)上的原位标记。从弹出窗口中,选择“全部”。望远镜应在所有轴上移动。每个轴最初都会跳过原位标记,然后逐步后退,直到再次找到该标记。每次移动都减少到原位标记,确保望远镜最终精确地位于标记上。

Linux, Talon and Astronomy

图 6. 查找原位

下一步是查找限位。此例程查找望远镜的物理限位开关,这些开关可防止望远镜因在每个轴的行程中摆动过远而损坏自身。当在一个轴的行程两端的开关都被找到时,软件会将位置(以编码器计数为单位)写入 home.cfg 文件。您应该只需要完成一次查找限位例程。

望远镜经过校准和对准后,就可以拍照了。从命令行打开 camera 和 xephem 应用程序。在 xephem 选项中启用望远镜控制。通过右键单击星历表中的物体来选择一个物体,然后从结果弹出窗口中选择“指向望远镜”。望远镜应回转到新位置。单击 camera 应用程序并选择“拍摄一张”。正确连接到相机后,您将听到快门声。几秒钟后,所选物体的图像将在屏幕上呈现。

要设置计划操作,请使用 telsched 命令。在结果窗口中,选择网格的大小,记住网格越紧密,拍摄的图像就越多。设置操作开始的时间(UT 时间),并将计划文件保存在默认目录中。然后返回到主 Talon 屏幕并选择批处理模式。您将收到一个确认窗口。当您选择“是”时,Talon 应用程序将从属到自动模式。您可以从主屏幕取消自动模式。但是,在批处理模式使用时,您无法从主屏幕手动操作望远镜。

Talon 程序功能丰富,可完全控制望远镜的运行。许多更精细的功能都在 Talon .tgz 文件中提供的 .pdf 手册中进行了概述。值得仔细阅读以了解望远镜与控制板和软件的接口。该手册还包含有关图像处理、求解 WCS 解决方案、自动化和远程操作以及超出本文范围的更精细校准项目的深入信息。

Talon 代表着专业和业余天文学家向开源世界迈出的完整一步。凭借 Linux 强大且可联网的特性,Talon 提供了一个稳定的平台,我们可以在此平台上做我们自时间开始以来一直在做的事情——观看、记录和发现天体。

Tony Steidler-Dennison 是 Optical Mechanics, Inc. 的运营总监,也是 Lockergnome 的 Penguin Shell 时事通讯的作者,这是一份面向 Linux 用户的双周刊。他在 Sourceforge.net 上维护 Talon,并在 poli-tech 博客“Frankly, I'd Rather Not”上发文,网址为 www.steidler.net。他回复发送到 tony@steidler.net 的所有电子邮件。

加载 Disqus 评论