我是两个机器人的新手,但是我有一个可以与SLAM算法结合使用的立体声算法。我正在为其他应用程序开发此系统,但我决定先将其集成到机器人上并进行测试,这可能是适应系统并在现实环境中测试其行为的好方法。 (而不是仅在某种软件模拟器中对其进行测试)但是,我希望系统能够独立运行并在流动站上运行。

我要讨论的系统将包括:

立体摄像机
一个带有轮子且每个轮子带有一个电动机的流动站
可能是某种传感器“测量”运动,例如车轮转动了多少
可能是一些距离传感器

Appart这是唯一的软件
立体声软件已经开发,SLAM算法没有。因此,目前无法说出需要多少RAM。我目前仅在大约i7上运行立体视觉。 1s。

现在我的问题:
如上所述,我对机器人技术一无所知,而且我的电子知识也很有限,所以我不知道该机器人需要什么处理器和电子设备。

我读了一些有关Raspberry Pi和Arduino板的东西,但我不知道该怎么做。恐怕Arduino无法处理立体视觉和SLAM算法的计算负载,但我读到当需要与传感器接口时,Raspberry Pis并不是首选(在这种情况下为立体相机)。我还发现了Leika套件,它是Raspberry Pi的机器人套件。也许这对我来说是一个不错的选择?

也许完全不同的系统更可取?

也许其他人之前已经建立了一个同样复杂的系统,并且可以根据他/她的经验给我一些建议?

评论

我可能是错的,但即使是Pi或beaglebone也可能不够强大。它可能需要一台笔记本电脑。

@ Airuno2L我也很害怕。如果需要一台笔记本电脑,这意味着我将立体声图像发送到我的笔记本电脑,并将轮“命令”发送回机器人? arduino和Pi都可以吗?

这只能在pi / beaglebone或其他Linux板上进行。存在用于Arduino的基本wifi适配器,但无法保证数据速率足够高。请记住,大多数arduinos的运行频率均为16 MHz。

#1 楼

就处理能力和所需的RAM而言,立体视觉和SLAM是相当繁重的算法。您可能会忘记在像Arduino这样的小型微控制器上运行它。它们的运行频率为几十MHz,只有几个KB RAM。您没有确切说明正在使用的i7,但是它们通常以几GHz时钟速度运行,并且会安装几GB RAM。在这台机器上,您的立体视觉处理了整整一秒钟。在Beaglebone上,您可能希望这最多需要数十秒钟。

我建议使用小型便携式计算机来处理视觉,并使用Arduino之类的东西将便携式计算机与其余计算机连接机器人。笔记本电脑可以通过USB串行端口与Arduino通讯,该端口应该具有足够的带宽。

这是使机器人原型化的一种常见方法:



#2 楼

Arduino很慢。它们的运行速度为16MHz,通常不超过10 kb的ram(应有的ram更大,但仍低于1 mb。我个人会考虑使用beaglebone或udoo,因为它们都比树莓派快得多。但是,如果您对机器人技术没有太多的经验,并且您的项目不需要它,那么我会避免使用它

此外,您的问题也不是很直接。您可能需要对其进行编辑以使其更是如此(可能会关闭,因为不具体或类似)

评论


$ \ begingroup $
我需要添加哪种信息以使问题更直接?
$ \ endgroup $
– Svenja Woicke
2014年7月31日在6:40

$ \ begingroup $
当前,您的问题是询问对于xyz任务(这是高度可选)的最佳选择。我不是在堆栈交换站点上提问的专家,但是提出一些可以通过更精确的指标来衡量的问题会有所帮助。例如,询问各种平台可以实现多少FLOPS或之前完成哪些硬件类似任务可能会有所帮助。如果您在x86机器上运行该算法的一部分,说明它使用了多少内存,也将有所帮助。
$ \ endgroup $
–大卫
14年7月31日在17:39

#3 楼

考虑到有专门针对SLAM / CV / etc设计的NVIDIA产品阵容。您可以看看Jetson TK1 / TX1 / TX2,它包括多个ARM内核以及用于并行图像处理的GPU单元,可以作为开发人员工具包和单独的模块来使用。

这些模块的一部分,它们使用ARM版本的Ubuntu,因此您可以使用运行在NV GPU板上的CUDA在台式PC上开发软件,然后轻松地重新编译并使其在机器人设备上运行,而无需更改您的单行代码。代码。

请用Google搜索“ jetson slam”,以查看大量项目。

#4 楼

Arduino主要是微控制器板。这意味着它们非常适合实时控制传感器和执行器,但不适用于控制复杂的任务。

单板计算机(SBC)更适合于更复杂的任务,例如视频, SLAM,并与其他计算机通信。

我不会为此使用Raspberry Pi,因为Pi的功能并不强大或快速。

我喜欢Udoo。 。它是一个i86平台,而不是ARM。但是,最有趣的事情之一是它包含一个与Arduino兼容的主板(带有用于屏蔽的插头),并直接连接到主处理器。电脑的大脑是英特尔NUC。这些微型计算机的功能远远超出大多数人的想象。我从未在他们上安装Linux时遇到过问题。