首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于半径的移动机器人,用户输入

基于半径的移动机器人,用户输入
EN

Stack Overflow用户
提问于 2014-10-14 18:53:39
回答 1查看 2.8K关注 0票数 0

我用的是斯克里布勒机器人。

在Myro库中,似乎没有一个函数可以让机器人在用户指定的半径范围内圆圈移动。

以下是我收集到的

机器人的左右轮之间的距离是6英寸。

所以左轮应该以2(pi)(radius+6)的距离行驶。

右轮的行驶距离为2(pi) (半径-6)。

(我想)

把机器人在一个圆圈里移动是相当简单的。我只需要使用motors函数并调用

代码语言:javascript
复制
motors(1, 0) 

意思是左轮移动,右轮停止,有效地在一个圆圈中移动。

我的问题是为这个圆指定一个半径,并让它在这个半径的一个圆中移动。

这是我的密码。

代码语言:javascript
复制
    #Practice for Circle
def goCircle(int radius):
    pi = 3.14159265359
    Left = 2(pi)(radius + 6)
    Right = 2(pi)(radius - 6)
    turnRight(1,radius/360.0)

通常,turnRight会有这些参数turnRight(speed, time),因此您可以指定希望机器人运行的速度,以及希望它运行的秒数。我把它以1的速度,并试图通过半径/360中的时间变量。

我知道这个错误

代码语言:javascript
复制
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "<string>", line 4, in goCircle
TypeError: int is not callable

我也尝试了motors(left, right)并得到了同样的错误

代码语言:javascript
复制
    #Practice for Circle
def goCircle(radius):
    pi = 3.14159265359
    Left = 2(pi)(radius + 6)
    Right = 2(pi)(radius - 6)

    motors(left,right)

我能做些什么才能让这件事成功?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-14 19:49:11

您得到了一个错误,因为您的语法。你不能用:

2(pi)(radius + 6)

您需要将*放在术语之间:

2*(pi)*(radius + 6)

解释器认为您是在绑定一个int,就像函数2()一样。

另外,如果您是import math,那么math.pi就内置了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26368200

复制
相关文章

相似问题

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