机器人

专业机器人工程师,业余爱好者,研究人员和学生的问答


6
我应该执行哪种算法来编程房间清洁机器人?
对于此问题,假定以下情况未知: 房间的大小和形状 机器人的位置 存在任何障碍 还假定以下情况是恒定的: 房间的大小和形状 所有(如有)障碍物的数量,形状和位置 并假定机器人具有以下属性: 它只能以绝对单位递增并以度为单位前进。同样,移动操作成功后将返回true,如果由于阻塞而失败,则将返回false 合理无限制的动力来源(假设它是放置在空间站上的太阳能机器人,该空间站始终始终面向太阳且没有天花板) 每次运动和旋转都绝对精确地进行(不必担心数据不可靠) 最后,请考虑机器人环境的以下属性: 处于无天花板空间站上的房间是安全的,但与经过的彗星之间的距离令人沮丧,因此灰尘(和冰)不断散落在环境中。 我被问到这个问题的简单得多的版本(房间是一个矩形,没有障碍,如何在它上面移动以保证至少可以遍历每个部分),然后我开始想知道如果您不能这样做,该如何处理呢?不能保证形状或障碍物的存在。我已经开始使用Dijkstra的算法来研究这个问题,但是我很着迷于听到其他人如何解决这个问题(或者对此是否有一个公认的答案?(Roomba是如何做到的?)

5
粒子过滤器:如何进行重采样?
我了解粒子过滤器的基本原理,并尝试实现一个。但是,我挂了重采样部分。 从理论上讲,这很简单:从一组旧的(加权的)粒子中,绘制一组替换的新粒子。这样做时,请偏爱具有高重量的那些粒子。高权重的粒子更容易被吸引,而低权重的粒子则更少地被吸引。也许只有一次或根本没有。重新采样后,将为所有权重分配相同的权重。 我关于如何实现这一点的第一个想法基本上是这样的: 标准化权重 将每个重量乘以颗粒总数 将这些缩放后的权重舍入到最接近的整数(例如,int()在Python中使用) 现在我应该知道绘制每个粒子的频率,但是由于舍入误差,最终我得到的粒子少于重新采样步骤之前的粒子。 问题:我如何“填充”缺少的粒子,以便获得与重新采样步骤之前相同数量的粒子?或者,如果我在这里完全偏离轨道,如何正确重新采样?


5
如何将智能手机与机器人项目集成在一起?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 如今,智能手机通常都配备了陀螺仪,加速计,指南针,照相机和GPS传感器。他们通常还可以通过Wifi和移动数据网络连接到互联网。我见过很多将手机用作机器人遥控器的案例,但对我来说,手机本身似乎是自主机器人的理想轻量级计算和传感平台。 我看到的主要障碍是与执行器接口。例如,能够控制电机来操纵台式机器人或控制伺服器。与微控制器的连接和通信也可能是一个障碍。 作为机器人爱好者,我想知道如何克服这些障碍以及其他障碍,以便能够将智能手机的功能用于我的机器人项目。
24 actuator 



8
没有GPS的绝对定位
使用IMU,机器人可以估计其相对于其起始位置的当前位置,但是随着时间的流逝会产生误差。GPS对于提供不受局部误差累积影响的位置信息特别有用。但是GPS不能在室内使用,甚至在户外也可能参差不齐。 那么,在不使用GPS的情况下,机器人可以使用哪些方法或传感器进行定位(相对于某个参考系)?

2
可视化和调试EKF
我目前正在调试和调整EKF(扩展卡尔曼滤波器)。任务是经典的移动机器人姿态跟踪,其中地标是AR标记。 有时,我很惊讶某些度量如何影响估计。当我查看并计算涉及的数字和矩阵时,我可以算出执行更新步骤的方式,发生的原因和原因,但这非常繁琐。 因此,我想知道是否有人在使用某种技术,技巧或聪明的可视化来更好地了解EKF更新步骤中正在发生的事情? 更新#1(将更具体,并显示我所想到的第一近似值) 我正在寻找的是以某种方式可视化一个更新步骤的方式,这种方式可以让我感觉到测量的每个组成部分如何影响状态的每个组成部分。 我的第一个想法是绘制测量值及其预测值以及从K矩阵中提取的一些矢量。来自K的向量表示创新向量(测量-测量预测,未绘制)将如何影响状态的每个分量。 目前,我正在使用状态为2D姿势(x,y,角度)且测量值也是2D姿势的EKF。 在所附的图片(在新页面/标签中打开以查看完整的分辨率)中,(缩放的)矢量K(1,1:2)(MATLAB语法从3x3矩阵中提取子矩阵)应该给出一个思路: EKF状态的分量将随着当前创新向量,K(2,1:2)的变化而变化,依此类推。在此示例中,创新向量具有相对较大的x分量,并且与向量K(2,1:2)-状态的第二个分量(y坐标)变化最大。 该图中的一个问题是,它没有感觉到创新矢量的第三分量(角度)如何影响状态。状态的第一部分增加了一点,这与K(1:1:2)所表明的相反-创新的第三部分导致了这种情况,但是目前我无法形象地看到。 第一个改进是可视化创新的第三部分如何影响国家。然后,最好添加协方差数据以了解如何创建K矩阵。 更新#2现在,该图在状态空间中具有矢量,这些矢量显示了测量的每个分量如何改变位置。从该图可以看出,测量的第三部分会最大程度地改变状态。


5
将电池分配在多旋翼的旋翼或中心更好吗?
我已经看到了在多旋翼飞机上安装电池的3种方法: 所有电池都牢固地安装在机身中心附近 所有电池都放在挂在机身中央下方的袋子里 每个转子都有固定安装在其附近/下方的电池。(例如,一个四轴飞行器,其中1/4的电池安装在每个电动机的下方)。 哪种设计最好,为什么?如果没有最好的设计,那么设计之间的优势/折衷是什么?我是否忽略了其他一些设计,以某种方式更好? (此问题主要针对多旋翼飞行器。对于地面飞行器,请参阅“ 将重量分配在车轮或机器人中心更好吗? ”。)


10
机器人技术中的实时编程有多成熟?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 3年前关闭。 编辑:我不知道为什么,但是这个问题似乎使很多人感到困惑。我知道何时/何地/为什么/如何使用实时。我很想知道执行实时任务的人是否真的足够在意实时执行任务。 无需提及为什么实时操作对机器人很重要。我的问题是,机器人技术中实际使用了多少? 以这个问题为例。只有一个答案提到了具有实时功能的任何平台,而且距离最高点也不远。ROS显然是一个非常受欢迎的非实时平台。 但是,在实时世界中,RTAI 1似乎是唯一可行的免费实时使用平台。但是,它仅限于Linux(没有问题),文档记录不佳且开发缓慢。 那么,机器人开发人员追捧的实时行为有多少?问题是,当实际需要实时行为时,开发人员有多少倾向编写实时应用程序?如果不多,为什么呢? 例如,基于触觉数据的反身行为不能通过ROS,因为它将失去其实时属性。但是人们是否真的想出了实时解决方案或仍在使用ROS,而忽略了实时属性? 1个或类似的Xenomai

4
逆运动学问题如何解决?
机器人手臂的正向运动学很容易解决。我们可以使用Denavit-Hartenberg变换矩阵表示每个关节。 例如,如果关节是线性致动器,它可以具有变换矩阵:ithithi^{th} Ti=⎡⎣⎢⎢⎢10000100001000di1⎤⎦⎥⎥⎥Ti=[10000100001di0001]T_i = \left[\begin{matrix} 1&0&0&0\\ 0&1&0&0\\ 0&0&1&d_i\\ 0&0&0&1 \end{matrix} \right] ,其中扩展长度由定义didid_i 而旋转链接可能是: Ti=⎡⎣⎢⎢⎢10000cosαisinαi00−sinαicosαi0L001⎤⎦⎥⎥⎥Ti=[100L0cos⁡αi−sin⁡αi00sin⁡αicos⁡αi00001]T_i = \left[\begin{matrix} 1&0&0&L\\ 0&\cos\alpha_i&-\sin\alpha_i&0\\ 0&\sin\alpha_i&\cos\alpha_i&0\\ 0&0&0&1 \end{matrix} \right]其中是角度,是链接的长度。αα\alphaLLL 然后,我们可以通过乘以所有变换矩阵来找到末端执行器的位置和方向。∏Ti∏Ti\prod{T_i} 问题是,我们如何解决逆问题? 在数学上,对于期望的端部执行器位置中,找到参数,使得。有什么方法可以解决这个问题?MMMdidid_iαiαi\alpha_i∏Ti=M∏Ti=M\prod{T_i} = M

6
机器人永远不会直走
我正在使用2个相同的直流电动机和脚轮。电机连接到L293D电机驱动器,并由RPi控制。 机器人没有直行。它向右转向。我两个电机都以100%PWM运行。 我试图纠正的错误: 我将轮子的PWM调整得更快,达到了99%,但是机器人只是转向了另一侧。 我调整了机器人的重量,问题仍然存在。 我曾经试图在没有负载的情况下运行电动机。正如我后来告诉我的,这是导致直流电动机空载运行的原因吗? 如果不是这个原因,请告诉我如何解决此问题,而无需使用任何传感器进行控制。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.