Nao机器人运行B-human代码之开始篇 2

时间:2021-07-13 14:34:46
1 SimRobot远程链接机器人
在Make目录Linux下执行过make命令,那么在Build目录下就会生成相应的文件,默认执行make会自动生成SimRobot等文件,SimRobot子目录下就有SimRobot可执行文件。执行SimRobot,点击 File--Open--选择Config目录下的Scenes下的RemoteRobot.ros2,打开,弹出一个对话框填写你的机器人

ip。如果没有弹出对话框。那么就是你之前运行过Make/Linux目录下的login,如果是这种情况,那么先关闭SimRobot,然后运行login 192.168.1.132(你运行的时候需要填写你的机器人ip), 最后再打开SimRobot,选择RemoteRobot.ros2。不出意外就会链接上机器人了。链接上机器人后找到image下的raw双击,segmented,双击,以及colorSpace下的colorTable,出现如图所示画面。

Nao机器人运行B-human代码之开始篇 2

2 采集颜色创建颜色表
先单击raw画面,你就会看到SimRobot的工具栏上出现7种颜色的小方块。要创建新的颜色表需先清除以前的,点击clear按钮,会发现colorTable里的颜色清除掉了。然后选择点击SimRobot工具栏上的一种颜色,再到raw窗口去点击对应的颜色,如你在SimRobot上点击了橘黄色,那么你就在raw窗口点击对应的橘黄色(应该是机器人所需踢的球)。尽量采集这种颜色的多个值,观察分割效果,直到你觉得合适。其他颜色同理。这时如果不出意外(意外总是难免的),你按下机器人的胸钮,那么它就能够找到球了。如果它能踢上一脚,那么你就为它鼓掌吧!
3 运行bush
在Make/Linux下执行make后是没有在Build下生成bush这个文件的。需要你单独执行。在Make/Linux 目录下输入: make -f bush.make这样就会编译出bush。同理你也可以单独编译BehaviorDoc.make和BH2011Doc.make以及SimulatorDoc.make这几个命令会在Doc目录下生成html格式的源代码类的索引以及相关信息。在运行Build目录下的bush前你需要先改动一个文件--Config/teams.cfg:填写你机器人的相关信息,关键的一个位置是players填上你机器人的名字。如果机器人(假如名字为Sun)不是在你所使用的电脑上创建的,那么你需要用createRobot创建一个名字地址和Sun相同的机器人。如果你有多个机器人则填上他们的名字,以逗号隔开。
B-Human = {
  number = 1;
  location = Default;
  color = red;
  wlanConfig = projektraum;
  players = [Un,Msg,Sun,Xiao]; 
};

运行bush,它就能够链接上你的机器人了。

Nao机器人运行B-human代码之开始篇 2

4 颜色表的上传
正确的方法本应该是按照说明说的进行,简述如下:在bush中输入命令 prepareColtable,会自动运行SimRobot。创建新的颜色表,在bush命令行中输入 colorDeploy,但是总是会先一个错误:大意是找不到c64和kdt文件,原因未找到。至此这条路走不通了。于是转战SimRobot,它能既然够创建颜色表,那么也应该能够改变颜色表。先通过help命令看了它有哪些命令,看到了ct命令,觉得应该就是它了。想到了说明书上有一章是介绍SimRobot的,于是找到那一章相应的地方,看到了ct命令选项的解释了。ct sendAndWrite应可以将当前颜色表上传到机器人上。通过实验这个命令确实能够上传颜色表。但是另一个问题在此时出现了。在用SimRobot远程链接控制机器人时,有时候采集的颜色表起作用,有时候又不起作用。而且通过 ct sendAndWrite传上去的好像一直也没有起作用。那么怎样才能让机器人用我们上传的颜色呢?我先用 ct save MyColorTable命令将训练好的颜色存起来,存放的位置是 Config/Location/Default。然后我将这个目录其他c64文件全部删除,再将MyColorTabel.c64复制并重命名为刚才删除的文件。到此我是直接拿一个USB重新刷了一个新的系统,执行prash2.sh 再执行copyfile。重启,运行,机器人能找到球了!!总结:在执行copyfile 观察到这个脚本文件拷贝了Config目录下的所有文件,而这些文件是一些配置文件,其中就包含了颜色表的文件。那么是不是在训练好颜色表保存以后重命名,然后执行copyfile将电脑上的颜色表文件复制到机器人就能实现同样的效果呢?这有待进一步验证。