First off, if anyone knows how to change the tag
reachability-analysis, please do so! Discourse won’t let me type
reachability-analysis in the category because a previous tag with an incorrect spelling was created.
I want to convexify a closed orbit (e.g. a 6-dimensional line which closes in on itself). How can I do this? In another post, @mforets kindly offered a detailed example for convexifying a manifold. I can’t figure out how to do so with a simple “line”, though.
I can approximate the plane of the orbit, as in the image below, but I can’t figure out how to only take the edge of the orbital plane.
Some pseudo code for what I’d like to do is below. Much of this code is taken directly from @mforets’ example provided in the previously linked Discourse post.
using Plots using LazySets using DifferentialEquations using ReachabilityAnalysis using GeneralAstrodynamics points = let orbit, T = halo(SunEarth; Az = 0.005, L = 2) trajectory = propagate(orbit, T; abstol=1e-16) Matrix(solution(trajectory)') end @assert points[1,:] ≈ points[end,:] convexified_points = [ Singleton(row[1:2]) for row ∈ eachrow(points) ] dom = box_approximation(UnionSetArray(convexified_points)) part = split(dom, [2, 2], [4, 1]) idx_dom =  for D in part idx = findall(p -> p ⊆ D, convexified_points) isempty(idx) && continue push!(idx_dom, idx) end myset = UnionSetArray([ConvexHullArray(convexified_points[ii]) for ii in idx_dom]) plot(myset)