一种舵机信息防丢失方法及装置
技术领域
本发明涉及机器人领域,尤其涉及一种舵机信息防丢失方法及装置。
背景技术
机器人取代人工逐渐成为一种趋势,作为应用于机器人上的舵机,为了便于连线,通常采用数字舵机方式,这种方式舵机内带MCU,能进行数据指令解析及运行电机控制算法,还能存储一些舵机关键信息,比如舵机的ID,零点漂移值等,这些信息通常被存储在MCU的FLASH区。在机器人各关节中,各个舵机相当于一个小型发电机,当机器人在未上电且有外力掰动机器人关节时,如果舵机主板没有对舵机所发的电进行适当处理的话,各关节舵机所发的电将直接注入舵机电源总线中,很有可能会使得某些舵机直接上电工作。而在实际情况下外力掰动机器人关节都是随机,没规律的,对应所产生的电压也是随意波动的,表现出极不稳定。某些舵机就是在这种极不稳定的电压下上电工作的,而实验证明大多数单片机在不稳定电压下对FLASH区进行的读取写入操作并不可靠,导致读取舵机信息时产生读取错误,这些信息会被不正确的频繁修改,导致舵机存储的关键信息丢失的情况时常发生,给样机品质带来很大隐患。
另在对舵机信息进行调试时,有时会被非法修改,导致舵机信息错乱,无法正常控制机器人。比如,一机器人有标识ID分别为1、2、3、4、5、6的6个舵机,如果其中标识ID为6的舵机被修改成了ID1,那么机器上将会有两个1号舵机,同时少了一个6号舵机,原本的机器人的控制程序将无法正常控制机器人。同时如果2号舵机的零点漂移值被修改了,那么在原来相同的机器人控制命令下,2号舵机所做出来的动作将发生一定角度的偏移,这种偏移可以使机器人的某些动作变形。
发明内容
为了克服现有技术的不足,本发明的目的在于提供一种舵机存储信息防丢失方法,其能解决机器人样机研发调试过程中舵机存储信息被不正确频繁修改导致存储的正确信息丢失的问题。
本发明的目的采用以下技术方案实现:
一种舵机信息防丢失方法,包括以下步骤:
读取预先存储的舵机信息;
判断读取的预先存储的舵机信息是否合法;
若合法,则将所述读取的预先存储的舵机信息作为当前运行需要的舵机信息;若不合法,则调用统一样板配置信息作为当前运行需要的舵机信息;
运行完毕,当前运行的舵机信息不保存,预先存储的舵机信息不做改变。
优选的,所述舵机信息包括舵机标识和零点漂移值。
优选的,所述判断读取的预先存储的舵机信息是否合法包括判断读取的舵机信息格式是否正确以及判断相关的数值是否在设定范围之内。
优选的,所述方法还包括:
若接收到舵机信息修改指令,则判断舵机信息修改指令中的指令标识是否与舵机标识一致;
若一致,则根据所述舵机信息修改指令修改舵机信息,并将修改后的舵机信息作为当前运行需要的舵机信息。
优选的,所述方法还包括:
将修改后的舵机信息更新至存储区。
本发明还提供了一种舵机信息防丢失装置,包括:
读取模块,用于读取预先存储的舵机信息;
第一判断模块,用于判断读取的预先存储的舵机信息是否合法;
设置模块,用于当读取的预先存储的舵机信息合法时,将所述读取的预先存储的舵机信息作为当前运行需要的舵机信息;
调用模块,用于当读取的预先存储的舵机信息不合法时,则调用统一样板配置信息作为当前运行需要的舵机信息;
运行完毕,当前运行的舵机信息不保存,预先存储的舵机信息不做改变。
优选的,所述舵机信息包括舵机标识和零点漂移值。
优选的,所述第一判断模块还具体用于判断读取的舵机信息格式是否正确以及判断相关的数值是否在设定范围之内。
优选的,所述装置还包括:
接收模块,用于接收输入的舵机修改指令;
第二判断模块,用于当接收到舵机信息修改指令时,判断舵机信息修改指令中的指令标识是否与舵机标识一致;
修改模块,用于当舵机信息修改指令中的指令标识与舵机标识一致时,根据所述舵机信息修改指令修改舵机信息,并将修改后的舵机信息作为当前运行需要的舵机信息。更新模块,用于将修改后的舵机信息更新至存储区。
本发明还提供了一种舵机信息防丢失装置,所述装置包括:
处理器,
以及用于存储所述处理器可执行指令的存储器;
所述处理器被配置用于:
读取预先存储的舵机信息;
判断读取的预先存储的舵机信息是否合法;
若合法,则将所述读取的预先存储的舵机信息作为当前运行需要的舵机信息;若不合法,则调用统一样板配置信息作为当前运行需要的舵机信息;
运行完毕,当前运行的舵机信息不保存,预先存储的舵机信息不做改变。
相比现有技术,本发明的有益效果在于:通过判断读取的预先存储的舵机信息是否合法,设置存储的舵机信息或调用统一样板配置信息作为当前运行的舵机信息,运行完毕,当前运行的舵机信息不保存,预先存储的舵机信息不做改变,避免了电源压不稳定下,读取错误导致的舵机信息被改。
附图说明
图1为本发明实施例中舵机信息防丢失方法流程示意图;
图2为本发明实施例中舵机信息防丢失装置结构示意图。
图3为本发明另一实施例中舵机信息防丢失装置结构示意图。
具体实施方式
下面,结合附图以及具体实施方式,对本发明做进一步描述:
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明中实施例一提供了一种舵机信息防丢失方法,解决上电电压不稳定读取操作错误舵机信息被错误修改以及执行修改指令被非法修改的问题;本发明实例二又提供了一种舵机信息防丢失装置,同样也是解决上电电压不稳定读取操作错误舵机信息被错误修改以及执行修改指令被非法修改的问题。以下从具体实施例详细介绍。
实施例一:
如图1所示,图1为本实施例中的舵机信息防丢失方法流程示意图。在图1中,舵机信息防丢失方法,包括以下步骤:
步骤001:读取预先存储的舵机信息。
研发样机组装完成之后,相对应的舵机信息也已经写入舵机MCU中进行存储。舵机上电后,就会在第一时间读取预先存储的舵机信息,舵机的很多操作,如命令的过滤,响应等都会用到这些信息,并以此信息作为一个重要的标准来决定舵机自身是否要响应所接收的命令,以及如何响应命令等。
步骤002:判断预先存储的舵机信息是否合法。
对读取的预先存储的舵机信息进行判断是否合法,具体体现在对比舵机信息在格式上和数值范围是否符合内部预设的标准。
步骤0031:若合法,则将读取的舵机信息作为当前运行需要的舵机信息;
步骤0032:若不合法,则调用统一样板配置信息作为当前运行需要的舵机信息。
对于读取的舵机信息是否合法,若合法,则进行步骤0031,即将读取的舵机信息作为当前运行需要的舵机信息,这里将合法舵机信息作为当前运行的舵机信息,运行完毕下电即失效,预先存储的舵机信息还是存储在MCU中的FLASH区;若不合法,则进行步骤0032,即调用统一样板配置信息作为当前运行需要的舵机信息,这里的统一样板配置信息为所有舵机信息的共同子集,即在所有舵机上都适用,为一组特殊的数据信息值,这里将统一样板配置信息作为当前运行的舵机信息,运行完毕下电即失效,预先存储的舵机信息还是存储在MCU中的FLASH区。避免了读取错误对预先存储的舵机信息进行修改。
样机上电运行之后,经常需要对样机进行调试,通过修改一些舵机信息进行参数优化,在此过程经常出现非法被修改。
进一步的,舵机信息防丢失方法还包括以下步骤:
步骤004:接收舵机信息修改指令。
步骤005:判断舵机信息修改指令中的指令标识与舵机标识是否一致。
舵机标识是由MCU的芯片进过一定的运算得到的,由于MCU芯片的ID具有唯一性,故舵机标识也具有唯一性。对接收的舵机信息修改指令进行判断,对比指令中包括的标识与已存在的舵机标识是否一致。
步骤006:若一致,则根据舵机信息修改指令修改舵机信息,并将修改后的舵机信息作为当前运行需要的舵机信息。
指令标识与舵机标识一致,则此次舵机运行以修改后的舵机信息为标准。当然,不一致,则不能进行修改,需重新输入修改指令。
步骤007:运行完毕,将修改好的舵机信息更新到预先存储区。
在调试过程中,不断进行舵机信息修改,试验,直到本次调试好,则当前舵机信息为调试好的信息,调试运行完毕之后,则将本次当前修改好的舵机信息对预先存储区的舵机信息进行更新保存,作为当前最佳舵机信息进行保存。
实施例二:
本发明实施例还提供了一种舵机信息防丢失装置,如图2所示,图2为本实施例中的舵机信息防丢失装置结构示意图。在图2中,舵机信息防丢失装置,包括:
读取模块100,读取预先存储的舵机信息;
第一判断模块200,判断读取模块读取的预先存储的舵机信息是否合法;
设置模块310,将读取的舵机信息设置为当前运行需要的舵机信息;
调用模块320,调用统一样板配置信息作为当前运行需要的舵机信息;
进一步的,舵机信息防丢失装置还可包括:
接收模块400,接收舵机信息修改指令;
第二判断模块500,判断舵机信息修改指令中的指令标识与舵机标识是否一致;
修改模块600,根据舵机信息修改指令修改舵机信息;
更新模块700,将修改好的舵机信息更新到预先存储区。
本实施例中的装置与前述实施例一中的方法是基于同一发明构思下的两个方面,在前面已经对方法实施过程作了详细的描述,所以本领域技术人员可根据前述描述清楚地了解本实施中的系统的结构组成,为了说明书的简洁,在此就不再赘述。
实施例三:
本发明实施例另又提供了一种舵机信息防丢失装置,如图3所示,图3为本实施例中的舵机信息防丢失装置结构示意图。在图3中,舵机信息防丢失装置,包括:
处理器900,
以及用于存储所述处理器可执行指令的存储器800;
所述处理器800被配置用于:
读取预先存储的舵机信息;
判断读取的预先存储的舵机信息是否合法;
若合法,则将所述读取的预先存储的舵机信息作为当前运行需要的舵机信息;若不合法,则调用统一样板配置信息作为当前运行需要的舵机信息。
进一步的,处理器还被配置用于:
判断舵机信息修改指令中的指令标识与舵机标识是否一致;
根据舵机信息修改指令修改舵机信息将修改好的舵机信息更新到存储器中。
相比现有技术,本发明的有益效果在于:通过判断读取的预先存储的舵机信息是否合法,设置存储的舵机信息或调用统一样板配置信息作为当前运行的舵机信息,运行完毕,当前运行的舵机信息不保存,预先存储的舵机信息不做改变,避免了电源压不稳定下,读取错误导致的舵机信息被改;以及通过判断接收的舵机信息修改指令中的标识码与舵机标识码是否一致,减少了被非法修改的可能性。
本实施例中的装置与前述实施例一中的方法是基于同一发明构思下的两个方面,在前面已经对方法实施过程作了详细的描述,所以本领域技术人员可根据前述描述清楚地了解本实施中的系统的结构组成,为了说明书的简洁,在此就不再赘述。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本发明时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块或单元可以是或者也可以不是物理上分开的,作为模块或单元示意的部件可以是或者也可以不是物理模块,既可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
对本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及形变,而所有的这些改变以及形变都应该属于本发明权利要求的保护范围之内。