文档详情

步行机器人 2.ppt

发布:2018-01-18约7.04千字共41页下载文档
文本预览下载声明
这种命名方式改变带来的优点是显而易见的。前一动作的最后两个字母是下一个动作开始的两个字母,即前一个动作的最后状态是下一个动作的起始状态。 当然,这样做仍然比较繁琐,而且如果没有明确的注释,动作很容易混淆。这种编程方法仍然需要知道每一个动作之前的状态。 现在我们来看下面的例子代码程序。这个程序去掉了注释,被调用的过程函数表明了程序所要执行的动作。 -----[ Main Code ]--------------------------------------------------- Take three full steps. Main_Program: GOSUB M0 center servos GOSUB TiltRight GOSUB StrideLeft FOR MoveLoop = 1 to 3 GOSUB TiltLeft GOSUB StrideRight GOSUB TiltRight GOSUB StrideLeft NEXT GOSUB TiltLeft GOSUB StrideCenter GOSUB TiltCenter END 这里只用到了6个子程序。其中的4个子程序能在任意时刻改变状态,并可以以任意顺序调用。 其中第7个数据“XX”指示动作列表的结束。 状态表码 TR 右倾 TC 竖直 TL 左倾 SR 右跨步 SC 两脚并齐 SL 左跨步 XX 结束表 Branch用法 BRANCH Offset, (Address1, Address2, ...AddressN) BRANCH Offset, [Address1, Address2, ...AddressN] Function Go to the address specified by offset (if in range). Offset is a variable/constant/expression* (0 - 255) that specifies the index of the address, in the list, to branch to (0 - N). Addresses are labels that specify where to go. BRANCH will ignore any list entries beyond offset 255. Toddler Program 2.4: First Steps Forward with State Transitions 该你了 运行上述例子程序2.4 不同的转弯 当在一个狭窄的空间里转弯时,原地转弯将很有必要,即例程3.1中的PivotRight。执行一个转弯动作,然后后退一步,使步行机器人基本上是在原地转到了一个新的方向。 在程序3.1中有一个子程序WideTurnLeft,这部分程序让步行机器人在一个更大的转弯半径内实现转弯。 这种方式下每个转动动作后机器人都向前走了一步。 该你了!?? 运行程序3.1 修改程序3.1,让步行机器人实现不同的类型的转弯。 挑战课题 提高步行机器人的行走速度,并确定步行机器人能正常行走的最高速度。 让步行机器人在不同材质的表面上行走,如地毯,木板和瓷砖,观察机器人的性能是否一样。 步行机器人启动时可以先移动左脚或者右脚。尝试将左脚起步的程序改写成右脚起步的程序。 增加一系列更复杂的步骤,例如使步行机器人的脚在空中来回运动几个来回等,让步行机器人看起来象在跳舞。 程序3.1中只给出了一部分类型的转弯。增加一些子程序入口来完成示例程序中没有包括的转弯。 步行机器人在结构和运动上都是对称的。它可以转弯然后前进或后退。编写程序可以完成程序3.1 中的动作但是让机器人转弯后后退。 满步动作运用在程序3.1中。如果把动作幅度变小些将会怎样呢?例如,试着从CR到CC 动作而不是CR 到CL 。 WideTurnLeft 让步行机器人朝左转,但是转弯的半径比TurnLeft 大。现在让机器人的转弯半径更大。提示:可以从两个方面去考虑,一个与前进动作有关,另一个就是和转动的动作有关。 第二、三章 步行机器人的基本运动编程 步行机器人的基本运动 步行机器人有36种不同的动作。 由于只有两个伺服电机——TiltServo 和 StrideServo,所以只有两种最基本的运动形式:倾斜和跨步。 由于步行机器人有限的运动形式,限制了步行机器人只有2种基本的运动:直线行走和原地旋转。 直线行走 步行机器人的行走可分4个步骤: a. 向一边
显示全部
相似文档