0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

蛇形机器人的制作教程

454398 来源:工程师吴畏 2019-08-16 09:52 次阅读

步骤1:组件

这是单条蛇的零件清单,如果你想制作两条蛇,则需要将组件的体积加倍。

10 MG996R伺服系统*

1.75mm 3D打印灯丝

10个滚珠轴承,零件编号608

20个小滚珠轴承,零件号r188,用于车轮**

40个飞利浦头螺钉6-32 x 1/2“

8个更长的螺丝

至少20件4英寸拉链

每根5米红色和黑色20号线或更厚的***

标准22号线

30个公头管针(分成10个批次) 3)

Arduino Nano

3D打印部件

某种形式的动力,我个人使用改进的ATX电源

1000uF 25V电解电容

各种尺寸的热缩管,焊锡,胶水等杂项工具

*您可以使用其他类型,但您需要重新设计3D文件以适应您的伺服系统。此外,如果你尝试使用像sg90这样的较小的伺服器,你可能会发现它们不够强壮(我没有测试过这个,你可以自己试验)。

**你不需要为车轮使用小型滚珠轴承,我只是躺了很多。或者,你可以使用乐高轮或其他玩具轮。

***这根导线最多可以通过10安培,太薄,电流会熔化它。

步骤2:3D打印组件

蛇形机器人的制作教程

如果您正在制作1D蛇打印这些碎片。

如果你正在制作这些碎片的2D蛇纹。

重要说明:刻度可能是错误的!我在Fusion 360中设计我的组件(以mm为单位),将设计作为.stl文件导出到MakerBot软件中,然后将其打印在Qidi Tech打印机(MakerBot Replicator 2X的克隆版本)上。在这个工作流程的某个地方有一个错误,我的所有打印出来都太小了。我一直无法识别错误的位置,但暂时修复了MakerBot软件中每个打印尺寸缩放到106%的问题,这解决了这个问题。

鉴于此,请注意,如果您打印上面的文件,它们可能会被错误地缩放。我建议在打印之前打印一件并检查它是否适合您的MG996R伺服。

如果你打印任何文件,请让我知道结果是什么:如果打印太小,恰到好处,太大,百分之几。通过作为社区一起工作,我们可以使用不同的3D打印机和.stl切片器来解决错误的位置。

步骤3:装配蛇

两个版本的蛇的装配过程大致相同。唯一的区别是在2D蛇形中,每个电机相对于前一个旋转90度,而在1D蛇中,所有电机都在一个轴上对齐。

首先拧下伺服,保存拧紧并取下黑色塑料框架的顶部和底部部件,小心不要丢失任何齿轮!将伺服滑动到3D打印的框架中,如上图所示。更换伺服外壳的顶部,并用四个6-32 1/2“螺钉将其拧紧到位。保存伺服框架的底部(如果您想在以后的项目中再次使用它)并将其更换为3D印刷外壳,唯一的区别是滚珠轴承滑动的附加旋钮。将伺服器拧回到一起,重复10次。

重要提示:在继续之前,您必须将代码上传到Arduino并将每个伺服器移动到90度。如果不这样做,可能会导致您断开一个或多个伺服和/或3D打印的帧。如果您不确定如何将伺服器移动到90度,请参阅此页面。基本上将伺服的红线连接到Arduino上的5V,棕色线连接到GND,黄色线连接到数字引脚9,然后上传链接中的代码。

现在每个伺服都在90度,继续:

通过将3D打印的旋钮从一个伺服盒插入第二段片的孔中来连接10个片段,然后用一点力将伺服器的轴推入其孔中(为清晰起见,请参见上面的图片和视频)。如果您正在制作1D蛇,则所有线段都应对齐,如果您正在制作2D蛇,则每个线段应旋转90度到前一个线段。请注意,尾部和头部框架只是其他部分长度的一半,连接它们但在完成布线之前不要对金字塔形状的部件进行注释。

安装x形伺服臂并将其拧紧到位。将滚珠轴承滑过3D打印旋钮,这需要将两个半圆柱轻轻挤压在一起。根据您使用的灯丝品牌和填充密度,柱子可能太脆而且会卡住,我不认为会出现这种情况,但是不要过度用力。我个人使用10%填充的PLA长丝。一旦滚珠轴承打开,它应该被旋钮上的悬伸锁定。

步骤4:电路

两条机器人蛇的电路相同。在布线过程中,确保每个段都有足够的布线空间完全旋转,特别是在2D蛇形中。

以上是仅有2个伺服的布线电路图。我试着用10个舵机做一个电路图,但它太过拥挤了。这张照片与现实生活中唯一的区别在于,您需要并联8个伺服电机,并将PWM信号线连接到Arduino Nano上的引脚。

当连接电源线时,我使用了单件18号线(厚度足以承受10安培)作为主要的5V线沿着蛇的长度延伸。使用剥线钳,我以10个规则的间隔移除了一小部分绝缘体,并从这些间隔中的每一个焊接了一小段电线,一组3个插头。对于黑色18规格GND线和第二个插头引脚,再次重复此操作。最后将较长的导线焊接到第3个插头引脚,该引脚将PWM信号从蛇形头部的Arduino Nano传送到伺服系统(导线必须足够长才能到达,即使分段弯曲)。根据需要安装热缩管。将3个插头引脚连接到伺服电线的3个母插头引脚。对10个伺服系统中的每个伺服系统重复10次。最终实现的是并行连接伺服系统并将PWM信号线连接到Nano。公/母插针的原因是你可以很容易地将线段拆开并更换伺服电机,如果它们在没有拆焊的情况下断开。

将GND和5V电线焊接到尾部的3x7孔穿孔板上电容器和螺丝端子电容器的目的是消除启动伺服系统时引起的任何电流消耗尖峰,可以重置Arduino Nano(如果你没有电容器,你可以在没有它的情况下离开,但最好是安全的) 。请记住,电解电容器的长插脚需要连接到5V线路,而较短的插脚连接到GND线路。将GND线焊接到Nano的GND引脚,将5V线焊接到5V引脚。请注意,如果您使用不同的电压(参见下一节),请说一个7.4V的Lipo电池,然后将红线连接到Vin引脚,而不是5V引脚,这样做会破坏引脚。

将10根PWM信号线焊接到Arduino Nano上的引脚。我按以下顺序连接了我,你可以选择以不同方式连接你的,但只记得你需要更改代码中的servo.attach()行。如果你不确定我在说什么,只需按照我的方式连线,你就不会有问题。从蛇的尾部伺服到蛇的头部,我按照以下顺序连接了我的蛇。将信号引脚连接到:A0,A1,A2,A3,A4,A5,D4,D3,D8,D7。

使用拉链来清理接线。在继续检查之前,所有部分都可以移动,并且有足够的空间让电线移动而不会被拉开。现在接线已完成,我们可以拧上头部和尾部金字塔形的帽子。请注意,尾部有一个用于系绳出来的孔,头部有一个用于Arduino编程电缆的孔。

步骤5:为Snake供电

由于伺服系统并联连接,它们都获得相同的电压,但必须加上电流。查看MG996r伺服系统的数据表,他们可以在运行时绘制高达900mA的电流(假设没有停止)。因此,如果所有10个伺服系统同时移动,则总电流消耗为0.9A * 10 = 9A。因此,正常的5v,2A墙壁插座适配器将无法正常工作。我决定修改ATX电源,能够在20A时达到5v。我不打算解释如何做到这一点,因为已经在Instructables和YouTube上进行了很多讨论。在线快速搜索将向您展示如何修改其中一个电源。

假设您已经修改了电源,只需在电源和螺钉端子之间连接一根长绳即可。蛇。

另一种选择是使用板载锂电池组。我没有试过这个,所以你需要为电池设计一个安装座并将它们接入。请记住伺服电机和Arduino的工作电压,电流消耗(不要焊接5v以外的任何东西) Arduino上的5v引脚,如果有更高的电压,请转到Vin引脚。)

步骤6:测试一切正常

继续让我们测试一切正常。上传此代码。你的蛇应该在0-180之间单独移动每个伺服,然后通过直线放置完成。如果没有,则出现问题,很可能是接线不正确或者伺服系统最初没有居中,如“蛇的装配”部分所述。

步骤7 :代码

目前没有蛇的遥控器,所有的动作都是预先编程的,你可以选择你想要的。我将在第2版中开发一个遥控器,但是如果你想远程控制它我会建议在Instructables上查看其他教程并调整蛇与蓝牙兼容。

如果你正在制作1D蛇上传此代码。

如果您要让2D蛇上传此代码。

我鼓励您使用代码,进行自己的更改并创建新算法。阅读接下来的几个部分,了解每种类型的运动的详细解释以及它的代码如何工作。

步骤8:称重Vs轮

蛇的主要方式之一能够向前移动是通过他们的鳞片的形状。秤可以更容易向前运动。有关进一步说明,请观看3:04以后的视频,了解鳞片如何帮助蛇向前移动。在同一视频中观看3:14显示了当蛇在袖子中时的效果,消除了鳞片的摩擦。正如我的YouTube视频中所示,当机器人1D蛇试图在没有鳞片的草地上滑行时,它既没有向前或向后移动,因为力量总和为零。因此,我们需要在机器人的下腹部添加一些人工尺度。

通过尺度重建运动的研究在哈佛大学完成,并在此视频中进行了演示。我无法设计一种类似的方法来在我的机器人上上下移动音阶,而是安排将被动的3D打印音阶附加到下腹部。

不幸的是,这被证明是无效的,因为鳞片仍然在地毯表面上掠过,而不是抓住纤维并增加摩擦力。

如果您想尝试我制作的音阶,您可以从我的GitHub 3D打印文件。如果你自己成功,请在下面的评论中告诉我!

我尝试使用r188滚珠轴承制成的轮子,外面有热缩管作为“轮胎”。您可以从我的GitHub上的.stl文件中3D打印塑料轮轴。虽然车轮在生物学上不准确,但它们类似于秤,因为正向旋转很容易,但是侧向运动要困难得多。你可以在我的YouTube视频中看到轮子的成功结果。

第9步:滑动动作(单轴蛇)

我们已经讨论了鳞片如何帮助蛇前进,但我们如何编程蛇?简短的回答是我们通过伺服链泵送正弦波。但是有关详细信息的更详细分析,请查看代码。请注意,在下面的代码块中,我省略了大部分细节,只关注数学方面。不要将此代码放入Arduino中,它不起作用,仅用于解释目的。而是使用这个完整的代码。

该行向10个伺服器中的每个伺服器写入一个正弦波。基线角度为90度,偏移量变量将控制蛇是向前(偏移= 0)还是向左或向右(偏移= 10或-10),参见上面的GIF。正弦波输出一个介于[-1,1]之间的值,该值可以通过乘以幅度来放大。

for(int j=0; j《10; j++){

myServos[j].write(90+offset+Amplitude*sin(Speed*rads+j*Wavelengths*Shift));

}

由于伺服的范围为[0,180]度,我们必须确保上述值不会使输出低于0或高于180.以下while循环用于将幅度限制在这些边界内。在数学上我们必须满足这个条件:| offset | + | amplitude | 《= 90

while(MaxAngleDisplacement》90){

Amplitude=abs(Amplitude)-1;

MaxAngleDisplacement=abs(offset)+Amplitude;

}

要从正弦波获得所需的输出,我们必须使用弧度而不是度数。如果您不确定这里的弧度是一个简短的介绍。基本上2 * pi弧度= 360度。以下行进行了这种转换。

for(int i=0; i《360; i++){

rads=i*pi/180.0;

}

因为每个伺服沿着正弦波比前一个伺服更远,我们必须在正弦波代码中移动每个连续的电机。这是使用以下行完成的。然后可以在上面的for循环中看到移位变量。

float pi=3.14159;

int TotalNumberofServos=10; //change as required

float Shift = 2*pi/TotalNumberofServos;

我们现在已经设置了基础工作。我鼓励您改变以下变量的值:振幅,速度和波长,以查看它们对正弦波输出的影响。

步骤10:英寸蠕虫(单个) Axis Snake)

通过观看英寸蠕虫的移动,可以直观地理解这种动作。代码在蛇体上传播一个简单的撞击,每次都向前移动一点。我不想在这里插入另一个代码块,所以我将引导你到我的GitHub来查看名为‘InchWorm()’的函数中的代码。

需要注意的一点是通过增加比例可以提高效率。如果您在7:24观看我的YouTube视频,特别关注尾段,您会发现它会前后抖动。这表明蛇不只是向前移动,每次移动也会略微滑回,降低效率。

步骤11:其他几何形状(单轴蛇)

直线(),Cshape(),ubend()和ring()函数都是相当自我解释的,因为它们创建了C形弯曲,U形弯曲等,尽管如果你想要我会说为了携带蛇,我发现ubend()是最好的形状,否则蛇就会在任何地方翻转,因为即使没有动力,舵机也会在自身重量下移动。

第12步:Sidewinding Motion(双轴Snake)

在查看代码之前,请看一下真正的绕行蛇。在前面的链接中,通过周期性地抬起部分蛇体并将其自身推向侧面的过程来描述响尾蛇的运动。为此,我们将在2D蛇的水平和垂直平面上发送正弦波。在代码中,这个动作是在函数‘sidewind()’中写的。

你可能会注意到GIF中的侧向运动(实时运行,而不是加速)比质量更好。我的YouTube视频中的侧卷剪辑(以2倍的速度运行)。这证明了实验的重要性,并为变量找到正确的值.GIF中使用的变量导致比我的YouTube视频更成功的侧绕。在GIF中,变量是:

