Questions tagged «control»

一种用于管理,命令或调节系统某些部分的方法或设备。



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

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。 是否存在这样的算法?即使算法没有立即完善参数,我也会很高兴。例如,在将参数调整到新值之前,手臂可能会摆动几次。

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

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

3
如何进行PIV控制?
我正在考虑尝试使用PIV控制而不是PID控制。与PID相反,PIV控制在互联网和文献中几乎没有解释。几乎只有一个信息源解释了该方法,这是Parker Motion的技术论文。 我从控制方法图(在Laplace域中)了解到,控制输出归结为以下各项的总和: Kpp *(位置误差的积分) -Kiv *(测得速度的积分) -Kpv *(测得的速度) 我对么?谢谢。

2
为足球机器人编写旋转控制器的正确方法是什么?
想象一下为一个三轮足球机器人编程。您将使用哪种类型的控制器来旋转它?P?PID? 该控制器的目标是使机器人以规定的角度(0度)站立,并在用手或其他机器人旋转时使其转回原位。 我为机器人使用步进电机,而不是伺服器,因此需要在软件中实现! 我已经写了一个样本P型控制器,并且运行相当好。但我想尽可能改善它。代码如下: void spinSpeed(int devidedValue, int addedValue, int correction) { if(degree<correction && degree>-correction) { motorSpeed = 0; } else { if(degree > 0) { motorSpeed = ((degree)/(devidedValue) + (addedValue)); } else { motorSpeed = ((degree)/(devidedValue) - (addedValue)); } } } correction是一个范围,其中机器人没有运动。 degree是从指南针返回的-127到128之间的数字。 motorSpeed是应用于PWM的0到255之间的数字。
14 soccer  control 

4
为什么走路这么难?
至少在两条腿上。Asimo是最著名的类人机器人之一,已经具备了行走的能力,尽管它似乎并不能非常稳定地行走。这是最近的结果。 据我所知,腿实际上是多维的非线性系统,其控制理论处于“非常困难”和“不可能”的边界。 但是,例如,飞机类似地是多维的和非线性的,尽管如此,几十年前自动驾驶仪对它们的控制也足够好。他们被充分信任,可以将数百名活着的人类的生命倾诉给他们。 本质上的区别是什么?什么使行走如此困难,而飞机却如此容易控制呢?

3
如何使用慢速(30Hz)系统控制快速(200Hz)实时系统?
我们目前正在设计一种移动机器人+安装有多个受控自由度和传感器的手臂。 我正在考虑将架构分为两个部分: 一组实时控制器(运行Xenomai之类的RTOS的Raspeberry Pis或裸机微控制器)来控制机械臂电机和编码器。让我们称这些机器为RTx,x = 1,2,3…取决于微控制器的数量。该控制环路将以200Hz运行。 功能强大的香草linux机器,运行ROS来计算SLAM,mocap和执行高级逻辑(确定机器人的任务并计算电动机的所需位置和速度)。该控制环路将以30Hz运行。 我知道我的框架需要可扩展,以容纳更多的电机,更多的传感器,更多的PC(例如,用于外部Mocap)。 我的主要问题是决定如何使不同的RTx与PC1通信。我看过与机器人体系结构(例如HRP2)有关的论文,大多数情况下它们描述了高层控制体系结构,但是我还没有找到有关如何使高层与高层进行可扩展通信的信息。我错过了什么? 为了连接快速RT机器以确保通过PC1进行电机控制,我考虑了TCP / IP,CAN和UART: TCP / IP:不确定,但易于部署。非确定性是一个现实问题吗(因为无论如何它只会在30Hz的低速下使用)? CAN:速度慢,非常可靠,以汽车为目标(已经看到有一些示例将CAN与机器人配合使用,但看起来很奇怪) UART:如果我只有一台用于电机控制的RT机器,我会考虑使用UART,但是我猜想该端口不能很好地与许多RTx配合使用。由于TCP / IP的不确定性,TCP / IP真的不可行吗?它是如此易于使用... 目前,没有任何解决方案对我来说真的很明显。而且由于找不到使用可靠且可扩展的特定解决方案的严肃的机器人示例,因此我没有做出选择的信心。 有没有人对此观点或文献有明确的看法?机器人上是否使用典型或主流的通信解决方案?

3
我不了解PID控制器的积分部分
我不了解PID控制器的组成部分。让我们假设来自维基百科的伪代码: previous_error = 0 integral = 0 start: error = setpoint - measured_value integral = integral + error*dt derivative = (error - previous_error)/dt output = Kp*error + Ki*integral + Kd*derivative previous_error = error wait(dt) goto start 一开始将积分设置为零。然后,在循环中,随着时间的推移,它会整合错误。当我对设定值进行(正)更改时,误差将变为正,积分将随着时间(从头开始)“消耗”这些值。但是我不明白的是,当误差稳定回到零时,积分部分仍将具有一定的值(随着时间的推移而产生积分误差),并且仍将对控制器的输出值有所贡献,但不应这样做,因为如果误差为零, PID的输出也应该为零,对吗? 有人可以解释一下吗?
12 control  pid 

3
哪种模型最适合机器人操纵器的反馈控制:MIMO或并行SISO?
我目前正在设计具有6自由度的机械臂,我的目标是能够给出3d位置,速度和方向()。X ,ÿ,ž, X˙, ÿ˙,ž˙,θ ,α ,γX,ÿ,ž,X˙,ÿ˙,ž˙,θ,α,γx,y,z,\dot{x},\dot{y},\dot{z},\theta,\alpha,\gamma 到目前为止,我在大学中仅对SISO系统进行了反馈控制,因此,考虑到多变量控制的学习曲线,我是否应该尝试将系统建模为MIMO或多个SISO 来解决这个问题? 如果可能,请在每种策略中提及可能的不利和优势。


2
如何计算伺服控制器所需的回路频率?
我有一台电动机,用于驱动连接至称重传感器的弦。我想实现一个闭环控制器来控制电动机施加在弦上的负载。 如何确定所需的环路频率以创建稳定的控制系统?是否像奈奎斯特频率那样,环路速度至少应为机械系统固有频率的两倍?
11 control  motor  force 

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.