线程评级:
降低机器人速度
# 1
问题
亲爱的所有,

在RoboDK API中有一个函数:
代码:
setSpeed (speed_linear, speed_joint =-1, accel_linear=-1, accel_joint =-1)

如果我理解正确的话,线性加速度和关节加速度可能只是正的?
当机器人从起点接近终点时,是否可以减速?
例如,以100mm /s的速度开始移动,并接近目标点,使用此功能将速度降低到5mm /s。
嗨Civgineer,
如果你的机器人从A点移动到B点,他在到达B点之前自然要减速。请看附件。当你使用setSpeed时,你会得到速度的斜坡函数。在运动的某个时刻,机器人的速度将达到5毫米/秒。这个点与目标点B的距离取决于你设置的加速度/减速度。数学上有无穷多种方法。
也许你可以提供更多的细节,你正在尝试做什么。我不确定你是想在从某一点到某一点的特定距离上达到一个特定的速度,还是你只是想以更慢的速度跑过某一点而不停下来。


附加文件 缩略图(s)

# 3
你好DavidG,

感谢您的回复!
更具体地说:
你可以想象,我想让一个机器人从a点移动,起始速度为100mm /s
而在B点附近(距离为1000毫米),它应该减少到几乎为0。
我需要这个能够手动停止机器人,如果我看到它要粉碎障碍
(他们的立场可能会改变)。
请看下面的图片。我希望我的解释清楚。


附加文件 缩略图(s)

# 4
那样的话,我建议你在你的程序中添加一些辅助点。
如果你的实际目标是
代码:
机器人移动(目标01)# B点
机器人移动(目标02)# C点
等等……
你可以添加这样的指令:

代码:
机器人移动(目标01)# B点
robot.MoveL(辅助点01)#靠近目标点02的点
setSpeed (1)
机器人移动(目标02)# C点
setSpeed (100)
如果你的程序已经准备好了,你可以用一个只运行一次的脚本很简单地做到这一点。
附加点的位置取决于你对物体位置的确定程度。
当使用MoveL时,你可以计算两点之间的距离,并在移动的99%(例如)处添加一个辅助点。对于MoveJ,这也应该是可能的,只是数学可能会更棘手一些。
请记住,这种方法是相当原始的。
我很好奇你的申请是什么样的。这听起来就像你在使用一个程序来移动你的机器人,但不能真正信任它,所以你需要干预的能力。我不知道在那种情况下这个程序有什么用。问题是,在停止机器人之后,你如何继续?你会校正物体的位置吗?不要误解我的意思,但到目前为止,听起来你还可以完全手动操作机器人。
你和什么类型的机器人一起工作?
# 5
你好DavidG,

再次感谢。
这个解决方案最初出现在我的脑海中,但我想知道是否有可能用一行代码使用RoboDK API [setSpeed()函数中的加速度]来实现。
# 6
我认为使用setSpeed命令所能做的最好的事情是将加速度参数设置得较低,以便ramp函数变得相对平坦。我怀疑这个解决办法对你是否实用。运动时间会显著增加,我认为加速度参数可能会受到期望的速度和距离(即旅行时间)的约束。




浏览此线程的用户:
1客人(年代)