理论教育 基础运动控制程序:掌控VEX机器人行动

基础运动控制程序:掌控VEX机器人行动

时间:2023-06-29 理论教育 版权反馈
【摘要】:机器人在执行程序之前将等待2000ms;1端口的电动机将以63W的功率正转;10端口的电动机将以0W的功率不转;机器人以之前的功率运动750ms;1端口的电动机将以0W的功率不转;10端口的电动机将以63W的功率正转;机器人以之前的功率运动750ms;}现在编写并下载想要的机器人程序,就可以控制VEX抓手机器人到处走了。

基础运动控制程序:掌控VEX机器人行动

1.直行

示例代码如下图所示。

备注:

(1)1000ms=1s。

(2)电动机功率的数值设置最大是127,最小是-127。这两个功率都会让电动机以最快的速度转动,只不过旋转方向相反,所以这里的负号只表示方向。这里选取63是出于机器人的稳定性考虑,因为电动机旋转速度太快,会导致轮胎与地面之间产生相对滑动,这样会让机器人的行走路线偏离预想。

(3)每条命令结束时,都要加上分号。

(4)“=”在RobotC中是赋值的意思,一般将“=”右边的值赋给左边。“==”在RobotC里面才是相等的意思。

(5)书写时不同的命令可以写在同一行,但要用分号隔开。一般为了使程序简洁、美观,将不同的程序写在不同行。

(6)书写时注意英文字母大小写。

(7)电动机控制命令一般都采用“motor[电动机名称]=功率;”加上“wait1Msec(毫秒数);”的格式。

(8)在RobotC中默认的控制命令都用蓝色标出。

(9)在书写过程中,可能刚输入控制命令的前几个字母,在下方就会弹出下拉列表,可以忽略它,继续输入自己的代码,也可以从下拉列表中选择需要的代码。

(10)按照简单的只要抓手机器人左、右电动机功率保持一致,则左、右电动机转速应该保持一致,来让机器人直行的考虑思路,将该程序下载到搭建好的抓手机器人,它应该直行。但是经过实际操作,会发现其实并不是这样的,机器人总会或多或少地走斜。这是由于当左、右两个电动机上有负荷后(不论是让轮胎空转还是接触地面),即使保持一致的电动机功率,也不能保证它们的速度一致(可以根据物理公式“功率=力×速度”来考虑)。为了解决这个问题,在不使用传感器的情况下,通常的做法是将其中转速快一点的电动机速度调慢。这便是手动矫直的思路。

下图是一个手动矫直机器人的例子。

2.点转

点转是指机器人围绕一个旋转中心旋转,一般将抓手机器人的左、右两个电动机的功率改为相反功率即可实现。示例代码如下图所示。

机器人在执行程序之前将等待2000ms;

1端口的电动机将以63W的功率正转;

10端口的电动机将以-63W的功率反转;

机器人以之前的功率运动1000ms;

1端口的电动机将以-63W的功率反转;

10端口的电动机将以63W的功率正转;(www.daowen.com)

机器人以之前的功率运动1000ms;

}

3.翼转

翼转就是让抓手机器人一边的电动机动,另一边的电动机不动。

注:除了点转和翼转,也可以通过控制抓手机器人一边电动机比另一边电动机转得快来实现一个大圆弧转。

翼转的示例代码如下图所示。

机器人在执行程序之前将等待2000ms;

1端口的电动机将以63W的功率正转;

10端口的电动机将以0W的功率不转;

机器人以之前的功率运动750ms;

1端口的电动机将以0W的功率不转;

10端口的电动机将以63W的功率正转;

机器人以之前的功率运动750ms;

}

现在编写并下载想要的机器人程序,就可以控制VEX抓手机器人到处走了。为了更好地掌握对电动机运动控制的编程,可以编写一个让抓手机器人在地上走正方形的程序。如果还没有组装抓手机器人,那么可以去虚拟世界练习一下编写的程序。为了检验编程技巧,最好去实际练习并调试程序,或者去虚拟世界测试程序。至于还不知道虚拟世界是什么的读者,可以去后面的知识拓展里面了解一下。在这里可以按照下面的说明去做一下虚拟世界里面的Labyrinth Challenge(迷宫挑战)。具体操作如下:

在RobotC编程软件中提供了一个测试程序的虚拟场景,叫作虚拟世界。如果对虚拟世界的操作界面还不了解,请先阅读知识拓展中的有关部分。下面将用虚拟世界中的抓手机器人完成Labyrinth Challenge。在这里要注意选择好编译对象,即Compiler Target选择Virtual Worlds;平台类型为VEX 2.0 Cortex,即Platform Type选择VEX 2.0 Cortex;虚拟世界包选择为课程包,即Curriculum Companion包。

新建一个程序编辑页面,单击“Download to Robot”按钮将一个空程序下载到虚拟世界中的机器人,这时会弹出一个提示保存程序的窗口,请选择一个位置保存。保存完成后,程序会自动调用虚拟世界包程序,让计算机自动弹出虚拟世界窗口。下面选择ROBOTS下的VEX Clawbot,即选好了用来测试程序的抓手机器人,就可以在该页面右侧部分看到抓手机器人电动机和传感器配置情况,如下图所示。

在这里会发现,左、右电动机分别连接了端口1和端口10,这是配置左、右电动机的依据。之后单击MOVEMENT去选择虚拟世界中机器人将要完成的挑战地图,在这里选择Labyrinth Challenge,单击右下角的START ACTVITY即可进入查看任务地图,在该页面的周边还有一些快捷键,它们将帮助切换视角、运行程序和回到主页等。在了解完任务后,最小化该虚拟世界窗口,并单击RobotC编程软件中的Exit Debugger退出程序,接着去配置电动机端口、编写程序、下载到虚拟世界测试。由于是预先估计机器人走过的时间,所以往往会与实际产生一定的误差,可能需要反复修改程序,然后重新下载测试,直到到达终点完成程序。

该任务要求机器人移动到迷宫的尽头(黑条纹区域),但不能越过任何黑线。

如果想继续练习机器人运动控制程序,可以选择MOVEMENT下的其他地图来进行对机器人运动编程的学习。后面提到的完成虚拟世界挑战的流程和该过程类似,不再详细介绍操作流程。

在这一章中,学习了给机器人提供动力的电动机编程,一个完整的机器人往往还包含一类用来获得环境信息的传感系统,它们往往指的是一些传感器。下面主要来学习VEX机器人中常见传感器的工作原理、安装应用和编程控制,以及一些其他设备的编程使用,如遥控器、LCD显示屏等。如果还不了解这些电子设备,请先阅读本书后面的知识拓展部分。下面的内容和这一章类似,可能需要将编写好的代码下载到控制器去实际操作或下载到虚拟世界去检验程序。在虚拟世界中,可以选择相关的地图去练习这些控制代码。具体选择哪一幅地图,将在介绍完相应的器件编程后指出。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