黄工无刷电机学习
登录
直播中
凤毛麟角
8年用户
906经验值
私信
关注
[问答]
小白求助,求基于嵌入式处理器S3C2440为核心的多任务机器人控制系统
开启该帖子的消息推送
S3C2440
小白求助,求基于嵌入式处理器S3C2440为核心的多任务机器人控制系统
回帖
(1)
王萍
2021-10-21 13:57:02
使用select机制监控是否语音识别结果,在超出等待时间后,会退出等待并重新初始化语音模块LD3320,释放公共资源,这样也使得系统能够及时响应LD3320的MP3播放功能,避免了在长时间没有语音识别结果时,系统进入卡死状态。
2.5 航向测量
为了使移动机器人能够沿指定的方向行驶并能修正由外界干扰因素产生的航向偏差,系统采用陀螺仪航向测量模块MPU-6050,该模块将其测量的模拟量转换为可输出的数字量,并通过串口发送到S3C2440。系统通过read(fd_uartl,buf,10)函数读取相应串口,得到航向数据
并写入到共享内存区S中。
2.6 超声波测距
本系统采用渡越时间法,超声波测距模块在收到发射控制信号时,换能器将发出40 kHz的连续脉冲信号。接收器的输出高电平时间和距离成正比,同时触发处理器的中断,上升沿中断开启定时器,下降沿关闭定时器,利用处理器内部的定时器1测量出输出信号的高电平的持续时间△T,经过式(1)的计算,可得到检测距离S:
S=V×△T/2 (1)
式中,V为超声波的传播速度,常温下超声波在空气中的传播速度是340 m/s。程序中根据所编写的驱动程序,使用ioctl(fd_chao,SEN D_BEGIN)、ioctl(fd_chao,SEND_STOP)控制GPIO以实现超声波的发射和停止。系统中对某个方向连续测量5次,进行中值滤波并将滤波后数据传递到信息处理进程。
2.7 电机控制
移动平台中采用L298驱动直流减速电机,平台尚未安装速度反馈单元,简化了控制模式。程序通过ioctl()控制L298以实现电机的正反转以及停止操作。
在电机驱动程序中定义了相应GPIO的输入/输出方式:ioctl(fd,TURN_LEFT)中,fd为驱动程序的文件描述符;TURN_LEFT是命令掩码CMD,驱动程序根据命令掩码CMD对相应的GPIO赋值以控制L298的状态。
3 路径规划和避障算法
根据模糊逻辑法,移动平台能够在不确定环境中实现局部路径规划和避障。
3.1 输入输出变量的模糊化
在路径规划过程中,信息分析模块的输入量为移动平台的行驶方向信息、与障碍物之间的相对位移信息;输出量为移动平台的旋转角度和平动位移信息。
①定义移动平台与左侧障碍物的距离为DL、与右侧障碍物的距离为DR、前方障碍物的距离为DF。模糊子集定义为{S,M,B},分别表示小、中、大,相应的距离隶属度函数如图7所示。
②定义移动平台和目标点之间夹角为γ,模糊子集定义为{LB,LS,Z,RS,RB},分别表示左大、左小、零、右小和右大。相应的角度隶属度函数如图8所示。
③移动平台的旋转角度中的模糊子集定义为{TLB,TLS,TZ,TRS,TRB}。分别表示左转大、左转小、不旋转、右转小、右转大,相应的输出隶属度函数如图9所示。
3.2 建立模糊控制规则
在移动机器人远离障碍物或不存在障碍物的情况下,依据移动平台的行驶轨迹,可以先对行驶方向进行调整。当检测到障碍物接近移动平台时,移动平台应改变行驶轨迹,避免发生碰撞。移动平台的部分模糊控制规则如表1所列。
3.3 模糊推理和解模糊化
根据距离隶属度函数,将超声波测量得到的不同方位的距离数据转换为模糊逻辑状态,再查找模糊控制规则,查表得到相应的输出模糊量。
解模糊化是输出模糊量映射到动作行为的过程。模糊控制器对移动平台的动作进行了分解并编码,将复杂的动作分解为一系列简单动作的叠加,使得每一个输出模糊量对应一套动作。
例如在检测到前方有障碍物并确定左转时,可以将机器人动作分解为:后退(左转,即先后退,再左转。这样可以减小机器人触碰到前方障碍物的概率。
4 实验测试
使用menuconfig命令为嵌入式Linux系统内核配置添加相应驱动程序后,进行make编译生产zImage文件。启动移动机器人系统并进入BIOS模式,将配置好的内核通过Supervivi工具烧写到NAND Flash。在系统启动后,配置Linux目录中的/etc/init.d文件,使系统启动后,自动运行所设计的程序。
如果系统初始化正常,将听到由语音模块发出的提示声:“校准完成”。此时,操作人员可以下达“前进”、“后退”或“测距”等设计好的语音指令,机器人将按照操作人员的指令完成相应的动作,还可以通过语音模块播放出测量到的距离。
结语
系统利用了Linux系统支持多任务和可裁剪的特点,结合处理器丰富的接口资源,实现了多方位超声波测距、电机控制等功能,通过对多传感器信息的融合和分析,为模糊逻辑法进行路径规划提供了判断依据。
语音识别功能使得机器人和操作人员之间的人机交互变得更灵活方便。在此基础上,可以利用Linux操作系统强大的网络功能,为进一步研究服务机器人、机器人联网、机器人与机器人通信等提供了一种方案。
使用select机制监控是否语音识别结果,在超出等待时间后,会退出等待并重新初始化语音模块LD3320,释放公共资源,这样也使得系统能够及时响应LD3320的MP3播放功能,避免了在长时间没有语音识别结果时,系统进入卡死状态。
2.5 航向测量
为了使移动机器人能够沿指定的方向行驶并能修正由外界干扰因素产生的航向偏差,系统采用陀螺仪航向测量模块MPU-6050,该模块将其测量的模拟量转换为可输出的数字量,并通过串口发送到S3C2440。系统通过read(fd_uartl,buf,10)函数读取相应串口,得到航向数据
并写入到共享内存区S中。
2.6 超声波测距
本系统采用渡越时间法,超声波测距模块在收到发射控制信号时,换能器将发出40 kHz的连续脉冲信号。接收器的输出高电平时间和距离成正比,同时触发处理器的中断,上升沿中断开启定时器,下降沿关闭定时器,利用处理器内部的定时器1测量出输出信号的高电平的持续时间△T,经过式(1)的计算,可得到检测距离S:
S=V×△T/2 (1)
式中,V为超声波的传播速度,常温下超声波在空气中的传播速度是340 m/s。程序中根据所编写的驱动程序,使用ioctl(fd_chao,SEN D_BEGIN)、ioctl(fd_chao,SEND_STOP)控制GPIO以实现超声波的发射和停止。系统中对某个方向连续测量5次,进行中值滤波并将滤波后数据传递到信息处理进程。
2.7 电机控制
移动平台中采用L298驱动直流减速电机,平台尚未安装速度反馈单元,简化了控制模式。程序通过ioctl()控制L298以实现电机的正反转以及停止操作。
在电机驱动程序中定义了相应GPIO的输入/输出方式:ioctl(fd,TURN_LEFT)中,fd为驱动程序的文件描述符;TURN_LEFT是命令掩码CMD,驱动程序根据命令掩码CMD对相应的GPIO赋值以控制L298的状态。
3 路径规划和避障算法
根据模糊逻辑法,移动平台能够在不确定环境中实现局部路径规划和避障。
3.1 输入输出变量的模糊化
在路径规划过程中,信息分析模块的输入量为移动平台的行驶方向信息、与障碍物之间的相对位移信息;输出量为移动平台的旋转角度和平动位移信息。
①定义移动平台与左侧障碍物的距离为DL、与右侧障碍物的距离为DR、前方障碍物的距离为DF。模糊子集定义为{S,M,B},分别表示小、中、大,相应的距离隶属度函数如图7所示。
②定义移动平台和目标点之间夹角为γ,模糊子集定义为{LB,LS,Z,RS,RB},分别表示左大、左小、零、右小和右大。相应的角度隶属度函数如图8所示。
③移动平台的旋转角度中的模糊子集定义为{TLB,TLS,TZ,TRS,TRB}。分别表示左转大、左转小、不旋转、右转小、右转大,相应的输出隶属度函数如图9所示。
3.2 建立模糊控制规则
在移动机器人远离障碍物或不存在障碍物的情况下,依据移动平台的行驶轨迹,可以先对行驶方向进行调整。当检测到障碍物接近移动平台时,移动平台应改变行驶轨迹,避免发生碰撞。移动平台的部分模糊控制规则如表1所列。
3.3 模糊推理和解模糊化
根据距离隶属度函数,将超声波测量得到的不同方位的距离数据转换为模糊逻辑状态,再查找模糊控制规则,查表得到相应的输出模糊量。
解模糊化是输出模糊量映射到动作行为的过程。模糊控制器对移动平台的动作进行了分解并编码,将复杂的动作分解为一系列简单动作的叠加,使得每一个输出模糊量对应一套动作。
例如在检测到前方有障碍物并确定左转时,可以将机器人动作分解为:后退(左转,即先后退,再左转。这样可以减小机器人触碰到前方障碍物的概率。
4 实验测试
使用menuconfig命令为嵌入式Linux系统内核配置添加相应驱动程序后,进行make编译生产zImage文件。启动移动机器人系统并进入BIOS模式,将配置好的内核通过Supervivi工具烧写到NAND Flash。在系统启动后,配置Linux目录中的/etc/init.d文件,使系统启动后,自动运行所设计的程序。
如果系统初始化正常,将听到由语音模块发出的提示声:“校准完成”。此时,操作人员可以下达“前进”、“后退”或“测距”等设计好的语音指令,机器人将按照操作人员的指令完成相应的动作,还可以通过语音模块播放出测量到的距离。
结语
系统利用了Linux系统支持多任务和可裁剪的特点,结合处理器丰富的接口资源,实现了多方位超声波测距、电机控制等功能,通过对多传感器信息的融合和分析,为模糊逻辑法进行路径规划提供了判断依据。
语音识别功能使得机器人和操作人员之间的人机交互变得更灵活方便。在此基础上,可以利用Linux操作系统强大的网络功能,为进一步研究服务机器人、机器人联网、机器人与机器人通信等提供了一种方案。
举报
更多回帖
rotate(-90deg);
回复
相关问答
S3C2440
嵌入式
服务
机器人
控制系统
能实现什么功能?
2019-10-15
2180
如何利用ARM研究
嵌入式
服务
机器人
控制器
?
2019-07-30
2763
如何实现移动
机器人
的设计?
2020-11-23
2716
如何采用ARM+DSP实现
嵌入式
四轴运动
控制器
的设计?
2021-04-20
1498
基于RTX51的排爆
机器人
嵌入式
控制器
软硬件开发怎么样?
2021-06-07
1215
RIO
嵌入式
控制
平台怎么助力
机器人
应用?
2019-11-06
2487
什么是
机器人
控制系统
2021-10-11
2712
如何设计智能灭火
机器人
控制器
?
2019-07-31
3340
怎么实现基于
嵌入式
S3C2440
的船舶导航
系统
设计?
2021-05-21
926
嵌入式
机器人
控制系统
设计的组织架构是怎么样的?
2020-03-06
2745
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
英国威廉希尔公司网站
william hill官网 版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分