指南针步态的直接转录

问题描述 投票:0回答:1

我想为罗盘步态系统设置轨迹优化(如讲座视频所提示,使用控制权限可以扩大吸引力区域,从而实现稳定的行走)。

在尝试在罗盘步态上使用DirectTranscription类时,我遇到了以下问题:

plant = CompassGait()
context = plant.CreateDefaultContext()
DirectTranscription(plant, context, 21, TimeStep(0.01))

导致以下错误:

An exception has occurred, use %tb to see the full traceback.

SystemExit: Failure at bazel-out/k8-opt/bin/systems/framework/_virtual_includes/context/drake/systems/framework/context.h:111 in num_total_states(): condition 'num_abstract_states() == 0' failed.

是否有解决此问题的快速方法?在查看指南针步态实现时,抽象状态仅用于可视化。原则上,我可以复制指南针步态实现并注释掉抽象状态。但是我正在使用colab笔记本环境,所以我不确定如何轻松地做到这一点。

谢谢!

drake
1个回答
0
投票

DirectCollocation实现有一个选项,assume_non_continuous_states_are_fixed针对我在这里的无轮毂示例解决了这个问题:http://underactuated.mit.edu/contact.html

我将尽快将该功能推入DirectTranscription。但是您应该可以立即使用DirectCollocation。那行得通吗?

© www.soinside.com 2019 - 2024. All rights reserved.