结束语

    该设备软件所完成的任务要远远多于照相和处理图像数据。它也管理SSI的三(自由)度运动控制,以及RAC中的聚焦和视角。RAC还支持多色的LED,包括红、蓝和绿,照亮任何可能在机械臂范围内的视角,然后生成彩色图片。SSI和RAC都结合了活动的热控制,这或者是通过使用特定的加热器,或者是故意拖延一个步进电机来达到自我加热。所有这些操作都包含错误检查和容错恢复。总之,该设备软件任务非常“繁忙”。如果让我重新设计该软件,我希望改变的主要方面是,照相机使用的是它们自己的嵌入式处理器,而不是依赖于太空飞行器的CPU。这样会使所有的操作都变简单得多。除了这点,我总觉得对于每个设备任务,“挤进”了太多的操作。换句话说,热控制对于每个照相机本应该是一个独立的任务。这样就可以极大地减少每个任务的复杂度,虽然其代价是增加全局任务间通信的复杂度。然而,在刚开始时,没有足够的理由来这么做,因此当有一些新的加热需求需要对设计做出调整时,该设计已经很固定了(没有冻结,只是非常不灵活)。

    最后,对于选择“心跳”检查方式,我真的是很不支持。我原先不知道命令消息队列是为了进行“心跳”检查。这种“心跳”检查方式对设备任务提出了需求,要求每个任务能够放弃任何它们正在做的事,通过“ping”消息定时检查命令消息队列。我相信更好的方式应该是让设备注册一个太空飞行器飞行软件回调函数,该函数可通过异步方式,检查连续更新的计数器变量的值。如果在一定时间后,该值没有更新,则该设备任务很可能已经崩溃。当时确实对这种实现方式有很多争议,最后采用ping消息的方式,仅仅是因为这是一种通用的方式,而且已有的测试系统就是这么设计处理的。因此,即使系统不是为了需要花费好几分钟来处理的海量图像数据而设计的,但是该设计方式也不会发生改变。

    凤凰号火星着陆探测器的SSI和RAC/OM成像软件在设计、实现和测试上有很多工作要做,而且在最后,它完成了在其使命的整个生命周期中应该完成的任务。图3-11是该太空飞行器在火星上的第一天,即Sol 1,从SSI返回的第一批图像之一(S001EDN896308958_10D28R1M1)。

    结束语 - 图1

    图 3-11:从Sol 1的SSI返回的图像(图像来源:NASA/JPL/Arizona大学)

    更多关于凤凰号火星着陆探测器

    如果你想对凤凰号火星着陆探测器的使命了解更多,可以查看以下几个主要来源:

    Arizona大学的Phoenix网站:·http://phoenix.lpl.arizona.edu Jet Propulsion Laboratory(JPL实验室)的Phoenix网站:·http://www.jpl.nasa.gov/news/phoenix/main.php NASA的Phoenix网站:·http://www.nasa.gov/mission_pages/phoenix/main/index.html 在JPL,MIPL为各种任务做了很多图像处理,你可以通过以下站点了解更多:

    JPL的Mission图像处理实验室:·http://www-mipl.jpl.nasa.gov/

    如果你想对RAD6000 CPU、图像处理或嵌入式系统了解更多,可以查阅Wikipedia:http://www.wikipedia.org。