Skip to content

Instantly share code, notes, and snippets.

@cohnt
Last active January 31, 2024 21:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cohnt/8322d63c925a156c840d52f9a466b845 to your computer and use it in GitHub Desktop.
Save cohnt/8322d63c925a156c840d52f9a466b845 to your computer and use it in GitHub Desktop.
GcsTrajectoryOptimization::GetGraphvizString Crash
import numpy as np
import pickle
from pydrake.all import GcsTrajectoryOptimization, GraphOfConvexSetsOptions, Point
start = np.array([2.72861773, -1.63614893, -2.24210693, -1.09417266, -2.47138911, -1.08448094, -2.02794058, -1.38])
goal = np.array([2.74726035, -0.8637625, -1.89093302, -0.78100625, -2.54191325, -1.20940114, -0.99160079, -1.04])
with open("regions.pickle", "rb") as f:
regions = pickle.load(f)
print(len(regions))
order = 1
continuity = 0
gcs = GcsTrajectoryOptimization(8)
if continuity > 0:
gcs.AddPathContinuityConstraints(continuity)
main_graph = gcs.AddRegions(regions, order, h_min=0.1, h_max=100, name="")
start_graph = gcs.AddRegions([Point(start)], 0)
goal_graph = gcs.AddRegions([Point(goal)], 0)
gcs.AddEdges(start_graph, main_graph)
gcs.AddEdges(main_graph, goal_graph)
gcs.AddPathLengthCost()
# gcs.AddVelocityBounds(-np.ones(8), np.ones(8))
s = gcs.GetGraphvizString()
options = GraphOfConvexSetsOptions()
options.max_rounding_trials = 1000
options.max_rounded_paths = 100
options.convex_relaxation = True
traj, result = gcs.SolvePath(start_graph, goal_graph, options)
s = gcs.GetGraphvizString(result, show_slack=False)
print(result.is_success())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment