- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种可重构多变魔方模块的研究与实现
摘 要
论文介绍的可重构多变魔方模块采用了GY-85传感器模块感知位置信息,步进电机为执行器,模块监控器通过IIC总线与多变魔方控制器形成一个模块化分布式控制系统。论文以4模块构建的多变魔方为例,介绍了可重构多变魔方模块的硬件结构、软件结构、通信协议和模块运动的同步控制方法。
【关键词】模块化机器人 GY-85传感器 运动控制
1 可重构机器人与多变魔方
可重构机器人(Reconfigurable Robot)是由功能简单而具有一定感知能力的模块机器人有机联接而成。其核心是将机器人分解为标准化、模块化的组件,研究这些模块化组件如何有机的结合,以达到机械系统的快速拆装、功能模块间的有效通讯、整体机器人系统的协同控制。
多变魔方可看作是一个简单的可重构机器人,它同时拥有自重构、自组装和群体机器人的特点。多变魔方由结构简单、功能单一、配置方便的机电模块连接而成,这些模块集传感器、执行器、通信接口等装置为一体,能够快速拆装、互换装配、互相通讯、协调控制。多变魔方机器人的每个模块都可以自主移动并与其他模块自组装成魔方结构,可以被配置成各种不同形态,实现变形。
下面介绍一种可重构多变魔方模块及其重构的实现方法。
2 多变魔方的硬件结构
2.1 多变魔方的机械结构
多变魔方模块的机械结构采用直角立体三角形如图 1所示,每个模块包含了一个步进电机、位置传感器和驱动电路。由4个模块可组装连接成一个简单的多变魔方(其中有1个模块与支架相连,1个模块没有步进电机),通过驱动各模块步进电机可实现的几个变形操作见图2。
2.2 多变魔方的电路结构
可重构多变魔方模块包含位置信息传感器(GY-85)、步进电机驱动电路。模块之间通过IIC总线连接,并连接到多变魔方控制器,形成一个简单的模块化分布式控制系统。每个模块的电路是一样的,只是作为IIC总线上的器件地址需要进行设置。多变魔方控制器(上位控制机)包含人机交互和通信接口 。
位置信息传感器采用GY-85模块,这是一款九轴自由度IMU传感器,集成了三轴陀螺仪(ITG3205)、三轴加速度(ADXL345)和三轴磁场(HMC5883L)传感器,三个器件由IIC总线连接,集成在一小块PCB上,能够同时测量重力方向、磁场方向和角度方向的变化。
GY-85模块中ITG3205、ADXL345和HMC5883L三个器件已有统一的访问地址,分别为0xD0、0xA6和0x3C。为使多个GY-85模块通过IIC总线相连,需要通过模块监控器将每个可重构模块重新封装成一个IIC器件,并由模块编号开关设置不同的IIC器件地址。
模块监控器采用C8051F320,负责读取GY-85模块中位置信息和驱动模块执行器。
可重构模块的执行器采用步进电机,驱动参数有3个:当前的位置、目标位置和步进速度。模块监控器写入和读取驱动参数,可改变和获取步进电机状态。
多变魔方控制器通过通信接口IIC与各模块连接,并通过人机交互设备(带触摸屏的LCD显示器)显示多变魔方的状态信息,输入多变魔方状态的控制信息。
3 多变魔方的软件结构
多变魔方的软件由两部分组成:基于32位ARM架构下的多变魔方控制器软件和基于兼容8位MC51架构下的可重构模块监控软件,其中模块监控软件及其数据结构是重要基础。
3.1 模块监控软件及其数据结构
模块监控软件包括GY-85位置信息读取、电机状态读取、电机驱动、IIC总线驱动等模块组成。其中模块状态的数据结构通过下面语句来定义。
typedef struct {
int AA_x,AA_y,AA_z; //三轴角加速度数据
int Acc_x,Acc_y,Acc_z; //三轴加速度数据
int Mag_x,Mag_y,Mag_z; //三轴磁场数据
}GY_85; // GY-85模块位置信息数据结构
typedef struct {
int Target; //电机目标位置
int Position; //电机当前位置
int Speed; //电机当前运动速度方向(分正负方向)
}Motor; //电机数据结构
每个模块可分别定义两个位置信息变量和两个电机信息变量:
GY_85 GG0,GG1;
Motor MM0,MM1;
其中GG0、MM0为当前状态,由定时中断程序刷新(刷新周期取400ms),GG1、MM1为同步状态,由控制器发出的同步命令将GG0、MM0复制过来,以实现数据的同步采集。控制器发出的电机命令设置MM0中参数,可实现电机运动控制;先设置MM1然后
文档评论(0)