机器人

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

2
EKF-SLAM更新步骤,卡尔曼增益变得奇异
我正在为SLAM使用EKF,并且更新步骤遇到了一些问题。我收到警告,说K奇异,rcond计算为near eps or NaN。我想我已经将问题追溯到Z的倒数了。有没有一种方法可以计算出Kalman增益而不倒数最后一项? 我不是100%肯定这是问题的原因,所以我也将整个代码放在这里。主要入口是slam2d。 function [ x, P ] = expectation( x, P, lmk_idx, observation) % expectation r_idx = [1;2;3]; rl = [r_idx; lmk_idx]; [e, E_r, E_l] = project(x(r), x(lmk_idx)); E_rl = [E_r E_l]; E = E_rl * P(rl,rl) * E_rl'; % innovation z = observation - e; Z …

2
如何为轮式机器人选择好的IMU?
在我们的实验室中,我们有几个“库尔特”型机器人(大约相当于先锋号,六个轮子,差速器驱动器的大小)。到目前为止,内置陀螺仪已经过时了。主要问题是陀螺仪的漂移大,随着陀螺仪的加热而增加(误差高达3°/ s)。我们主要使用IMU(惯性测量单位)来获取初始姿态估计值,然后通过某种定位算法对其进行校正,但是即使这样做,由IMU引起的较大的初始姿态误差也常常令人讨厌。 我们暂时使用Android手机(Galaxy S2)替代IMU,与旧的IMU相比,结果要好得多。但是,我不喜欢依靠IMU和控制计算机(运行ROS / Ubuntu的笔记本电脑)之间的WiFi连接,因此我们正在寻找购买新的IMU。 我们应该选择哪种IMU?对于我们的应用,应考虑哪些重要标准?
16 ros  imu  odometry  gyroscope  ugv 

2
EKF中的协方差矩阵?
我在协方差矩阵的概念上苦苦挣扎。 现在,我的用于理解σ X X,σ ÿ ÿ,和σ θ θ,它们描述不确定性。例如,对于σ X XΣ=⎡⎣⎢σxxσyxσθxσxyσyyσθyσxθσyθσθθ⎤⎦⎥Σ=[σxxσxyσxθσyxσyyσyθσθxσθyσθθ] \Sigma = \begin{bmatrix} \sigma_{xx} & \sigma_{xy} & \sigma_{x \theta} \\ \sigma_{yx} & \sigma_{yy} & \sigma_{y \theta} \\ \sigma_{\theta x} & \sigma_{\theta y} & \sigma_{\theta \theta} \\ \end{bmatrix} σxxσxx\sigma_{xx}σyyσyy\sigma_{yy}σθθσθθ\sigma_{\theta \theta}σxxσxx\sigma_{xx},它描述了x值的不确定性。现在,我对其余的西格玛问题表示什么?如果它们为零意味着什么?我可以理解,如果是零,这意味着我没有关于x的值不确定性。σxxσxx\sigma_{xx} 注意,我正在阅读Howie Choset等人的《机器人运动原理-理论,算法和实现》。等,其中指出 通过这个定义是一样的σ 2 我的方差X 我。对于我≠ Ĵ,如果σ 我Ĵ = 0,则X 我和X …

2
机器人初创公司如何工作?
在软件工程初创公司中,您通常会带计算机去一个房间或带上自己的笔记本电脑来编写代码。我对机器人初创公司的工作方式感兴趣:是否有单独的位置来设计机器人?以Anki为例。他们是否有单独的研究实验室来设计机器人?机器人如何从单一设计过渡到制造? 我在SE上找不到更好的位置来发布此信息(“创业公司”业务部分已终止):如果有更好的位置问这个问题,请将我链接到另一个SE网站。


2
通过强化学习对跟随机器人进行编程
我正在考虑使用强化学习算法对跟随机器人进行编程。我正在考虑的问题是如何获得学习通过任意路径导航的算法? 遵循《萨顿与巴托书》进行强化学习后,我确实解决了一个涉及赛车场的运动问题,在赛车场中,汽车经纪人学会了不偏离赛道并调节速度。但是,该运动问题使代理人学习了如何在其训练的轨道上进行导航。 让机器人导航任意路径是否在强化学习的范围内?代理商是否绝对必须具有竞赛线路或路径的地图?我可以在状态空间中使用哪些参数?

