使用软银库库的Pepper制图和导航

2024-09-30 18:32:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在研究一个胡椒机器人。该项目旨在在实验室欢迎来访者,并引导他们到他想去的办公室/老师。 要做到这一点,我需要让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}$

Tags: path定位环境sessionservice地图sayprint
2条回答

您似乎按照正确的顺序调用了正确的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

相关问题 更多 >