Pydrake仿真初始状态不符:控制器连接致Meshcat显示异常
Pydrake仿真初始化姿态偏差问题
我在使用Pydrake进行仿真时遇到以下问题:尝试将机器人初始化至特定位姿,但Meshcat中t=0时的显示接近预期却存在偏差。我通过逆运动学求解让机器人初始位于梯子上,预期状态下机器人末端执行器(紫色箭头处)准确对准目标位置,实际状态里该部位偏差尤为明显,启用碰撞检测后仿真甚至可能从碰撞状态开始运行。
我怀疑问题与控制器的连接方式有关,相关代码如下:
# connect up the controller controller = builder.AddSystem(BasicController(plant)) builder.Connect(controller.GetOutputPort("torques"), plant.get_actuation_input_port(parcli)) builder.Connect(plant.get_state_output_port(), controller.GetInputPort("state"))
使用上述代码会出现异常;但注释掉第一条builder.Connect()语句,或保留该语句但让控制器始终输出零扭矩时,状态显示就恢复正常了。
我感觉Meshcat/可视化工具将t=0视为已运行多个时间步后的状态,我的仿真可视化代码如下:
# Run the simulation meshcat.StartRecording() finish_time = 1 simulator.AdvanceTo(finish_time) meshcat.PublishRecording()
内容的提问来源于stack exchange,提问作者fhk
相关产品推荐
相关产品推荐

