1.SimRobot
SimRobot软件除了可以用来实现仿真外,还可以用来连接实体机器人来查看机器人在踢球时的各种状态信息,包括摄像机拍摄的图像、behavior和teambehavior的状态,在场上的定位等,方便我们调试代码。
准备工作:
1.确保已经在实体机器人上部署了bhuman并且已经上传了角色代码
2.跟使用bush上传代码一样,需要确保自己电脑已经关闭DHCP并且手动设置了相应的静态ip,具体操作参考在实体nao机器人上部署bhuman.md这篇文章里使用bush上传代码前的网络配置操作。注意如果是有线连接机器人的话,应该是对电脑的以太网进行类似的配置操作,只不过设置的本地电脑静态ip地址前两位是192.168(无线的是10.0)
使用SimRobot查看机器人状态
1.可以从SimRobot软件中选择RemoteRobot场景连接实体机器人,也可以直接在bush软件中最下面一栏中点击simulator并选择需要连接机器人的ip地址来连接实体机器人,这样更加便捷。(如果无线连接应该是选择10.0开头的ip地址;有线应该选择192.168开头的ip地址)
2.进入到SimRobot软件后,可以选择打开相应的窗口来查看需要的信息
比如根据behavior和teamBehavior可以分别查看机器人的个体状态和团队状态,在image里可以看到上下摄像头的原始图像和分割后的图像,在field的worldstate查看机器人认为自己在场上的定位情况。
2.GameController
GameController是一个控制机器人足球比赛的裁判系统,正式比赛时裁判通过该软件控制比赛的进行以及对相应的机器人进行处罚等操作。平时我们也可以利用该软件来模拟比赛,进行机器人的调试。
如果还没有配置过GameController的话,一共需要进行3步配置工作:
1.配置java环境
2.安装ant模块
3.获取、编译GameController相关代码并添加队伍信息
具体的操作可以参考以下博客:BHuman工具篇:游戏控制器GameController使用说明
其中前两步网上参考资料比较多,这里不再赘述。而第三步需要特别说明一下。
如果是从github上bhuman的代码仓库中获取的源代码,则需要按照上述博客的说明进行操作,即使用ant命令生成build文件夹然后添加队伍信息。但如果获取的是比赛组委会已经编译过的GameController文件夹,则只需要在config文件夹中添加队伍信息即可(包括队伍号码、名字、logo)。
下面是github上bhuman的代码仓库地址:
https://github.com/bhuman/GameController
下面是Robocup国际赛组委会提供的GameController下载地址(下载GameController and TeamCommunicationMonitor 2019(RoboCup Edition)):
https://spl.robocup.org/downloads/
使用GameController控制比赛进行
在GameController文件夹中右键打开终端,输入
java -jar GameController.jar
即可打开GameController软件如下:
选择队伍,取消勾选Fullscreen,选择勾选Play-off Game,点击start进入软件进行后续操作
简化启动命令
因为每次打开GameController都需要输入
java -jar GameController.jar
由于命令过长所以可能会经常忘记,所以可以进行如下的简化操作,利用alias给该命令设置一个简单的别名
打开终端输入
gedit ~/.bashrc
这条命令会打开.bashrc文件,然后在该文件中添加一行
alias gc='java -jar GameController.jar'
保存,然后在终端中继续输入
source ~/.bashrc
使得刚刚的更改生效(如果待会发现没有生效可以尝试重启电脑)
设置完成后,就可以使用gc代替之前的java -jar GameController.jar一长串命令,直接在GameController文件夹中打开终端输入gc即可启动GameController