6
什么是检测一个人的最便宜/最简单的方法?
我想知道是否有人能使用现成的标准廉价传感器检测热身哺乳动物(即人类)? 理想情况下,我想使用便宜的传感器或传感器组合来检测房间内的人并定位该人。我希望机器人进入房间,检测是否有人,然后移至检测到的人。精度不一定是100%,因为成本是一个重要因素。我希望这种传感器的计算要求能够在Arduino上运行,尽管如果不可能的话,我愿意使用功能更强大的产品,例如Raspberry Pi或BeagleBone Black。我有一些想法;但是,它们都不是理想的: PIR传感器 -可以检测大视野内的运动(即通常为120度或更大)。可能是我所知道的最接近“人类”探测器的事物。但是,在如此大的视野下,需要移动和定位/三角定位一个人所处的位置将非常困难(不可能?)。 超声波 -可以高精度检测物体。具有较窄的视野;但是,无法区分静态的无生命物体和人类。 红外探测器 -(即锐利范围传感器)可以再次以极高的精度,非常狭窄的视场检测物体;但是,它再次无法区分对象。 网络摄像头+ OpenCV-可能使用面部检测来检测房间中的人。这可能是最好的选择。但是,OpenCV在计算上很昂贵,并且运行起来比arduino要多得多。即使在Raspberry Pi上,速度也会很慢。 Kinect-使用Kinect的特征检测功能,相对容易识别区域内的人员;但是,Kinect太昂贵了,我认为它不是“便宜”的解决方案。 也许有人知道调整到体热的廉价“热量检测器”和/或通过上述(#1-4)的某种组合获得了成功,并且想分享他们的结果?
15 sensors 

2
简单摆的最优控制
我正在研究各种最佳控制方法(并在Matlab中实现它们),并且作为测试用例,我现在选择一个简单的摆锤(固定在地面上)作为测试用例,将其控制在较高位置。 我设法使用“简单”的反馈方法(基于能量控制的摆动+上部位置的LQR稳定)对其进行控制,并且状态轨迹如图所示(我忘记了轴的描述:x是theta,y是theta点。 现在,我想尝试一种“完整”的最佳控制方法,从迭代LQR方法开始(我发现在这里实现了该方法http://homes.cs.washington.edu/~todorov/software/ilqg_det.m) 该方法需要一个动态函数和一个成本函数(x = [theta; theta_dot], u为电动机转矩(仅一台电动机)): function [xdot, xdot_x, xdot_u] = ilqr_fnDyn(x, u) xdot = [x(2); -g/l * sin(x(1)) - d/(m*l^2)* x(2) + 1/(m*l^2) * u]; if nargout > 1 xdot_x = [ 0, 1; -g/l*cos(x(1)), -d/(m*l^2)]; xdot_u = [0; 1/(m*l^2)]; end end function [l, l_x, l_xx, l_u, …
15 control 

3
如何动态地自动调整PID参数?
我有一个简单的伺服系统,该系统使用在MCU中实现的PID控制器执行反馈。但是,系统的属性会动态更改,因此永远无法在所有情况下调整PID参数。 我的机器人是一个轻巧的手臂,带有可向后驱动的电动机,类似于此机器人: 手臂执行多项任务,包括捡起重物,在桌子上推拉物体。这些任务中的每一个都需要不同的PID调整参数,而这些参数我很难预测。 我真正想要的是一些高级功能,该功能可以根据手臂的行为谨慎地调整参数。例如,如果注意到手臂在摆动,则可能会减小P并增加D。或者如果注意到手臂没有达到目标,则可能会增加I。 是否存在这样的算法?即使算法没有立即完善参数,我也会很高兴。例如,在将参数调整到新值之前,手臂可能会摆动几次。

6
机器人技术研究生的数学前提
机器人技术专业的一名研究生向我询问了他应该修读的数学领域(先决条件),以开始进行机器人技术硕士学位研究。什么是研究学生必不可少的一些好材料/书?为了让学生在机器人技术方面打下坚实的基础,我们应该建议哪些?
15 research 

4
没有陀螺仪的两轮机器人是否可以移动和稳定?
有了像这样的两轮机器人,我设法稳定了它并保持了静止。这是通过使用数字反馈控制系统通过读取车轮的位置来确定位置来完成的,并将来自车轮电机的自然反电动势用于反馈回路中以确定速度。它使用PID控制器保持稳定,该PID控制器是使用根轨迹算法进行设计的,以使其保持稳定并调节性能参数(例如超调百分比,建立时间等)。我想尝试使其保持稳定,同时又将其向前推进,但我不知道如何去设计一个可以做到这一点的线性控制器。是否可以同时推动机器人前进和 使用车轮上的反馈控制器保持稳定,还是需要陀螺仪?

4
如何修改低成本的业余伺服系统以使其“自由运行”?
我有一些业余伺服器(Power HD 1501MGs),我希望能够(通过Arduino)对其进行控制,因此它们可以转到我设定的角度,或者将它们置于“自由运行”模式,无论负载在哪里,负载都会带到哪里。 这甚至有可能吗,还是我最终会剥离齿轮? 我的第一个想法是简单地切断伺服器的电源,但是在那种状态下移动它们所需的力比我想要的还要大。 如果有可能,我是在寻找硬件更改,还是可以在软件中更改?
15 control  rcservo 

2
非欧几里德配置空间的最近邻居数据结构
我正在尝试实现用于RRT运动计划器的最近邻居结构。为了比线性蛮力最近邻搜索更好,我想实现像kd-tree这样的东西。但是,似乎经典的kd-tree实现假定空间的每个维度都可以分为“左”和“右”。例如,此概念似乎不适用于非欧几里德空间,例如SO(2)。 我正在使用具有完全旋转链接的串行机械臂,这意味着机器人的配置空间的每个维度都是SO(2),因此不是欧几里得。可以修改kd-tree算法来处理这些子空间吗?如果不是,是否还有另一个最近邻居结构可以处理这些非欧几里得子空间,同时仍然易于更新和查询?我还看了FLANN,但是从他们的文档中我还不清楚他们是否可以处理非欧几里德子空间。


1
ROS:最佳做法?
我将构建一个小型机器人系统,似乎ROS提供了一个不错的框架来控制和编程系统。 但是,我想知道哪种是管理机器人组件的最佳实践。 将所有传感器放在一个节点上有意义吗? 我应该只将同一类型的传感器放在一个节点中还是将一个节点用于一个传感器更好? 拥有某种处理程序节点是一种好习惯,该处理程序节点从传感器获取输入并操纵相应的执行器,或者执行器节点和传感器节点应该直接通信吗? 融合了传感器节点和执行器节点的执行器 带处理程序的单个传感器和执行器节点 直接沟通 对我来说,最好是拥有某种处理程序,该处理程序处理传感器和执行器之间的通信,并为机器人的每个元素提供一个节点(如图2所示),因为系统以这种方式松散耦合并可以轻松扩展,但是我想知道您的意见。
14 control  ros 

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.