首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Webots:如何在webots中恢复机器人状态?

Webots:如何在webots中恢复机器人状态?
EN

Stack Overflow用户
提问于 2020-09-15 09:46:51
回答 1查看 192关注 0票数 0

我想还原机器人中每个实体节点的状态(包括每个实体节点的位置和速度),并尝试使用supervisor .I API获取和设置节点的字段来设置位置,并使用wb_supervisor_node_get_velocity和wb_supervisor_node_set_velocity来设置速度。但我发现,通过上述API将中间状态复制到机器人后,使用控制回路和设置转矩的结果是不同的。我应该怎么做才能纠正这个问题呢?

EN

回答 1

Stack Overflow用户

发布于 2020-09-15 14:51:33

有许多方法可以重置模拟的状态,您可以在此处找到这些不同可能性的完整演示:https://cyberbotics.com/doc/guide/using-numerical-optimization-methods#resetting-the-robot

特别是,第一个解决方案看起来与您正在尝试做的事情完全一样:

代码语言:javascript
复制
// get handles to the robot's translation and rotation fields
WbNodeRef robot_node = wb_supervisor_node_get_from_def("MY_ROBOT");
WbFieldRef trans_field = wb_supervisor_node_get_field(robot_node, "translation");
WbFieldRef rot_field = wb_supervisor_node_get_field(robot_node, "rotation");

// reset the robot
const double INITIAL_TRANS[3] = { 0, 0.5, 0 };
const double INITIAL_ROT[4] = { 0, 1, 0, 1.5708 };
wb_supervisor_field_set_sf_vec3f(trans_field, INITIAL_TRANS);
wb_supervisor_field_set_sf_rotation(rot_field, INITIAL_ROT);
wb_supervisor_node_reset_physics(robot_node);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63893912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档