说明: 我现在创建了一个运行良好的应用程序。问题是我的Pepper机器人站在一个地方做这个应用程序。我设法让它与AlNavigation.explore()间隔移动,但似乎这不是最顺畅的方式,因为它主要围绕自己做圆圈然后只是移动一点。此外,当Pepper的电池电量低于15%时,我希望它能够找到它的充电站。我在自治生活中成功地做到了,但是当我的应用程序打开然后它不起作用。我在我的应用程序中添加了ALRecharge.goToStation()来解决这个问题,但有时它会起作用,有时它也不会。
问题:
1)如何让胡椒顺利地在房间里“走动”,然后当有人和胡椒说话时停下来?
2)如何在我的应用程序中添加Recharger应用程序以便它们可以一起工作,或者我应该自己为我的应用程序执行此操作?
3)如果Pepper没有从它站立的地方看到它,如何确保Pepper找到充电库存?
有没有人有任何这方面的例子可能是他们在房间里胡椒“活着”并且还使用了胡椒充电座。
由于
答案 0 :(得分:5)
当你要求佩珀去充电时,必须看到充电站(即大约不到3米)。
如果没有,他就找不到了。
我建议使用在后台进行ALNavigation探索期间创建的地图,在他的充电站附近发送Pepper,然后你可以启动ALRecharge.goToStation()方法。
所以最简单的方法是在你的充电器上打开你的佩珀(或者只是重新启动闹骑)所以在探索之后你只需要让他去世界位置(0,0,0)然后你就可以问他去充电。
如果您不想使用导航移动,您还可以使用WorldRobotPosition手动将其发送回位置0,0,0。
答案 1 :(得分:4)
Alexandre's solution是个好人。
如果您通过ALNavigation中的explore方法创建地图,您还可以将随机地图内目标提供给navigateToInMap方法,以便非常顺利地导航。
然后,当您使用ALFaceDetection或ALPeoplePerception检测到某人时,您可以决定停止导航。
答案 2 :(得分:3)
如果您使用ALNavigation,您可以制作地图并使用它与Pepper一起移动:
ALNavigation.explore()
#The best is to start exploration near the charging station, so the coordinates (0,0) will be the charging station
path = ALNavigation.saveExploration()
ALNavigation.loadExploration(path)
ALNavigation.startLocalization()
好的,现在你已经本地化了。 您可以使用
获取机器人的当前位置ALNavigation.getRobotPositionInMap() 它返回一个数组,其中包含机器人的位置和置信度。 如果要保存多个坐标,请在机器人的某处创建一个文件并放置{charger:[0,0]}之类的坐标。
如果你想顺利移动,你可以使用ALNavigation.navigateToInMap(coord),但它不会非常流畅。 更好的是使用多个ALMotion.moveToward(x,y,theta,配置)并设置机器人的速度。