No version for distro humble showing github. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.0.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description Space Station OS. A future where anyone can develop space stations.
Checkout URI https://github.com/space-station-os/space_station_os.git
VCS Type git
VCS Version main
Last Updated 2026-02-16
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Active thermal control for SpaceStationOS

Maintainers

  • siddarth

Authors

No additional authors.

Space Station Thermal Control Subsystem

This package simulates the Active Thermal Control System (ATCS) of a space station. It models how heat is generated, accumulated in station nodes, transferred to coolant loops, and finally vented into space through radiators.

The system is built on ROS 2 using actions, services, and topic publishers/subscribers to mimic the real flow of thermal energy inside a space station.


🌍 How It Works

The thermal control simulation runs as a closed loop, with the following steps:

  1. Solar Heating

    • The sun_vector node publishes the position of the Sun.
    • The solar_heat_node converts this into heat input for the station’s thermal nodes.
  2. Thermal Nodes Heat Up

    • The thermals_solver node integrates heat flow across all nodes and links (defined in a YAML config).
    • It publishes each node’s temperature on /thermal/nodes/state.
    • If average temperature exceeds a threshold, it triggers cooling.
  3. Coolant Loop Activated
    • thermals_solver sends an action goal to /coolant_heat_transfer handled by cooling.cpp (CoolantActionServer).
    • The coolant absorbs heat based on:

    \(Q = m \cdot C_p \cdot \Delta T\) * Internal water loop temperature is updated and published on /tcs/internal_loop_heat.

  4. Heat Transferred to Ammonia Loop

    • The coolant loop transfers heat to the ammonia loop with efficiency losses.
    • This is published on /tcs/external_loop_a/status.
  5. Radiator Venting

    • If ammonia heat exceeds a threshold, the CoolantActionServer calls the /tcs/radiator_a/vent_heat service.
    • The radiators.cpp (RadiatorController) handles this by commanding solar joints (via /solar_controller/commands) to rotate and dump heat to space.
  6. Water Recycling

    • After several cooling cycles, the coolant server automatically:

      • Requests fresh water (/wrs/product_water_request).
      • Dumps used water into /grey_water.
  7. Diagnostics

    • Throughout the process, nodes publish to /thermals/diagnostics to flag overheating, failed cooling, or service issues.

Nodes Overview

  • thermals_solver Core simulator: integrates node temps, detects overheat, triggers cooling.

  • cooling (CoolantActionServer) Action server for cooling: absorbs heat, transfers to ammonia, vents via radiator.

  • radiators (RadiatorController) Handles radiator venting: rotates panels if excess heat > threshold.

  • sun_vector Publishes Sun position for orbital heating.

  • solar_heat_node Converts Sun position into actual heat load on nodes.

  • on_demand_publisher Diagnostic publisher for one-off checks.


Launch

All nodes can be started together:

ros2 launch space_station_thermal_control thermals.launch.py

This will bring up:

  • Thermal solver
  • Coolant action server
  • Radiator controller
  • Sun vector + solar heating

Key Interfaces

Topics

  • /thermal/nodes/state → Node temperatures

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Recent questions tagged space_station_thermal_control at Robotics Stack Exchange

No version for distro jazzy showing github. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.0.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description Space Station OS. A future where anyone can develop space stations.
Checkout URI https://github.com/space-station-os/space_station_os.git
VCS Type git
VCS Version main
Last Updated 2026-02-16
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Active thermal control for SpaceStationOS

Maintainers

  • siddarth

Authors

No additional authors.

Space Station Thermal Control Subsystem

This package simulates the Active Thermal Control System (ATCS) of a space station. It models how heat is generated, accumulated in station nodes, transferred to coolant loops, and finally vented into space through radiators.

The system is built on ROS 2 using actions, services, and topic publishers/subscribers to mimic the real flow of thermal energy inside a space station.


🌍 How It Works

