亲爱的MuJoCo社区,
在过去的几天里,我使用了一个简单的FetchReach-v1场景,在开放式健身房MuJoCo环境中。我试图将MPC (模型预测控制)应用到这个场景中,它基本上为机器人手臂生成了新的轨迹点。MPC被配置为向机器人提供可行的速度和加速度,以便在时间步长内达到下一个点,即:dt = sim.nsubsteps * sim.model.opt.timestep。
问题:在将动作应用于环境后,我发现下一个抓地力的位置与我预期的位置不相等。首先,我开始认为我的MPC算法的加速度和/或速度与机器人的速度不匹配。但在应用其他步骤(当机器人已经加速时),位置的差异仍然是可以观察到的。(见图)。因此,基本上我选择的操作并不重要,它永远不会在提供的时间步骤dt内到达。所以我想在MuJoCo界面后面有一些运动学的王者,它减少了动作,这样机器人就可以在接下来的几个时间内减速到我之前提供的点。(如果我不提供一个新的)。
是的,_set_action函数中的位置有一个极限最大变化,我将其删除。
的问题:是否有可能在某种程度上禁用这个“减速”运动学,这样就可以在没有任何延迟和减速的情况下达到这个目标?在下面的图片中,我希望“实际”位置在“目的地”。
在下面的图片中,我用蓝色大十字标记开始位置,用绿色十字标记目的地。蓝线是通过的轨迹。蓝色小十字表示实际达到的位置,这与绿十字不同。

[

这个问题与我上一期的“mujoco-py github:https://github.com/openai/mujoco-py/issues/696”有关。
发布于 2022-04-05 12:42:04
听起来你是想真的设定速度还是加速度?这不是驱动的工作原理。执行器施加力,产生的运动依赖于许多其他事物(惯性、阻尼等)。
问题在于您的MPC算法。你不能只是发明一个运动轨迹。你需要通过和实际系统相同的动力学来创建轨迹。换句话说,您的MPC算法需要输出一系列操作(ctrl向量),以便在推出后的结果轨迹实现您希望它实现的任何目标(大概是通过成本/报酬)。
https://stackoverflow.com/questions/71751538
复制相似问题