FreeBuf|卫星黑客利器:OpenATS新版本更新( 四 )


默认配置下OpenATS通过共享内存获取GPSD的经纬度、高度、时间等信息用于计算卫星角度 , 此为推荐配置 , 使用者可以通过修改配置文件修改成直接使用GPS串口信息 , 也可以自己更换GPS解析库 , 但本人不建议使用 , 使用GPSD有以下好处:1、GPSD对GPS模块的信息处理技术更加成熟 , 处理速度约为10ms , 精度高稳定性好 , 如果使用GPS模块原始数据的话会因为数据的漂移导致追踪受到影响 。 2、GPSD可以同时支持别的软件例如NTPD进行授时服务 , 可以校准计算机本地的时间让追踪系统达到更精准时间 , GPS授时精确度可以达到20~30ns(1ns为十亿分之一秒) , 经过串口通信、处理 , 仍然可以保证在百毫秒左右的精度 , 可以大大减少计算误差 。 3、GPSD支持$GPHDT测向语句 , 可以对天线系统的方位角进行初步修正 , 为今后静中通、动中通做铺垫 。 今后OpenATS会支持静中通、动中通 , 通过传感器在单片机上做PID算法实时修正 。
由于系统采用高精度追踪 , 代码中全部采用双精度类型(虽然float够用) , 获取系统时间为毫秒级(用的ftime函数) , 所以对时间要求很高 , 如果采用GPSD和NTPD协助对系统授时的话 , 那么时间可以高精度计算卫星位置 , 但如果采用GPS模块的话 , 受模块的串口数据频率的影响 , 计算实时性受到限制 , 可以使用指令将GPS模块设置串口通信频率大一些如10Hz 。 这也是不建议直接使用GPS模块采集数据的原因 , 建议使用GPSD服务 。
OpenATS使用的追踪核心技术为卫星TLE星历追踪 , 通过TLE轨道数据计算出卫星当前的位置 , 这种追踪优势明显 , 但缺点也有许多 , TLE轨道星历数据由于其根数比较特殊 , 必须配合SDP4算法导致预报精度有限 , 当然针对我们来讲足够精确了 。 TLE精度随着时间的变化误差漂移变大 , 所以需要经常更新TLE数据保持其精度 。 TLE分发由北美航空司令部(NORAD)分发 , 一些军事卫星等敏感卫星不在分发之列 。 OpenATS运行后会在4小时自动检查我服务器上的数据并更新本地数据 , 本人的服务器后台每4小时自动从SpaceTrack网站更新数据(NORAD每天更新两次) , 由于美国政府的规定:TLE数据个人或者组织分发受到限制 , 还请各位低调使用或者更换别的服务器地址(美国有几个组织提供TLE数据下载) 。 在此还要感谢“孤独小白”简总赠送的个人网站服务器 。
OpenATS的目标追踪功能是一个新亮点 , 可以用作例如无人机、气球、飞机、火箭等目标物体的追踪 , OpenATS启动目标追踪后 , 会在本地开启TCP监听端口 , 使用者仅需要将目标物体的GPS数据发送过来即可 。 GPS数据格式为:LAT:XX.XXXXXLNG:XXX.XXXXXALT:XXX.XXXXX , 注意的是数据格式遵循:“xx.xxxxxxx度” , 而非“度分秒”格式 , 需要注意 。 玩法例如玩家可以修改一下dump1090等ADS-B软件 , 可以将飞机的经纬度传送给OpenATS , OpenATS会控制天线一直跟踪飞机 。 还有一些无人机爱好者也可以利用无人机发送回来的位置数据发送给OpenATS , 自动追踪无人机获取更大的航行距离 , 更多的玩法还请自己想象 。 例如把天线换成激光炮 , 再做个多普勒雷达把角度计算出来 , 就是一个自动防御武器了 , 仅供参考哈 , 别来真的 。
FreeBuf|卫星黑客利器:OpenATS新版本更新
文章图片
手动追踪模式时 , 输入两个角度数据控制天线指向 , 格式为:方位角仰角 , 例如:265.3546.35则天线指向方位角265.35仰角46.35 , 非常简单 , 输入q等命令会退出 , 天线自动归零 。 输入”X修正角度“修正方位角0点位置 , 输入“Y修正角度”修正仰角0点位置 , 用于校准天线0点位置 。
FreeBuf|卫星黑客利器:OpenATS新版本更新
文章图片
非常感谢荷兰射电天文研究所ASTRON项目的天文学家CeesBassa针对卫星轨道坐标转换的指导 , 计算卫星卫星角度的核心代码都是采用他的开源作品 。 最后要说明的是由于本人时间较忙 , 请使用者需要具有一定的计算机基础 , 包括一些安装依赖环境、单片机等基本问题 , 还请自行查找资料解决 , 暂时不提供技术支持谢谢谅解 。 同时欢迎关注本人个人公众号以及网站 , 有最新的信息或者好玩的东西会及时更新上去 。


推荐阅读