标签: robotics

绘图和绘画机器人的算法 - 任何提示?

绘图和绘画机器人的算法 -

你好

我想编写一个分析图像的软件,然后使用最少的不同颜色和不透明度的bezier路径对象生成一个图像,该图像捕获人眼在原始图像中感知的内容.

与最近的推特超级压缩比赛(参见:stackoverflow.com/questions/891643/twitter-image-encoding-challenge)不同,我的目标不是创建一个忠实于图像的复制品,而是复制人类的体验.看着这个形象.

例如,如果原始图像在左上角显示一个红色气球,并且再现在左上角看起来像一个红色气球,那么我将实现我的目标,即使再现中的气球是不是在相同的位置,并没有完全相同的大小或颜色.

当我说"被人类感知"时,我的意思是非常有限.我不是试图分析图像的意义,我不需要知道图像是什么,我只对人眼会注意到的关键视觉特征感兴趣,只要这可以通过算法无法概念化实际观察的内容.

为什么这种不同的人类感知标准超过了摄影的准确性?

该软件将用于驱动绘画机器人,它会与人的艺术家进行合作(见:video.google.com/videosearch?q=mr%20squiggle).

算法应该寻求将画布上已经存在的内容合并到最终图像中,而不是将人类制作的标记视为不完美的错误.

因此,相对亮度,色调,饱和度,大小和位置比照片上与原始相同更重要.保持特征的拓扑结构,颜色块,渐变,凸凹曲线对于这些特征的确切尺寸形状和颜色将更为重要

还在我这儿?

我的问题是,我从"当你有一把锤子看起来像钉子"综合症时会受到一点点痛苦.对我来说,似乎这样做的方法是使用遗传算法的东西,如小波变换的比较(见:grail.cs.washington.edu/projects/query/)由retrievr使用(参见:labs.systemone.at/ retrievevr /)选择合适的解决方案.

但我认为这是答案的主要原因是,这些是我所知道的技术,可能有更优雅的解决方案使用我现在没有任何关于的技术.

考虑到人类视觉系统分析图像的方式会特别有趣,因此可能需要特别注意直线,角度,高对比度边框和相似颜色的大块.

您对视觉,图像算法,遗传算法或类似项目应该阅读的内容有什么建议吗?

谢谢

PS.上面的一些拼写可能对你和你的拼写检查有误.这只是国际拼写变化,可能与您所在国家/地区的标准不同:例如澳大利亚标准:颜色与美国标准:颜色

robotics artificial-intelligence image-processing computer-vision

9
推荐指数
1
解决办法
1610
查看次数

双足机器人的软件驱动运动有哪些技术?

我正在编写一个软件代理来控制模拟足球比赛中的机器人玩家.最终我希望参加RoboCup比赛.

在创造这样一个特工所涉及的各种挑战中,它的身体运动是我面对的第一个.我瞄准的模拟使用了一个带有22个铰链的Nao机器人体来控制.每条腿六条,每条手臂四条,颈部两条:

http://simspark.sourceforge.net/wiki/images/b/b4/Models_NaoVirtual.png

我对机器学习很感兴趣,并且相信必须有一些技术可以控制这个人.

在任何时候,它是众所周知的:

  • 所有22个铰链的角度
  • 位于机器人胸部的加速度计的X,Y,Z输出
  • 位于机器人胸部的陀螺仪的X,Y,Z输出
  • 通过机器人头部的摄像头定位某些地标(角落,目标)
  • 用于施加到每只脚底部的力的矢量,以及赋予脚底部力的位置的矢量

我想要实现的任务类型是:

  • 尽可能快地直线行驶
  • 以定义的速度移动(即,根据附加输入处理快速和慢速行走的一个功能)
  • 向后走
  • 转身当场
  • 沿着简单的曲线运行
  • 踩着侧身
  • 尽可能高地跳跃并着陆而不会跌倒
  • 踢一个在你脚前的球
  • 在受到意外的力量(被球或其他球员击中)时进行"潜意识"稳定运动,理想情况下与上述之一相配合

对于这些任务中的每一项,我相信我可以提出一个合适的健身功能,但不是一组具有预期输出的训练输入.也就是说,任何机器学习方法都需要提供无监督学习.

