笔者只是大二小登,且语文一般。以看懂为主。欢迎交流。
大佬可以直接最后一行,拿走直接用。
目录
-
使用的计算平台
整个项目使用的平台来自于课程老师提供,所以没有特意的选型。但是在实际上,这一平台在不同程度上都存在一定的短板。
使用的是星呗科技的机械臂平台,单片机使用的arduino,开发使用的是platformlO。但是我们在课程项目中由于需要执行其他任务,所以机械臂是安装在星呗科技的底盘之上。
-
机械建模
在写字之前,我们需要自己绘制一个安装笔的支架。
在设计之前,我们还需要自己去买一只笔。为了购买的方便,我们是在学校的食堂购买的。上面这幅图片是在淘宝上面截取的。
在设计笔架的时候,我采用的是自上而下的设计。第一步是确定安装位置。包括末端,中间第二轴等。根据对写字过程的分析。我们可以知道实际上只需要三个轴。这是因为我们只需要控制末端位置而不需要考虑姿态。所以最后决定放在第二轴。
为了方便使用即不影响机械臂运动且不会遮挡摄像头。所以最后选择安装在第二轴左侧(第二图)。安装方式上结合所在位置的空间决定使用电工胶带。然后就是去思考支架与笔的链接方式。由于时间较短,所以决定使用开口圈+微小于白板笔直径的打印件。
本来到这来就已经可以了。代码也是依据这套建模调试出来的。但是调试的过程中发现一个关键问题——笔容易坏。主要的原因是因为解算的不准确,导致笔的末端有的时候会向着墙面撞击。最后的结局就是笔直接牺牲。
面对这一问题,我想到的众多解决方案中我觉得最好的就是在笔的轴线上加装弹簧。让笔可以自由的前后运动,但始终贴紧墙面。
但是这里的设计有一些难受的地方。相对简单的就是上下运动的限位和避免笔旋转的限位。但是在后面使用的时候,我发现由于运动端和静止端之间的间隙导致笔在受到外力的时候会出现偏离轴线的现象。我还没有想到方法可以比较好的解决这一问题。所以整个笔的设计就停留在了外发版本了。可以积极评论交流一下。
下面讲一下细节。
核心的弹簧来自于按压笔。主要是确实是没有时间进行购买。弹簧依靠四个限位安装。内外两层。运动端和静止端之间的间隙可以直接用(使用p1s多次测试过),但是最好在运动端的外层覆盖一层胶带。这样的目的是为了保证运动的流畅性。下方的通气孔是为了避免因为气压导致运动困难的问题。安装限位盖使用的是扎带。主要是由于在设计时希望整个件的体积尽可能的小,所以大部分的地方采用的时2mm厚的板子。这样小的板厚不太支持滚花螺母,但是又不想使用普通螺母(懒)。最后为了方便使用的是扎带。最后的效果就是这样。
-
数学解算
在安装位置上舍弃安装在末端的很大一部分原因是为了避免四轴的解算,让计算尽可能简单。主要的计算逻辑就是一个余弦定理(高中数学)。然后是直线插值,最后就是转换为舵机的pwm输入值。结果是输出在对应的txt文件中。
转换的三个数字来自于将机械臂向前水平打直为一条直线时的三个舵机值。
最后输出为
这段是为了方便导入代码。
数学过程第一是不复杂,第二是缺少呈现手段。所以这里只给出一个解算草稿。
-
代码调试
最后就是将计算得到的矩阵让机械臂依次执行。
在执行的时候,选点相对比较重要——让所有的点的x轴大于零。这主要是为了避免机械臂主体与墙面干涉。
其他的欢迎自由发挥。
这里稍微解释一下代码。
最后效果
开源资料如下
通过网盘分享的文件:开源支架
链接: https://pan.baidu.com/s/1MLi9XO9S49nG1Bgq4pUi7Q?pwd=jiqr 提取码: jiqr
--来自百度网盘超级会员v3的分享
欢迎积极评论。