The thermal control simulation runs as a closed loop, with the following steps:

  1. Solar Heating

    • The sun_vector node publishes the position of the Sun.
    • The solar_heat_node converts this into heat input for the station’s thermal nodes.
  2. Thermal Nodes Heat Up

    • The thermals_solver node integrates heat flow across all nodes and links (defined in a YAML config).
    • It publishes each node’s temperature on /thermal/nodes/state.
    • If average temperature exceeds a threshold, it triggers cooling.
  3. Coolant Loop Activated
    • thermals_solver sends an action goal to /coolant_heat_transfer handled by cooling.cpp (CoolantActionServer).
    • The coolant absorbs heat based on:

    \(Q = m \cdot C_p \cdot \Delta T\) * Internal water loop temperature is updated and published on /tcs/internal_loop_heat.

  4. Heat Transferred to Ammonia Loop

    • The coolant loop transfers heat to the ammonia loop with efficiency losses.
    • This is published on /tcs/external_loop_a/status.
  5. Radiator Venting

    • If ammonia heat exceeds a threshold, the CoolantActionServer calls the /tcs/radiator_a/vent_heat service.
    • The radiators.cpp (RadiatorController) handles this by commanding solar joints (via /solar_controller/commands) to rotate and dump heat to space.
  6. Water Recycling

    • After several cooling cycles, the coolant server automatically:

      • Requests fresh water (/wrs/product_water_request).
      • Dumps used water into /grey_water.
  7. Diagnostics

    • Throughout the process, nodes publish to /thermals/diagnostics to flag overheating, failed cooling, or service issues.

Nodes Overview

  • thermals_solver Core simulator: integrates node temps, detects overheat, triggers cooling.

  • cooling (CoolantActionServer) Action server for cooling: absorbs heat, transfers to ammonia, vents via radiator.

  • radiators (RadiatorController) Handles radiator venting: rotates panels if excess heat > threshold.

  • sun_vector Publishes Sun position for orbital heating.

  • solar_heat_node Converts Sun position into actual heat load on nodes.

  • on_demand_publisher Diagnostic publisher for one-off checks.


Launch

All nodes can be started together:

ros2 launch space_station_thermal_control thermals.launch.py

This will bring up:

  • Thermal solver
  • Coolant action server
  • Radiator controller
  • Sun vector + solar heating

Key Interfaces

Topics

  • /thermal/nodes/state → Node temperatures

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Recent questions tagged space_station_thermal_control at Robotics Stack Exchange

No version for distro kilted showing github. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.0.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description Space Station OS. A future where anyone can develop space stations.
Checkout URI https://github.com/space-station-os/space_station_os.git
VCS Type git
VCS Version main
Last Updated 2026-02-16
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Active thermal control for SpaceStationOS

Maintainers

  • siddarth

Authors

No additional authors.

Space Station Thermal Control Subsystem

This package simulates the Active Thermal Control System (ATCS) of a space station. It models how heat is generated, accumulated in station nodes, transferred to coolant loops, and finally vented into space through radiators.

The system is built on ROS 2 using actions, services, and topic publishers/subscribers to mimic the real flow of thermal energy inside a space station.


🌍 How It Works

The thermal control simulation runs as a closed loop, with the following steps:

  1. Solar Heating

    • The sun_vector node publishes the position of the Sun.
    • The solar_heat_node converts this into heat input for the station’s thermal nodes.
  2. Thermal Nodes Heat Up

    • The thermals_solver node integrates heat flow across all nodes and links (defined in a YAML config).
    • It publishes each node’s temperature on /thermal/nodes/state.
    • If average temperature exceeds a threshold, it triggers cooling.
  3. Coolant Loop Activated
    • thermals_solver sends an action goal to /coolant_heat_transfer handled by cooling.cpp (CoolantActionServer).
    • The coolant absorbs heat based on:

    \(Q = m \cdot C_p \cdot \Delta T\) * Internal water loop temperature is updated and published on /tcs/internal_loop_heat.

  4. Heat Transferred to Ammonia Loop

    • The coolant loop transfers heat to the ammonia loop with efficiency losses.
    • This is published on /tcs/external_loop_a/status.
  5. Radiator Venting

    • If ammonia heat exceeds a threshold, the CoolantActionServer calls the /tcs/radiator_a/vent_heat service.
    • The radiators.cpp (RadiatorController) handles this by commanding solar joints (via /solar_controller/commands) to rotate and dump heat to space.
  6. Water Recycling

    • After several cooling cycles, the coolant server automatically:

      • Requests fresh water (/wrs/product_water_request).
      • Dumps used water into /grey_water.
  7. Diagnostics

    • Throughout the process, nodes publish to /thermals/diagnostics to flag overheating, failed cooling, or service issues.