我已经在圆形功能(正弦波)的开源项目中看到了一些例子,它们连接到每个铰链的角度,具有不同的幅度和相位.这些看起来好像是直线行走,但它们看起来都很笨重.这不是一种适用于我上面提到的所有任务的方法.

有些团队显然使用反向运动学,但我对此并不了解.

那么,机器人两足动作/行走的方法是什么?


顺便一句,我编写并发布了一个名为TinMan的.NET库,它提供了与足球模拟服务器的基本交互.它有一个简单的编程模型,用于机器人22铰链的传感器和执行器.

您可以阅读更多关于RoboCup的3D模拟足球联赛的信息:

language-agnostic robotics machine-learning robocup

8
推荐指数
1
解决办法
645
查看次数

如何控制猕猴桃驱动机器人?

我在高中的FIRST机器人团队工作,我们正在开发一个奇异果驱动机器人,其中有三个全向轮安装在等边三角形配置中,如下所示:

等边三角形配置的三个编号全向轮

问题是编程机器人以驱动电动机,使得机器人沿给定操纵杆输入的方向移动.例如,为了"向上"移动,电动机1和2将被均等地供电,而电动机3将被关闭.操纵杆位置作为矢量给出,我想如果电机也被表示为矢量,矢量投影可能就是我需要的.但是,我不确定这是否正确,如果是,我将如何应用它.我也有一种感觉,一个操纵杆位置可能有多种解决方案.任何帮助将不胜感激.

language-agnostic math robotics vector

8
推荐指数
1
解决办法
4481
查看次数

立体视觉避障

我正在研究一种基于立体相机的移动机器人避障系统.它将在室内使用,所以我假设地平面是扁平的.我们还设计了自己的环境,因此我可以避免产生误报或否定的特定类型的障碍.

我已经找到了大量资源来校准相机并使图像排成一行,以及生成视差图/深度图的信息.我正在努力的是从中检测障碍的技术.通过检测地平面而工作的技术同样有用.

我正在使用openCV,并使用Learning OpenCV作为参考.

谢谢,所有

robotics opencv computer-vision

8
推荐指数
1
解决办法
5288
查看次数

什么是人形机器人的正确RTOS?

我们是学生在大学里开发一个中型(~4.5英尺高)人形机器人作为赞助研究项目.机器人应该能够执行的主要任务包括:四处移动(向前,向后,侧向),跑步,拾取物体.我们正在考虑使用实时操作系统来控制机器人.但是,由于我们是这个领域的新手,几乎没有嵌入式系统或操作系统的背景,并且有多种选择,我们不确定哪一个是合适的选择.我们遇到以下情况(括号内是我们目前对它们的印象):

  1. RTLinux(现在死了,内核2.4.x,gcc 2.95(很难构建),很少甚至没有文档)
  2. FreeRTOS(良好的社区和文档,流行,移植到许多架构)
  3. uc-OS II(小巧,干净的核心,重量轻)
  4. RTAI(基于Linux)

我有很多问题:

  1. 哪个选项更适合这个项目?我知道这听起来有点主观,但任何建议都会非常感激.如果您觉得缺少一些重要信息,请指出.
  2. 我遇到了一些名为Linux内核的CONFIG_PREEMPT_RT补丁,它为内核提供了强大的实时功能.还有预编译的内核,这个补丁可用于基于Debian的发行版.仅此一项是否足以满足我们的要求?
  3. 我们对操作系统的了解很少.我们有必要先了解它们吗?如果是的话,什么是一个好的,短的入门主题?

更新:感谢您提供非常详细的答案.很明显,我们以错误的方式解决这个问题; 没有任何知识和vauge要求潜水肯定会很糟糕.我们必须坐下来,准确地说出我们需要的东西.当我们充分领先时,我们将尝试找出合适的操作系统.让我们看看它是如何运作的.我还将阅读MicroC OS II的第2章:实时内核.

robotics real-time rtos freertos

8
推荐指数
3
解决办法
7180
查看次数

有没有办法使用Python和OpenCV调整网络摄像头的快门速度或曝光时间

在我的机器人视觉项目中,我需要检测运动物体的标记,但运动会导致图像模糊.反卷积方法非常慢.所以我想用更高的fps相机.有人说我不需要更高的fps,而是需要更短的曝光时间.

OpenCV的Python界面cv2提供了一种更改摄像机设置的方法,但它不包括"曝光时间"或"快门速度"设置.我也担心网络摄像头甚至不支持这种设置.