速度= 2

波长= 1.5

在YouTube视频中,变量是:

速度= 1

波长= 1.0

要实现侧绕运动,必须通过一个平面发送正弦波,通过另一个平面发送余弦。为此,我通过分别使用偶数(2 * j)和奇数(2 * j + 1)编号系统分离垂直平面中的5个电机和水平中的5个来修改1D情况下的代码。我们希望其中一条线作为正弦波移动而另一条线作为余弦波移动。为了控制移动方向,我添加了一个带有乘数变量的表达式(等于1或-1)。根据乘数变量的值,代数表达式: - (乘数-1)* pi/4和+(乘数+ 1)* pi/4,将为0或+ pi/2。请注意sin(x + pi/2)= cos(x)。因此,我们已经实现了我们的目标:一个平面中的正弦波和另一个平面中的余弦波,反转波的顺序将改变运动方向。

for(int j=0; j《5; j++){

myServos[2*j].write(90+offset+amplitude*sin(Speed*rads+j*Wavelengths*shift-(Multiplier-1)*pi/4)); //moves servos in vertical plane

myServos[2*j+1].write(90+offset+amplitude*sin(Speed*rads+j*Wavelengths*shift+(Multiplier+1)*pi/4)); //moves servos in horizontal plane

}

为了实现转弯运动,我只是稍微修改了上面的代码,以便蛇的前半部分(引脚A5,4,3,8,7上的电机)向右侧和后侧侧向旋转蛇的一半(A0,A1,A2,A3,A4上的电机向左侧)向左侧转动,导致向右转动(类似的方法可能导致左转)。

for(int j=0; j《3; j++){

myServos[2*j].write(90+offset+amplitude*sin(Speed*rads+j*Wavelengths*shift+(Multiplier+1)*pi/4));

myServos[2*j+1].write(90+offset+amplitude*sin(Speed*rads+j*Wavelengths*shift-(Multiplier-1)*pi/4));

}

for(int j=3; j《5; j++){

myServos[2*j].write(90+offset+amplitude*sin(Speed*rads+j*Wavelengths*shift-(Multiplier-1)*pi/4));

myServos[2*j+1].write(90+offset+amplitude*sin(Speed*rads+j*Wavelengths*shift+(Multiplier+1)*pi/4));

}

步骤13:敲击(双轴蛇)

受到眼镜蛇的启发,使用此代码,蛇坐等待罢工。代码是相当直接的,因为蛇保持静止,直到它有时间击打,此时它将针脚3和7上的伺服器向前推进以攻击,然后返回其静止位置。未来的改进将包括接近传感器

步骤14:评论树和管道攀爬(双轴蛇)

《我想要研究的其中一个动作是爬树算法,它包括一个像烟圈一样的螺旋状螺旋滚动。不幸的是,我的2D蛇不够长,不能缠绕在树上。现在,我将为您带来卡内基梅隆大学的视频,以获得灵感。如果您想尝试自己动手,我会指导您阅读参考部分中的一些链接,以了解数学。

第15步:未来发展

以下是我想要做的改进列表,但是阅读这篇Instructable可能会鼓励你自己动手去打败我!如果您使用这些功能构建自己的蛇我很想知道!

车载电池,摆脱系绳!

更多伺服系统,更长的蛇形长度,但更紧凑的设计

移除松散的电线,而在段之间有针脚接触

接近传感器/和/或相机

嘴巴/舌头/尖牙/眼睛/嘶嘶声

自主运动

爬树能力

隧道穿越能力

遥控操作

将威廉希尔官方网站 应用到机器人水下鳗鱼

也许最重要的是:重新设计3D打印片段,使片段可以轻松旋转90度让你在1D蛇和2D蛇之间快速切换而不需要打印全新的蛇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器人
    +关注

    关注

    211

    文章

    28418

    浏览量

    207100