Nodes Overview

  • thermals_solver Core simulator: integrates node temps, detects overheat, triggers cooling.

  • cooling (CoolantActionServer) Action server for cooling: absorbs heat, transfers to ammonia, vents via radiator.

  • radiators (RadiatorController) Handles radiator venting: rotates panels if excess heat > threshold.

  • sun_vector Publishes Sun position for orbital heating.

  • solar_heat_node Converts Sun position into actual heat load on nodes.

  • on_demand_publisher Diagnostic publisher for one-off checks.


Launch

All nodes can be started together:

ros2 launch space_station_thermal_control thermals.launch.py

This will bring up:

  • Thermal solver
  • Coolant action server
  • Radiator controller
  • Sun vector + solar heating

Key Interfaces

Topics

  • /thermal/nodes/state → Node temperatures

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Recent questions tagged space_station_thermal_control at Robotics Stack Exchange

No version for distro rolling showing github. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.0.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description Space Station OS. A future where anyone can develop space stations.
Checkout URI https://github.com/space-station-os/space_station_os.git
VCS Type git
VCS Version main
Last Updated 2026-02-16
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Active thermal control for SpaceStationOS

Maintainers

  • siddarth

Authors

No additional authors.

Space Station Thermal Control Subsystem

This package simulates the Active Thermal Control System (ATCS) of a space station. It models how heat is generated, accumulated in station nodes, transferred to coolant loops, and finally vented into space through radiators.

The system is built on ROS 2 using actions, services, and topic publishers/subscribers to mimic the real flow of thermal energy inside a space station.


🌍 How It Works

The thermal control simulation runs as a closed loop, with the following steps:

  1. Solar Heating

    • The sun_vector node publishes the position of the Sun.
    • The solar_heat_node converts this into heat input for the station’s thermal nodes.
  2. Thermal Nodes Heat Up

    • The thermals_solver node integrates heat flow across all nodes and links (defined in a YAML config).
    • It publishes each node’s temperature on /thermal/nodes/state.
    • If average temperature exceeds a threshold, it triggers cooling.
  3. Coolant Loop Activated
    • thermals_solver sends an action goal to /coolant_heat_transfer handled by cooling.cpp (CoolantActionServer).
    • The coolant absorbs heat based on:

    \(Q = m \cdot C_p \cdot \Delta T\) * Internal water loop temperature is updated and published on /tcs/internal_loop_heat.

  4. Heat Transferred to Ammonia Loop

    • The coolant loop transfers heat to the ammonia loop with efficiency losses.
    • This is published on /tcs/external_loop_a/status.
  5. Radiator Venting

    • If ammonia heat exceeds a threshold, the CoolantActionServer calls the /tcs/radiator_a/vent_heat service.
    • The radiators.cpp (RadiatorController) handles this by commanding solar joints (via /solar_controller/commands) to rotate and dump heat to space.
  6. Water Recycling

    • After several cooling cycles, the coolant server automatically:

      • Requests fresh water (/wrs/product_water_request).
      • Dumps used water into /grey_water.
  7. Diagnostics

    • Throughout the process, nodes publish to /thermals/diagnostics to flag overheating, failed cooling, or service issues.

Nodes Overview

  • thermals_solver Core simulator: integrates node temps, detects overheat, triggers cooling.

  • cooling (CoolantActionServer) Action server for cooling: absorbs heat, transfers to ammonia, vents via radiator.

  • radiators (RadiatorController) Handles radiator venting: rotates panels if excess heat > threshold.

  • sun_vector Publishes Sun position for orbital heating.

  • solar_heat_node Converts Sun position into actual heat load on nodes.

  • on_demand_publisher Diagnostic publisher for one-off checks.


Launch

All nodes can be started together:

ros2 launch space_station_thermal_control thermals.launch.py

This will bring up:

  • Thermal solver
  • Coolant action server
  • Radiator controller
  • Sun vector + solar heating

Key Interfaces

Topics

  • /thermal/nodes/state → Node temperatures

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Recent questions tagged space_station_thermal_control at Robotics Stack Exchange

Package Summary

Version 0.0.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description Space Station OS. A future where anyone can develop space stations.
Checkout URI https://github.com/space-station-os/space_station_os.git
VCS Type git
VCS Version main
Last Updated 2026-02-16
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Active thermal control for SpaceStationOS

Maintainers

  • siddarth

Authors

No additional authors.

Space Station Thermal Control Subsystem

This package simulates the Active Thermal Control System (ATCS) of a space station. It models how heat is generated, accumulated in station nodes, transferred to coolant loops, and finally vented into space through radiators.

The system is built on ROS 2 using actions, services, and topic publishers/subscribers to mimic the real flow of thermal energy inside a space station.


🌍 How It Works

The thermal control simulation runs as a closed loop, with the following steps:

  1. Solar Heating

    • The sun_vector node publishes the position of the Sun.
    • The solar_heat_node converts this into heat input for the station’s thermal nodes.
  2. Thermal Nodes Heat Up

    • The thermals_solver node integrates heat flow across all nodes and links (defined in a YAML config).
    • It publishes each node’s temperature on /thermal/nodes/state.
    • If average temperature exceeds a threshold, it triggers cooling.
  3. Coolant Loop Activated
    • thermals_solver sends an action goal to /coolant_heat_transfer handled by cooling.cpp (CoolantActionServer).
    • The coolant absorbs heat based on:

    \(Q = m \cdot C_p \cdot \Delta T\) * Internal water loop temperature is updated and published on /tcs/internal_loop_heat.

  4. Heat Transferred to Ammonia Loop

    • The coolant loop transfers heat to the ammonia loop with efficiency losses.
    • This is published on /tcs/external_loop_a/status.
  5. Radiator Venting

    • If ammonia heat exceeds a threshold, the CoolantActionServer calls the /tcs/radiator_a/vent_heat service.
    • The radiators.cpp (RadiatorController) handles this by commanding solar joints (via /solar_controller/commands) to rotate and dump heat to space.
  6. Water Recycling

    • After several cooling cycles, the coolant server automatically:

      • Requests fresh water (/wrs/product_water_request).
      • Dumps used water into /grey_water.
  7. Diagnostics

    • Throughout the process, nodes publish to /thermals/diagnostics to flag overheating, failed cooling, or service issues.

Nodes Overview

  • thermals_solver Core simulator: integrates node temps, detects overheat, triggers cooling.

  • cooling (CoolantActionServer) Action server for cooling: absorbs heat, transfers to ammonia, vents via radiator.

  • radiators (RadiatorController) Handles radiator venting: rotates panels if excess heat > threshold.

  • sun_vector Publishes Sun position for orbital heating.

  • solar_heat_node Converts Sun position into actual heat load on nodes.

  • on_demand_publisher Diagnostic publisher for one-off checks.


Launch

All nodes can be started together:

ros2 launch space_station_thermal_control thermals.launch.py

This will bring up:

  • Thermal solver
  • Coolant action server
  • Radiator controller
  • Sun vector + solar heating

Key Interfaces

Topics

  • /thermal/nodes/state → Node temperatures

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Recent questions tagged space_station_thermal_control at Robotics Stack Exchange

No version for distro galactic showing github. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.0.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description Space Station OS. A future where anyone can develop space stations.
Checkout URI https://github.com/space-station-os/space_station_os.git
VCS Type git
VCS Version main
Last Updated 2026-02-16
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Active thermal control for SpaceStationOS

Maintainers

  • siddarth

Authors

No additional authors.

Space Station Thermal Control Subsystem