关于的任何其他想法:

使用相机设置消除模糊效果?

要么

具有实时性能的图像恢复?

要么

关于实时机器人应用的低成本相机的任何建议?

python robotics opencv real-time computer-vision

8
推荐指数
1
解决办法
7154
查看次数

ROS2和DDS有什么区别?

ROS2是使用节点之间的发布者/订阅者消息传递的分布式架构

ROS2在其消息传递层采用了不同的方法,现在采用了称为数据分布式服务(DDS)的行业标准.

但是,DDS是一种用于通信的中间件,也支持发布者/订阅者.

那么,我们可以直接使用DDS,为什么要使用ROS2?

robotics data-distribution-service ros2

8
推荐指数
4
解决办法
1916
查看次数

学习更多以硬件为中心的编程的来源

我正在研究如何构建/编写简单的硬件,然后转向简单的机器人.我应该从哪里开始?购买硬件的最佳网站是什么?有关我应该使用的硬件/语言类型的任何建议吗?

hardware assembly robotics

7
推荐指数
0
解决办法
475
查看次数

什么是好的机器人模拟器?

所以我目前正在进行一些机器人研究,我们在实验室中有一个我们想要模拟的定制臂.我已经做了一些谷歌搜索和维基百科搜索,似乎有相当数量的开源和专有应用程序来做我需要的,如Gazebo,LpzRobots,Webots,RoboLogix等.我们的主要研究工具是C++和网络接口.

我的问题是,有没有人在处理机器人模拟器方面有任何经验? 如果我应该跳过哪一个,或者我是否应该从头开始自己开始编写,你能推荐一下吗?我的主要用途是运动规划测试(所以我希望能够完全控制机器人的位置而不用担心动力学)和控制器动力学测试(恰恰相反),用于定制运动链机器人.

robotics simulator motion-planning

7
推荐指数
1
解决办法
2789
查看次数

设计混合系统离散侧的功能方法

我正在为Haskell开发混合系统控制器.

FRP库(现在我正在使用netwire,但有几个好的和未来的很多有趣的研究)为问题的连续时间提供了一个很好的解决方案.使用信号名称,尺寸,首选单位等对它们进行扩充可以使您获得一个具有模块性,自我描述并且具有直接信任正确性的路径的系统.

我正在寻找为离散时间提供类似属性的信息,民间传说或论文.在某种意义上,问题更容易,状态机是经过充分研究和简单的.在其他方面,它更难,我将简要解释如何.

正确性显然是最重要的,谢天谢地,它也很简单.

自我描述更是一个问题.你不仅希望控制器处于正确的状态,而且能够告诉你它处于什么状态.它也是如何实现的.接下来可能会发生什么.因此,您可以将名称添加到所有内容中,并且它可以工作,但它与模块化有些冲突.您还希望能够从更简单的时间行为构建复杂的离散时间行为.但是当你问系统处于什么状态时,通常高级答案比低级答案更有趣(或者至少有趣).你怎么干净利落的呢?我尝试了一些天真的方法,并用几种不同的方式将自己包裹在意大利面中,但似乎必须有优雅的解决方案?

我自我描述的另一个问题是我想要一个自我描述条件的列表(通常比较:它是10秒?我在下一个航点的3英尺内吗?电池电量下降了吗?低于15%?等)可能会触发下一次状态转换.有一些棘手的问题,即使这里的理想语义是什么,因为看起来这些事件中的一些更好地"自下而上"处理(例如,你正在执行的任何低级步骤的预期终止条件)和一些"从顶部"(例如设备故障检测,地理围栏......).即使你放松了自我描述的目标,这也可能导致自己的意大利面.

除了诊断之外,这里准确的自我描述信息对抽象解释也非常有用,通过猜测哪些事件可能发生在未来时将系统状态投射到未来.许多事件条件导致相当简单的猜测(例如使用速度良好,燃料消耗率,计时器).其他更复杂,但可能仍然值得为某些应用开发预测(例如,运营商的预期订单,天气预报,移动感兴趣对象的预测轨道).很高兴找到一个不仅用名字来注释条件的设计,而且还有这种东西的函数.

有没有人有这方面的经验,他们愿意分享?

robotics haskell functional-programming state-machine control-theory

7
推荐指数
1
解决办法
95
查看次数