我想让sphero向前移动一定量的厘米,但到目前为止我还没有设法让任何东西正常工作 这是我现在的代码:
EditText distanceText = (EditText) findViewById(R.id.distanceText);
int inputMSec = Integer.parseInt(distanceText.getText().toString());
int time = (inputMSec - inputMSec/2);
// The ball is given the RollCommand at half speed.
RollCommand.sendCommand(mRobot, heading,0.5f);
// A handler is created to delay the Stop command.
final Handler handler = new Handler();
handler.postDelayed(new Runnable(){
@Override
public void run() {
// Makes the ball stop
RollCommand.sendStop(mRobot);
}
// The variable 'time' defines how long the ball rolls until it is told to stop.
}, time);
我可以发送任何其他命令而不是RollCommand吗? 或者,任何人都可以从EditText中找到对输入做什么,以便距离变得正确吗?
答案 0 :(得分:6)
没有API命令直接提供驱动给定距离的能力。我现在唯一的方法是使用定位器的迭代策略,它提供有关球的位置信息。
以下是该策略的概述。如果您需要更多详细信息,请与我们联系。
最大的问题是:你如何决定基于D的命令速度?我有一个像这样的策略取得了一些成功:(毫无疑问,你可以更好地调整它)。
这很好用。它会开车,减速,并在最后几英寸处停下来。该算法存在的问题包括: