Skip to content

William7743/satellite_simulation_pybllute

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🛰️ OpenPBS - 卫星碰撞仿真系统

OpenPBS (Open-source Satellite collision simulation & Physics-Based visualization System) 是一个基于 PyBullet 物理引擎的实时卫星碰撞仿真与 3D 可视化系统。

✨ 核心功能

  • 🌍 高保真 3D 地球可视化 - 基于 Three.js 的实时渲染
  • ☀️ 实时 UTC 晨昏线 - 基于真实时间的昼夜边界
  • 🛰️ 卫星轨道仿真 - PyBullet 物理引擎驱动的精确轨道力学
  • 💥 碰撞检测 - 实时卫星碰撞检测与响应
  • 🌐 WebSocket 通信 - 低延迟的实时数据传输
  • 🎮 交互式控制 - 创建自定义卫星、控制仿真、多场景测试

🚀 快速开始

1. 启动所有服务器

./start_all.sh

这将启动:

  • PyBullet WebSocket 服务器 (端口 8766) - 物理仿真引擎
  • 云层服务器 (端口 5002) - 实时云层数据(可选)

2. 打开可视化界面

在浏览器中打开:

web_client/index.html

或通过 HTTP 服务器:

python3 -m http.server 8080 --directory web_client
# 然后访问 http://localhost:8080/index.html

3. 连接并运行

  1. 点击 "连接服务器" 按钮
  2. 点击 "开始仿真" 按钮
  3. 观察卫星在轨道上运行

📁 项目结构

OpenPBS/
├── pybullet_websocket_server.py    # PyBullet WebSocket 服务器
├── cloud_server.py                  # 实时云层服务器
├── core_simulator_framework.py      # 核心仿真框架
├── src/modules/                     # 仿真模块
│   ├── satellite_sim.py            # 卫星仿真模块
│   ├── physics_engine.py           # 物理引擎
│   └── ...
├── web_client/                      # 前端可视化
│   ├── index.html                   # 主页面
│   └── visualization_client.js     # Three.js 可视化
├── start_all.sh                     # 启动所有服务
└── stop_all.sh                      # 停止所有服务

🎯 测试场景

系统提供多种测试场景:

  • 默认: LEO 轨道(10 颗卫星)
  • 碰撞测试: 两星相撞 / 100 星密集
  • 小轨道: 高碰撞概率
  • 随机场景: 随机生成

🛠️ 技术栈

后端

  • Python 3.12+
  • PyBullet - 物理仿真引擎
  • NumPy - 数值计算
  • WebSocket - 实时通信
  • Flask - 云层服务器

前端

  • Three.js r128 - 3D 渲染
  • HTML5/CSS3 - 用户界面
  • WebSocket API - 实时数据接收

📖 文档

🎮 主要特性

1. 实时 UTC 晨昏线

  • 基于真实 UTC 时间的昼夜分界线
  • 太阳位置随时间实时更新
  • 地球自转与太阳位置完美同步

2. 卫星仿真

  • 基于 PyBullet 的精确轨道力学
  • 真实的地球引力模拟
  • 碰撞检测与碎片生成

3. 交互控制

  • 创建自定义卫星(位置、速度、形状)
  • 实时控制仿真(开始、暂停、重置)
  • 多种预设场景快速切换

4. 可视化

  • NASA Blue Marble 卫星纹理
  • 经纬度网格线
  • 卫星轨迹显示
  • 实时 FPS 和状态监控

📊 系统要求

最低要求

  • Python 3.8+
  • 2GB RAM
  • 现代浏览器(Chrome/Firefox/Safari)

推荐配置

  • Python 3.12+
  • 4GB+ RAM
  • 支持 WebGL 2.0 的显卡

🔧 管理命令

# 启动所有服务
./start_all.sh

# 停止所有服务
./stop_all.sh

# 查看服务器状态
ps aux | grep -E "(pybullet_websocket_server|cloud_server)"

# 查看日志
tail -f pybullet_server.log
tail -f cloud_server.log

🌐 端口说明

端口 服务 说明
8766 PyBullet WebSocket 物理仿真数据流
5002 云层服务器 实时云层图片
8080 HTTP 服务器 前端页面服务(可选)

📝 版本历史

  • v6.5-clean - 移除地名标注和云层,简洁地球
  • v6.4-no-labels - 移除地名标注
  • v6.3.1-terminator-fixed - 修复光源冲突,实现实时晨昏线
  • v6.2-simple-earth - 简化地球渲染
  • v6.0-v6.1 - 早期版本

🤝 贡献

欢迎提交 Issue 和 Pull Request!

📄 许可证

MIT License

🙏 致谢

  • PyBullet - 物理仿真引擎
  • Three.js - 3D 渲染库
  • NASA - Blue Marble 地球纹理

状态: ✅ 生产就绪 最后更新: 2025-01-13

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors