Distributed Layered Control
CellularSheaves.ControlSheaves.DistributedLayeredControl.LayeredControlProblem — Type
LayeredControlProblemProblem definition for a distributed layered control simulation.
pos_dim controls how many leading dimensions of each agent's stalk reference vector are passed to the agent's physical controller. For a sheaf using homogeneous/affine stalks (e.g. SE(3) with D=4) set pos_dim = D-1 to drop the homogeneous coordinate. For a pure Euclidean sheaf (e.g. D=2 spatial positions) set pos_dim = D to pass all coordinates. Defaults to D-1 for backward compatibility with the escort mission.
CellularSheaves.ControlSheaves.DistributedLayeredControl._init_agent_on_worker! — Function
_init_agent_on_worker!(agent_id::Int, x0::Vector{Float64}, dyn::AbstractAgentDynamics, dt::Float64, K_lqr::Matrix{Float64}, eps::Float64, use_velocity::Bool)Internal function called on worker to initialize agent state.
CellularSheaves.ControlSheaves.DistributedLayeredControl._step_agent_on_worker! — Method
_step_agent_on_worker!(agent_id::Int, qstar_i::Vector{Float64}, dt::Float64)Step agent on worker (position-only reference).
CellularSheaves.ControlSheaves.DistributedLayeredControl._step_agent_on_worker! — Method
_step_agent_on_worker!(agent_id::Int, qstar_i::Vector{Float64}, qstar_dot_i::Vector{Float64}, dt::Float64)Step agent on worker (joint position and velocity reference).
CellularSheaves.ControlSheaves.DistributedLayeredControl._step_agent_on_worker! — Method
_step_agent_on_worker!(agent_id::Int, qstar_i::Vector{Float64}, qstar_dot_i::Vector{Float64}, qstar_ddot_i::Vector{Float64}, dt::Float64)Step agent on worker (joint position, velocity, and acceleration reference).
CellularSheaves.ControlSheaves.DistributedLayeredControl.init_distributed_agents! — Method
init_distributed_agents!(pids, agent_configs, dt::Float64, eps::Float64; use_velocity::Bool=false)Deploys agent states to the specified worker processes. agent_configs is a Vector of Tuples (x0, dyn, K_lqr). If use_velocity=true, initializes JointTikhonovFilter on workers for tracking reference velocity.
CellularSheaves.ControlSheaves.DistributedLayeredControl.run_layered_simulation — Method
run_layered_simulation(prob::LayeredControlProblem, pids::Vector{Int}; mode=:distributed, nx::Int=10)Runs the layered control simulation defined by prob. If prob.target_velocity_func (and optionally prob.target_acceleration_func) are supplied, performs secondary/tertiary solves for reference velocity qstar_dot and acceleration qstar_ddot.