繁体   English   中英

pydrake中关于CompassGait的一些问题

[英]Some questions about CompassGait in pydrake

我正在使用 pydrake 来学习驱动不足的机器人。 我很困惑,我怎么能改变 CompassGaitParams? 比如我想把腿长改成1.5,怎么办? 我更改了示例,但失败了这是代码:

import numpy as np
import matplotlib.pyplot as plt
from IPython import get_ipython
from underactuated.jupyter import AdvanceToAndVisualize, SetupMatplotlibBackend
plt_is_interactive = SetupMatplotlibBackend()
from pydrake.all import (ConstantVectorSource, DiagramBuilder,
                         PlanarSceneGraphVisualizer, SceneGraph, SignalLogger,
                         Simulator)
from pydrake.examples.compass_gait import (CompassGait, CompassGaitGeometry,CompassGaitParams)
builder = DiagramBuilder()
compass_gait = builder.AddSystem(CompassGait())
hip_torque = builder.AddSystem(ConstantVectorSource([0.0]))
builder.Connect(hip_torque.get_output_port(0), compass_gait.get_input_port(0))
compassgaitparams=CompassGaitParams()
compassgaitparams.set_length_leg(1.5)
scene_graph = builder.AddSystem(SceneGraph())
CompassGaitGeometry.AddToBuilder(
    builder, compass_gait.get_floating_base_state_output_port(),compassgaitparams,scene_graph)
visualizer = builder.AddSystem(
    PlanarSceneGraphVisualizer(scene_graph, xlim=[-1., 8.], ylim=[-1., 2.], 
                               show=plt_is_interactive))
builder.Connect(scene_graph.get_pose_bundle_output_port(),
                visualizer.get_input_port(0))
logger = builder.AddSystem(SignalLogger(14))
builder.Connect(compass_gait.get_output_port(1), logger.get_input_port(0))
diagram = builder.Build()
simulator = Simulator(diagram)
context = simulator.get_mutable_context()
context.SetAccuracy(1e-4)
context.SetContinuousState([0., 0., 0.4, -2.])
duration = 5.0 if get_ipython() else 0.1 # sets a shorter duration during testing
AdvanceToAndVisualize(simulator, visualizer, duration)

结果是这样的:结果

看起来您在可视化例程中设置了CompassGaitParams (通过CompassGaitGeometry ),但没有更新植物的参数。 为此,您需要这样做

params_in_context = compass_gait.GetMyMutableContextFromRoot(context).get_mutable_numeric_parameter(0) 
params_in_context = compassgaitparams

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM