时钟绘制机械手的设计优化

介绍一个时钟绘制机械手的小程序,这是一个非常有趣的小时钟,由两个机器人剪刀臂在一个面板上绘制时间。如果之前你从来没有看到它是怎么工作的,先看这个。


这是2015年,这是我在网上看到的一个非常有趣的小机械手。当时我试图自己去做一个,但这个想法由于一些其它事情而被耽搁了,因此有很长一段时间我在想怎么去做一个?下面是我当时想的几点问题:

  • 1、最初的设计者是如何计算出的每一个手臂的长度?
  • 2、图纸面积有多大?
  • 3、我该如何使它更大?
  • 4、如何提高精度?
    在用SolidWorks绘制机械臂结构时,我做了一些数学计算,得到了它是如何工作的基本思路。然后,我决定用精确的参数,让每个手臂得到的最佳仿真结果,这是我最终得到的程序,非常完美,确实可以工作。

    实施

    这个计划的核心是插值代码,包括直线插补和圆弧插补,所以线性插值基本上我们从给定的点,然后计算下一个相邻的点和画它,做这一路的终点,圆弧插补是一样的但我们用sin和cos函数计算各点。
    既然插补问题就解决了,那么下一个问题是如何将手臂移动到该点呢?让我们以左臂为例。既然我们知道当前绘图点,那么我们可以计算点和左伺服中心之间的距离。因为我们知道下臂的长度(红色)和上臂(蓝色)让这个问题变得知道三边的长度和计算出三个内角,内角之后就可以计算出双手的关节位置。最后我们绘制在图形的所有元素。一个100ms定时器是用来显示动画。

    功能和程序描述

  • 1、在图形面板,青色和蓝色矩形表示伺服;
  • 2、橙色派是移动范围较低的机械臂(红色),如果两个机械臂相撞则需要检查;
  • 3、红色和蓝色的节段是较低和上部的机械臂;
  • 4、“自动”复选框启用/禁用动画;
  • 5、拖动滚动条来调整每个参数;
  • 6、“面积计算”按钮显示绘图区点的样式;
  • 7、“测试”按钮显示“012”绘图数的结果。

    实验和结果

    最重要的参数:各臂长(L1R1,L2R2)和两舵机的距离。所以我们会调整一个参数保持不变,看这两个参数发生了什么变化。该区域是由5度的伺服控制和点的密度成正比的精度。理想参数将有一个均匀分布的点和大的可用的绘图区。

    调整D(两伺服的距离)

    比较下面的图表中我们可以看到,D增长的区域实际上被挤到了中心,最后消失的距离大于机械臂的总和。第一个配置是失败的因为两舵机碰撞在一起,虽然有一个精彩的点的分布。第二个有一个很好的分配和两个大的绘图区域,但是有点还是点在了“伞”下面,意味着一些输入可能会导致意想不到的位置和碰撞,所以输入角度应仔细检查。
    至于测试数,则第二个有最好的结果,所有的数字都会变形,最后不能得出数字。
    所以我们可以说,应该尽可能小。

    调整L1R1(下臂)

    比较下面的数字可以看出,下臂增长绘图区域也会增加,但精度下降。所以这是一个平衡,如果你想要更高的精度,走很短的下臂,如果你想要更大的绘图区域,则选择更长的下臂。值得注意的是,在过去的两个配置,其实有一些地区在“保护伞”不能被吸引,这实际上降低了有效绘图区域。这是因为上面的手臂太短了,所以上臂和下臂的长度应该与它们相配!(他们是兄弟,不要留下任何一个)。
    第一个数字有一点,它与第二和第三个比它有着良好的性能,但它最后两个数字是完全扭曲的。

    调整L2R2(上臂)

    比较下面的数字可以看出,在绘图区域的增长和移向上的增加,这是直的,因为上手臂太长,在较低的区域,点分布变得更好。有一个问题是在程序中没有显示面板。因此,较长的上半臂需要更大的面板,而面板的下部则是被浪费的。

    结论

    对于那些自己想要设计时钟绘制机械手的童鞋们应牢记这几点(仅供参考,由于程序的错误,可能不正确)。这些技巧都是建立结构的一些优化,但是优化后它是否符合你们的设计要求,那就依靠个人的设计要求来定。
  • 1、伺服系统之间的距离应该是最小的;
  • 2、较长的较低的手臂,面积较大,但精度较低,反之亦然;
  • 3、较长的上臂区域较高,但已略有改善;
  • 4、下臂和上臂的长度应与试验误差相匹配。

    更新

    我已将SolidWorks源文件上传至我的微小网主页。
Jason Xu wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!
坚持原创技术分享,您的支持将鼓励我继续创作!