This package simulates the Active Thermal Control System (ATCS) of a space station. It models how heat is generated, accumulated in station nodes, transferred to coolant loops, and finally vented into space through radiators.

The system is built on ROS 2 using actions, services, and topic publishers/subscribers to mimic the real flow of thermal energy inside a space station.


🌍 How It Works

The thermal control simulation runs as a closed loop, with the following steps:

  1. Solar Heating

    • The sun_vector node publishes the position of the Sun.
    • The solar_heat_node converts this into heat input for the station’s thermal nodes.
  2. Thermal Nodes Heat Up

    • The thermals_solver node integrates heat flow across all nodes and links (defined in a YAML config).
    • It publishes each node’s temperature on /thermal/nodes/state.
    • If average temperature exceeds a threshold, it triggers cooling.
  3. Coolant Loop Activated
    • thermals_solver sends an action goal to /coolant_heat_transfer handled by cooling.cpp (CoolantActionServer).
    • The coolant absorbs heat based on:

    \(Q = m \cdot C_p \cdot \Delta T\) * Internal water loop temperature is updated and published on /tcs/internal_loop_heat.

  4. Heat Transferred to Ammonia Loop

    • The coolant loop transfers heat to the ammonia loop with efficiency losses.
    • This is published on /tcs/external_loop_a/status.
  5. Radiator Venting

    • If ammonia heat exceeds a threshold, the CoolantActionServer calls the /tcs/radiator_a/vent_heat service.
    • The radiators.cpp (RadiatorController) handles this by commanding solar joints (via /solar_controller/commands) to rotate and dump heat to space.
  6. Water Recycling

    • After several cooling cycles, the coolant server automatically:

      • Requests fresh water (/wrs/product_water_request).
      • Dumps used water into /grey_water.
  7. Diagnostics

    • Throughout the process, nodes publish to /thermals/diagnostics to flag overheating, failed cooling, or service issues.

Nodes Overview

  • thermals_solver Core simulator: integrates node temps, detects overheat, triggers cooling.

  • cooling (CoolantActionServer) Action server for cooling: absorbs heat, transfers to ammonia, vents via radiator.

  • radiators (RadiatorController) Handles radiator venting: rotates panels if excess heat > threshold.

  • sun_vector Publishes Sun position for orbital heating.

  • solar_heat_node Converts Sun position into actual heat load on nodes.

  • on_demand_publisher Diagnostic publisher for one-off checks.


Launch

All nodes can be started together:

ros2 launch space_station_thermal_control thermals.launch.py

This will bring up:

  • Thermal solver
  • Coolant action server
  • Radiator controller
  • Sun vector + solar heating

Key Interfaces

Topics

  • /thermal/nodes/state → Node temperatures

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Recent questions tagged space_station_thermal_control at Robotics Stack Exchange

No version for distro iron showing github. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.0.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description Space Station OS. A future where anyone can develop space stations.
Checkout URI https://github.com/space-station-os/space_station_os.git
VCS Type git
VCS Version main
Last Updated 2026-02-16
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Active thermal control for SpaceStationOS

Maintainers

  • siddarth

Authors

No additional authors.

Space Station Thermal Control Subsystem

This package simulates the Active Thermal Control System (ATCS) of a space station. It models how heat is generated, accumulated in station nodes, transferred to coolant loops, and finally vented into space through radiators.

The system is built on ROS 2 using actions, services, and topic publishers/subscribers to mimic the real flow of thermal energy inside a space station.


🌍 How It Works