收藏 人收藏

    评论

    相关推荐

    【「具身智能机器人系统」阅读体验】+初品的体验

    《具身智能机器人系统》 一书由甘一鸣、俞波、万梓燊、刘少山老师共同编写,其封面如图1所示。 本书共由5部分组成,其结构和内容如图2所示。 该书可作为高校和科研机构的教材,为学生和研究人员提供系统
    发表于 12-20 19:17

    《具身智能机器人系统》第1-6章阅读心得之具身智能机器人系统背景知识与基础模块

    要给AI这个聪明的“头脑”装上一副“身体”。这个“身体”可以是一部手机,可以是一台自动驾驶汽车。而人形机器人则是集各类核心尖端威廉希尔官方网站 于一体的载体,是具身智能的代表产品。与传统的软件智能体不同,具身智能
    发表于 12-19 22:26

    鸿蒙机器人与鸿蒙开发板联动演示

    鸿蒙机器人与鸿蒙开发板联动演示,机器人的角色为迎宾机器人,开发板负责人宾客出现监听
    发表于 12-02 14:55

    医疗机器人有哪些_医疗机器人有哪些应用

    医疗机器人是医用机器人工程的重要应用,结合了各个学科最新研究和发展的成果,并广泛应用于医学诊疗、康复等医学领域。医疗机器人的类型多种多样,以下是主要的一些类型:
    的头像 发表于 10-21 15:16 791次阅读

    机器人基本运动

    机器人基本运动
    发表于 09-19 12:57 0次下载

    开源项目!用ESP32做一个可爱的无用机器人

    简介 作者在完成硕士论文答辩后,利用空闲时间制作了一个他一直想做的机器人——可爱无用机器人。 无用机器人原理是一个连接到开关的电机,通过逻辑门控制。当开关被推到“开”时,
    发表于 09-03 09:34

    开源项目!用ESP32做一个可爱的无用机器人

    简介 作者在完成硕士论文答辩后,利用空闲时间制作了一个他一直想做的机器人——可爱无用机器人。 无用机器人原理是一个连接到开关的电机,通过逻辑门控制。当开关被推到“开”时,
    发表于 08-30 14:50

    在用机器人与未来机器人并行推进的权重关系

    在用机器人与未来机器人并行推进的权重关系
    的头像 发表于 08-01 08:14 495次阅读
    在用<b class='flag-5'>机器人</b>与未来<b class='flag-5'>机器人</b>并行推进的权重关系

    柔性机器人与刚性机器人区别与联系

    柔性机器人和刚性机器人在结构、功能、应用场景等方面存在显著的区别,但也有一些联系。以下是它们的主要区别与联系: 区别 1.结构材料 柔性机器人:由柔性材料(如硅胶、弹性体、智能材料等)制成,能够弯曲
    的头像 发表于 07-21 15:37 617次阅读
    柔性<b class='flag-5'>机器人</b>与刚性<b class='flag-5'>机器人</b>区别与联系

    ROS让机器人开发更便捷,基于RK3568J+Debian系统发布!

    本帖最后由 Tronlong创龙科技 于 2024-7-19 17:18 编辑 ROS系统是什么 ROS(Robot Operating System)是一个适用于机器人的开源的元操作系统。它
    发表于 07-09 11:38

    Al大模型机器人

    金航标kinghelm萨科微slkor总经理宋仕强介绍说,萨科微Al大模型机器人有哪些的优势?萨科微AI大模型机器人由清华大学毕业的天才少年N博士和王博士团队开发,与同行相比具有许多优势:语言
    发表于 07-05 08:52

    基于FPGA EtherCAT的六自由度机器人视觉伺服控制设计

    概述 中国制造 2025 是中国政府实施制造强国战略的第一个十年行动纲领,是全面提升中国制造业发展质量和水平的重大战略部署,其中明确指出了围绕工业机器人创新威廉希尔官方网站 的重要地位。目前工业机器人
    发表于 05-29 16:17

    其利天下威廉希尔官方网站 ·搭载无刷电机的扫地机器人的前景如何?

    随着懒人经济的崛起,智能家居设备的需求呈现出显著的增长态势。作为智能家居领域的一员,扫地机器人因其方便、实用的特性而备受消费者青睐。特别是在无刷电机威廉希尔官方网站 的加持下,扫地机器人不仅提升了清洁效率,还优化
    发表于 05-05 15:03

    蛇形机器人:应急情况下人机合作的利器

    蛇形机器人受到蛇类灵活行动能力的启发,被广泛用于探索地震区域、进行石油和天然气行业的检查、消防行动以及搜救活动。
    的头像 发表于 03-01 16:13 859次阅读

    「喜报」迈步机器人荣获机器人应用典型案例奖

    日前,在中国科学院深圳先进威廉希尔官方网站 研究院的指导下,由深圳市机器人协会、《机器人与智能系统》杂志组织的第八届深圳机器人年度评选揭晓榜单。迈步机器人凭借着基于柔性驱动器的外骨骼
    的头像 发表于 02-01 17:10 1072次阅读
    「喜报」迈步<b class='flag-5'>机器人</b>荣获<b class='flag-5'>机器人</b>应用典型案例奖