1对控制器代码的分析及说明
首先请访问:关于大赛-文件下载-Webots专题系列4-用Python控制机器人的运动-附件-v1.1,下载完成后打开walk.wbt文件。点击工具栏-向导-新机器人控制器,选择Python语言,完成创建,并在文本编辑器中打开。复制附件代码,覆盖默认代码,保存。
将机器人控制器设置为新建控制器,保存世界。
在walk.py中,为了完成对机器人的控制,需要引入几个Python库。
1.fromcontrollerimportRobot
2.importos
3.importsys
4.
5.libraryPath = os.path.join(os.environ.get("WEBOTS_HOME"),'projects','robots','robotis','darwin-op','libraries',
6.'python37')
7.libraryPath = libraryPath.replace('/', os.sep)
8.sys.path.append(libraryPath)
9.frommanagersimportRobotisOp2GaitManager, RobotisOp2MotionManager
其中,对机器人环境进行控制的Robot库包含了对各种机器人元件的控制。RobotisOp2GaitManager与RobotisOp2MotionManager库分别为机器人步态控制库与动作组库,分别实现机器人的行走控制与预编动作执行。为了能在Pycharm等外部IDE中正常运行,导入这两个库前需要添加路径信息。
注意:本段代码适用于Python 3.7版本,其他版本的Python可能存在兼容性问题。
定义Walk类,实现对机器人的控制,初始函数如下。
1.classWalk():
2.def__init__(self):
3.self.robot = Robot()#初始化Robot类以控制机器人
4.self.mTimeStep = int(self.robot.getBasicTimeStep())#获取当前每一个仿真步所仿真时间mTimeStep
5.self.HeadLed = self.robot.getLED('HeadLed')#获取头部LED灯
6.self.EyeLed = self.robot.getLED('EyeLed')#获取眼部LED灯
7.self.HeadLed.set(0xff0000)#点亮头部LED灯并设置一个颜色
8.self.EyeLed.set(0xa0a0ff)#点亮眼部LED灯并设置一个