The thermal control simulation runs as a closed loop, with the following steps:

  1. Solar Heating

    • The sun_vector node publishes the position of the Sun.
    • The solar_heat_node converts this into heat input for the station’s thermal nodes.
  2. Thermal Nodes Heat Up

    • The thermals_solver node integrates heat flow across all nodes and links (defined in a YAML config).
    • It publishes each node’s temperature on /thermal/nodes/state.
    • If average temperature exceeds a threshold, it triggers cooling.
  3. Coolant Loop Activated
    • thermals_solver sends an action goal to /coolant_heat_transfer handled by cooling.cpp (CoolantActionServer).
    • The coolant absorbs heat based on:

    \(Q = m \cdot C_p \cdot \Delta T\) * Internal water loop temperature is updated and published on /tcs/internal_loop_heat.

  4. Heat Transferred to Ammonia Loop

    • The coolant loop transfers heat to the ammonia loop with efficiency losses.
    • This is published on /tcs/external_loop_a/status.
  5. Radiator Venting

    • If ammonia heat exceeds a threshold, the CoolantActionServer calls the /tcs/radiator_a/vent_heat service.
    • The radiators.cpp (RadiatorController) handles this by commanding solar joints (via /solar_controller/commands) to rotate and dump heat to space.
  6. Water Recycling

    • After several cooling cycles, the coolant server automatically:

      • Requests fresh water (/wrs/product_water_request).
      • Dumps used water into /grey_water.
  7. Diagnostics

    • Throughout the process, nodes publish to /thermals/diagnostics to flag overheating, failed cooling, or service issues.

Nodes Overview

  • thermals_solver Core simulator: integrates node temps, detects overheat, triggers cooling.

  • cooling (CoolantActionServer) Action server for cooling: absorbs heat, transfers to ammonia, vents via radiator.

  • radiators (RadiatorController) Handles radiator venting: rotates panels if excess heat > threshold.

  • sun_vector Publishes Sun position for orbital heating.

  • solar_heat_node Converts Sun position into actual heat load on nodes.

  • on_demand_publisher Diagnostic publisher for one-off checks.


Launch

All nodes can be started together:

ros2 launch space_station_thermal_control thermals.launch.py

This will bring up:

  • Thermal solver
  • Coolant action server
  • Radiator controller
  • Sun vector + solar heating

Key Interfaces

Topics

  • /thermal/nodes/state → Node temperatures

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Recent questions tagged space_station_thermal_control at Robotics Stack Exchange

No version for distro melodic showing github. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.0.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description Space Station OS. A future where anyone can develop space stations.
Checkout URI https://github.com/space-station-os/space_station_os.git
VCS Type git
VCS Version main
Last Updated 2026-02-16
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Active thermal control for SpaceStationOS

Maintainers

  • siddarth

Authors

No additional authors.

Space Station Thermal Control Subsystem

This package simulates the Active Thermal Control System (ATCS) of a space station. It models how heat is generated, accumulated in station nodes, transferred to coolant loops, and finally vented into space through radiators.

The system is built on ROS 2 using actions, services, and topic publishers/subscribers to mimic the real flow of thermal energy inside a space station.


🌍 How It Works

The thermal control simulation runs as a closed loop, with the following steps:

  1. Solar Heating

    • The sun_vector node publishes the position of the Sun.
    • The solar_heat_node converts this into heat input for the station’s thermal nodes.
  2. Thermal Nodes Heat Up

    • The thermals_solver node integrates heat flow across all nodes and links (defined in a YAML config).
    • It publishes each node’s temperature on /thermal/nodes/state.
    • If average temperature exceeds a threshold, it triggers cooling.
  3. Coolant Loop Activated
    • thermals_solver sends an action goal to /coolant_heat_transfer handled by cooling.cpp (CoolantActionServer).
    • The coolant absorbs heat based on:

    \(Q = m \cdot C_p \cdot \Delta T\) * Internal water loop temperature is updated and published on /tcs/internal_loop_heat.

  4. Heat Transferred to Ammonia Loop

    • The coolant loop transfers heat to the ammonia loop with efficiency losses.
    • This is published on /tcs/external_loop_a/status.
  5. Radiator Venting

    • If ammonia heat exceeds a threshold, the CoolantActionServer calls the /tcs/radiator_a/vent_heat service.
    • The radiators.cpp (RadiatorController) handles this by commanding solar joints (via /solar_controller/commands) to rotate and dump heat to space.
  6. Water Recycling

    • After several cooling cycles, the coolant server automatically:

      • Requests fresh water (/wrs/product_water_request).
      • Dumps used water into /grey_water.
  7. Diagnostics

    • Throughout the process, nodes publish to /thermals/diagnostics to flag overheating, failed cooling, or service issues.

