大数跨境
0
0

【信息科技案例】机器人也会社恐?利用算法模拟社恐行为

【信息科技案例】机器人也会社恐?利用算法模拟社恐行为 KittenBot小喵
2023-10-13
0
导读:“社恐”是近年来网络流行新词,如果把这种“人”具备的特性放到“机器人”的身上会产生什么效果呢?

  【信息科技案例分享】


   机器人也会社恐?

  利用算法模拟社恐行为


导语


 “社恐”是近年来网络流行新词,它是“社交恐惧”的缩写,又称“社交焦虑”。简单来说,患有“社恐”的人,处在社交的场合中会感到紧张不适。随着网络的普及,更多年轻人热衷于线上交流,对线下社交感到陌生,从而促使社会焦虑愈发普遍。

可如果把这种“人”具备的特性放到“机器人”的身上会产生什么效果呢?今天我们用未来板Lite和TOF模块搭建一个社恐机器人来看看效果。

材料准备


未来板 Lite*1

方糖-激光测距模块*1

ph2.0红色9g电机*2

ph2.0灰色9g舵机*2

积木若干

编程软件使用


Kittenblock1.89    

功能介绍


①TOF模块没有检测到人时机器人检测周围情况

②有人靠近时机器人会后退并做出社恐表情,社恐太多次会进入“社死”状态。

③如果社交距离合适,机器人会靠近你

前期准备


先导入6张128*160的图片到未来板Lite内部,分别表示机器人开机、社恐和靠近你时的表情。

然后是接线图,注意这里的电机和舵机都是2pin接口的,激光测距模块接在哪个I2C接口都一样。建议先往下看,拼完积木再进行接线。

积木搭建


1.底部组装

准备如下积木和材料:

用一个黑色摩擦销连接电机,注意电机的摆放方向。

由于电机的十字轴比较短,用四个六孔滑轮分别连接两个轮子增加接触距离。

使用乐高积木完成电机装饰,让电机与轮子的滑轮部分连接。


2.手部组装

准备如下积木和模块。

组装舵机和激光测距模块部分。

手部组装。


3.万向轮组装

准备如下积木。

组装连接舵机和万向轮的部分。

把这部分连接到之前做好的舵机上。

组装连接舵机和未来板Lite的部分,蓝色插梢将连接未来板Lite,这里需要注意最后一副图的细节。

连接万向轮。

完成与未来板Lite的连接,注意箭头所指。

完成后的效果如图。

程序编写


1.初始化

程序初始化时,显示对应的图片,并复位舵机连接的手部位置。由于两个舵机是对称安装,所以角度也是对称的,为了同步两个舵机的角度,其中一个舵机需要使用【映射】积木来调整位置。

由于轮子较宽,且手部积木与舵机可以分离旋转所以可以用此程序复位手部角度。

2.前进、后退

即使程序里配给电机的速度相同,但是每个红色9g电机所呈现的速度也是有可能不同的。


为了弥补这个误差,需要在程序里手动调节一下。(笔者这里两个电机的误差大概有0.2左右,每个人的误差不同,需要自己测一下)此外,由于电机也是对称安装,所以想要两个电机同向行驶就必须一个正数一个负数。这里先写出在检测距离合适时的前进程序,前进时会显示开心的图片且舵机会控制积木“摆手”。

后退的程序也类似,不过机器人是左右摇摆的方式进行后退,每次后退时只有一个轮子在转动。

3.距离判断

社恐机器人是利用激光测距模块来检测是否有人靠近的。如果有人靠的太近就会触发【后退】的程序;如果距离合适,则触发【前进】的程序。如果靠近的次数太多,则会触发【社死程序】。

4.社死状态与程序复位

如果社恐的次数=3,则电机停止,显示最高等级的社恐图片,直到按下M键时才可以让程序初始化。

5.主程序

在平常状态下,社恐机器人会原地左右转动,时刻观察是否有其他人靠近。转动的时间随系统时间而定,每次向一侧转动的时间为1.5s。开机时或触发距离判断程序时,第一次转向另一侧的时间为1.5s的一半,即0.75s,转到另一侧后才恢复为1.5s。

当检测到有人靠近时效果大概是这样的(部分展示):

程序图片,大小为128*160:

【注意事项】

①由于未来板Lite连接了两个电机和两个舵机,运行程序时需保持三格及以上的电量。

②电机和舵机的接口为ph2.0接口。

③注意不要让舵机缠绕到各类模块的线,以免舵机旋转时损坏线材。

功能演示


【声明】内容源于网络
0
0
KittenBot小喵
专注于从入门到精通的移动机器人开源学习平台
内容 560
粉丝 0
KittenBot小喵 专注于从入门到精通的移动机器人开源学习平台
总阅读199
粉丝0
内容560