我目前正在研究一个胡椒机器人。该项目旨在在实验室欢迎来访者,并引导他们到他想去的办公室/老师。 要做到这一点,我需要让Pepper创建环境地图,并将自己定位。在
我遇到了两个问题:
一个好的导航意味着一个好的地图,但是即使周围只有空闲空间,Pepper也不能在上面导航。在
我使用软银的:
下面是我的地图(注意地板反射光线): 黑色表示自由空间-白色表示障碍物
为了更好地绘制地图,我去了一个没有反射的房间(地毯地板),这是我铺地毯的地图Carpet Floor Lights On (环境发生了变化,但可以通过想象安静地辨认出来)
现在我无法在地毯上测试导航,但在前两张地图上,胡椒粉的移动完全不正确。此外,定位给我的椭圆误差2米宽,3米长的勘探5米。在
所以我的问题是:
我要探索的代码:
PepperSpeech = session.service("ALTextToSpeech")
PepperSpeech.say("Connexion")
PepperNavig = session.service("ALNavigation")
PepperMvt = session.service("ALMotion")
PepperMvt.wakeUp()
PepperSpeech.say("Lancement de l'exploration")
state = PepperNavig.explore(5.0)
print(state)
PepperSpeech.say("Exploration terminee")
time.sleep(2)
PepperNavig.stopExploration()
path = PepperNavig.saveExploration()
print(path)
time.sleep(2)
PepperSpeech.say("sauvegarde terminee")
loadingsuccess = PepperNavig.loadExploration(path)
print(loadingsuccess)
CurrentMap = PepperNavig.getMetricalMap()
fichier = open("Map5m312Obst.txt", "w")
print(type(CurrentMap))
print(type(CurrentMap[0]))
formatted = [format(v) for v in CurrentMap]
fichier.write(str(formatted))
fichier.close()
我的导航代码:
^{pr2}$
您似乎按照正确的顺序调用了正确的api。 但是如果机器人周围有有效的自由空间,地图应该是白色的,而不是黑色的。 你说“黑色是自由空间,白色是障碍”,通常情况下恰恰相反。 像素的颜色表示区域自由的概率: -1.0(此处为100)表示自由区 -0.0(或0)表示没有自由区,所以有障碍物 您可以在此处找到工作代码示例: https://github.com/aldebaran/naoqi_navigation_samples
“椭圆误差2米宽3米”意味着你的机器人迷路了。可能是relocalizeInMap([0.0,0.0,0.0])运行不好。 在呼叫之前,机器人是否正确放置在(0.0,0.0)位置?在
如果您还没有,更新到naoqi2.7应该可以改善导航 http://doc.aldebaran.com/2-7/news/2.7/whatsnew2.7.html#navigation-abilities-improved
相关问题 更多 >
编程相关推荐