Nodes Overview

  • thermals_solver Core simulator: integrates node temps, detects overheat, triggers cooling.

  • cooling (CoolantActionServer) Action server for cooling: absorbs heat, transfers to ammonia, vents via radiator.

  • radiators (RadiatorController) Handles radiator venting: rotates panels if excess heat > threshold.

  • sun_vector Publishes Sun position for orbital heating.

  • solar_heat_node Converts Sun position into actual heat load on nodes.

  • on_demand_publisher Diagnostic publisher for one-off checks.


Launch

All nodes can be started together:

ros2 launch space_station_thermal_control thermals.launch.py

This will bring up:

  • Thermal solver
  • Coolant action server
  • Radiator controller
  • Sun vector + solar heating

Key Interfaces

Topics

  • /thermal/nodes/state → Node temperatures

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Recent questions tagged space_station_thermal_control at Robotics Stack Exchange

No version for distro noetic showing github. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.0.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description Space Station OS. A future where anyone can develop space stations.
Checkout URI https://github.com/space-station-os/space_station_os.git
VCS Type git
VCS Version main
Last Updated 2026-02-16
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Active thermal control for SpaceStationOS

Maintainers

  • siddarth

Authors

No additional authors.

Space Station Thermal Control Subsystem

This package simulates the Active Thermal Control System (ATCS) of a space station. It models how heat is generated, accumulated in station nodes, transferred to coolant loops, and finally vented into space through radiators.

The system is built on ROS 2 using actions, services, and topic publishers/subscribers to mimic the real flow of thermal energy inside a space station.


🌍 How It Works

The thermal control simulation runs as a closed loop, with the following steps:

  1. Solar Heating

    • The sun_vector node publishes the position of the Sun.
    • The solar_heat_node converts this into heat input for the station’s thermal nodes.
  2. Thermal Nodes Heat Up

    • The thermals_solver node integrates heat flow across all nodes and links (defined in a YAML config).
    • It publishes each node’s temperature on /thermal/nodes/state.
    • If average temperature exceeds a threshold, it triggers cooling.
  3. Coolant Loop Activated
    • thermals_solver sends an action goal to /coolant_heat_transfer handled by cooling.cpp (CoolantActionServer).
    • The coolant absorbs heat based on:

    \(Q = m \cdot C_p \cdot \Delta T\) * Internal water loop temperature is updated and published on /tcs/internal_loop_heat.

  4. Heat Transferred to Ammonia Loop

    • The coolant loop transfers heat to the ammonia loop with efficiency losses.
    • This is published on /tcs/external_loop_a/status.
  5. Radiator Venting

    • If ammonia heat exceeds a threshold, the CoolantActionServer calls the /tcs/radiator_a/vent_heat service.
    • The radiators.cpp (RadiatorController) handles this by commanding solar joints (via /solar_controller/commands) to rotate and dump heat to space.
  6. Water Recycling

    • After several cooling cycles, the coolant server automatically:

      • Requests fresh water (/wrs/product_water_request).
      • Dumps used water into /grey_water.
  7. Diagnostics

    • Throughout the process, nodes publish to /thermals/diagnostics to flag overheating, failed cooling, or service issues.

Nodes Overview

  • thermals_solver Core simulator: integrates node temps, detects overheat, triggers cooling.

  • cooling (CoolantActionServer) Action server for cooling: absorbs heat, transfers to ammonia, vents via radiator.

  • radiators (RadiatorController) Handles radiator venting: rotates panels if excess heat > threshold.

  • sun_vector Publishes Sun position for orbital heating.

  • solar_heat_node Converts Sun position into actual heat load on nodes.

  • on_demand_publisher Diagnostic publisher for one-off checks.


Launch

All nodes can be started together:

ros2 launch space_station_thermal_control thermals.launch.py

This will bring up:

  • Thermal solver
  • Coolant action server
  • Radiator controller
  • Sun vector + solar heating

Key Interfaces

Topics

  • /thermal/nodes/state → Node temperatures

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Recent questions tagged space_station_thermal_control at Robotics Stack Exchange