<?xml version="1.0" encoding="gbk"?> <rss version="2.0"><channel> <title>定阅帖子更新</title> <link>http://www.broadkey.com.cn/XML.ASP</link><description>TEAM Board - 科伟奇电子</description> <copyright>TEAM 2.0.5 Release</copyright><generator>TEAM Board by TEAM5.Cn Studio</generator> <ttl>30</ttl><item><link>http://www.broadkey.com.cn/Thread.asp?tid=276 </link><title>基于DSP仿人机器人关节控制器设计</title><author>live</author><pubDate>2009/12/4 14:59:39</pubDate><description><![CDATA[<strong>0 引 言</strong>
<p>　　<a style="color: blue; text-decoration: underline" title="仿人机器人" href="http://article.ednchina.com/word/261012.aspx">仿人机器人</a>具有可移动性，具有很多的自由度，包括双臂、颈部、腰部、双腿等，可以完成更复杂的任务，这些<a style="color: blue; text-decoration: underline" title="关节" href="http://article.ednchina.com/word/261013.aspx">关节</a>要连接在一起，进行统一的协调控制，就对控制系统的可靠性、实时性提出了更高的要求，以往采用的集中控制系统，控制功能高度集中。局部的故障就可能造成系统的整体失效，降低了系统的可靠性和稳定性，因此考虑采用分布式的控制系统来实现系统的控制功能。</p>
<p>　　考虑到机械臂控制系统控制算法的计算量以及多轴协调控制等问题，采用基于RS <a style="color: blue; text-decoration: underline" title="485总线" href="http://article.ednchina.com/word/261010.aspx">485总线</a>的分布式控制的体系结构，见图1所示。运动规划算法由主计算机来实现，同时主计算机还将通过RS 485总线与各关节控制器通信，负责各关节控制器的协调工作。每个关节控制器和一台电机、驱动器、检测反馈装置等构成一个位置伺服系统，负责机械臂某一个关节变量的具体控制任务。</p>
<p align="center"><img border="0" hspace="0" alt="基于RS 485总线的分布式控制的体系结构" src="http://pagesadmin.ednchina.com/images/article/bf67ac54-a6d1-4e88-bf2d-2a5463cffd54/1.jpg" width="455" height="262" /></p>
<p>　　<strong>1 仿人机器人分布式控制器的硬件设计</strong></p>
<p><strong>　　1．1 关节控制器硬件电路设计</strong></p>
<p>　　该设计选用TI公司的2000系列<a style="color: blue; text-decoration: underline" title="DSP" href="http://article.ednchina.com/word/261011.aspx">DSP</a>TMS320F240作为控制单元。其时钟频率可达20 MHz，具有高速的处理能力，片内资源丰富，特别是它特有的内置事件管理器模块，使其在电机控制领域具有非常广泛的应用。该芯片本身尺寸很小，需要外扩的资源不多，节省了电路板的空间。关节控制器硬件电路原理图框图如图2所示。</p>
<p align="center"><img border="0" hspace="0" alt="关节控制器硬件电路原理图框图" src="http://pagesadmin.ednchina.com/images/article/bf67ac54-a6d1-4e88-bf2d-2a5463cffd54/2.jpg" width="439" height="266" /></p>
<p>　　<strong>1．2 电机驱动器的接口电路</strong></p>
<p>　　驱动器的控制模式可以分为两种：速度控制模式和位置控制模式(通常用电位器作为电机的位置<nobr style="border-bottom: rgb(102,0,255) 1px dotted; background-color: transparent; color: #cb4bfc; cursor: pointer; text-decoration: underline" id="nobr77" jquery1259909889972="53">传感器</nobr>)。这里采用它的速度控制模式，输入的指令信号是0～10 V的<nobr style="border-bottom: rgb(102,0,255) 1px dotted; background-color: transparent; color: #cb4bfc; cursor: pointer; text-decoration: underline" id="nobr93" jquery1259909889972="54">模拟</nobr>量。因此需要用D／A转换电路，把DSP输出的数字量给定转变为模拟信号，电路图如图3所示。<nobr style="border-bottom: rgb(102,0,255) 1px dotted; background-color: transparent; color: #cb4bfc; cursor: pointer; text-decoration: underline" id="nobr67" jquery1259909889972="55">DAC</nobr>7621为12 b并行输入的D／A<nobr style="border-bottom: rgb(102,0,255) 1px dotted; background-color: transparent; color: #cb4bfc; cursor: pointer; text-decoration: underline" id="nobr180" jquery1259909889972="56">转换器</nobr>，它内置参考源，输出范围：0～4．095 V。它的12位输入接DSP数据总线中的D0到D11。它的片选输入管脚可以接DSP的I／O控制线／IS。为了得到0～10 V的模拟信号，还要利用LM358中的一片<nobr style="border-bottom: rgb(102,0,255) 1px dotted; background-color: transparent; color: #cb4bfc; cursor: pointer; text-decoration: underline" id="nobr61" jquery1259909889972="57">运算</nobr><nobr style="border-bottom: rgb(102,0,255) 1px dotted; background-color: transparent; color: #cb4bfc; cursor: pointer; text-decoration: underline" id="nobr74" jquery1259909889972="58">放大器</nobr>构成的同相比例放大电路，把0～4．095 V的信号放大2．5倍。</p>
<p align="center"><img border="0" hspace="0" alt="电路图" src="http://pagesadmin.ednchina.com/images/article/bf67ac54-a6d1-4e88-bf2d-2a5463cffd54/3.jpg" width="440" height="289" /></p>
<p>　　如果驱动和控制器不进行隔离，尖峰将破坏控制器电路中的器件，例如RAM。因此，设计了基于线形光耦HCNR201的隔离电路，如图4所示。</p>
<p align="center"><img border="0" hspace="0" alt="基于线形光耦HCNR201的隔离电路" src="http://pagesadmin.ednchina.com/images/article/bf67ac54-a6d1-4e88-bf2d-2a5463cffd54/4.jpg" width="413" height="202" /></p>
<p>　　线形光耦HCNR201只能起到隔离电流的关系，且输入电流和输出电流呈线性关系。U6B是图3芯片LM358中的另外一片运算放大器，它将输入0～10 V电压转换成20 mA以内的电流信号，输入线形光耦HC－NR201。HCNR201输出电流再经过一个由单电源轨到轨运放AD8519构成的电压跟随器转换成0～10 V电压信号，作为驱动器的模拟信号输入。显然，HCNR201两侧电路应采用不同的电源和地。LM358中的两片运算放大器采用控制器输入的12 V电源供电，而AD8519则采用驱动器输入端提供的10 V电压供电。</p>
<p>　<strong>　1．3 增量式编码器信号处理电路</strong></p>
<p>　　增量式编码器信号处理电路如图5所示。J8是MR编码器的信号输入接口，采用AM26C32把MR编码器输出三个通道的RS 422差分信号转换成TTL电平，得到A，B，Z三路信号。</p>
<p align="center"><img border="0" hspace="0" alt="增量式编码器信号处理电路" src="http://pagesadmin.ednchina.com/images/article/bf67ac54-a6d1-4e88-bf2d-2a5463cffd54/5.jpg" width="405" height="258" /></p>
<p>　　<strong>1．4 RS 485总线通信电路</strong></p>
<p>　　RS 485总线是一种通信总线，TMS320F240 DSP芯片本身不具备RS 485总线接口，采用两个485通信芯片MAX485可以的把TMS320F240的串口RXD和TXD的TTL电平转换为RS 485电平，TMS320F240DSP的RXD和TXD引脚分别连接到第一片485通信芯片RO和第2片485通信芯片DI的引脚。TMS320F240 DSP　的SPISIMO和SPISOMI连接到MAX485的使能引脚RE，用于控制TMS320F240 DSP芯片的数据发送口挂接到总线上或和总线分离，电路如图6所示。</p>
<p align="center"><img border="0" hspace="0" alt="电路图" src="http://pagesadmin.ednchina.com/images/article/bf67ac54-a6d1-4e88-bf2d-2a5463cffd54/6.jpg" width="317" height="251" /><strong>2 </strong><a style="color: blue; text-decoration: underline" title="仿人机器人" href="http://article.ednchina.com/word/261012.aspx"><strong>仿人机器人</strong></a><strong>控制器的软件设计</strong></p>
<p><strong>　　2．1 </strong><a style="color: blue; text-decoration: underline" title="关节" href="http://article.ednchina.com/word/261013.aspx"><strong>关节</strong></a><strong>控制器主程序</strong></p>
<p>　　主程序的流程见图7。</p>
<p align="center"><img border="0" hspace="0" alt="主程序的流程" src="http://pagesadmin.ednchina.com/images/article/bf67ac54-a6d1-4e88-bf2d-2a5463cffd54/7.jpg" width="348" height="568" /></p>
<p>　　寄存器初始化操作主要包括：设置CPU CLK为外部晶振的2倍频，即16 MHz；设置串口通信波特率为：38．4 Kb／s；设置定时器／计数器相关寄存器；设置QEP电路单元相关寄存器；设置中断控制寄存器等。</p>
<p>　　<strong>2．2 串口数据接收中断服务程序</strong></p>
<p>　　串口数据接收中断服务程序流程图见图8。在中断服务程序中，读取数据接收寄存器中的数据，存入数据接收区，而并不做任何进一步分析和处理。数据接收区是内存中暂时存放数据的区域，当存满一条完整指令信息后，由主程序分析和处理。</p>
<p align="center"><img border="0" hspace="0" alt="串口数据接收中断服务程序流程图" src="http://pagesadmin.ednchina.com/images/article/bf67ac54-a6d1-4e88-bf2d-2a5463cffd54/8.jpg" width="350" height="287" /></p>
<p>　　<strong>2．3 控制周期定时中断服务服务程序</strong></p>
<p>　　控制周期2 ms定时中断服务程序的流程见图9。定时器／计数器为位置环和速度环控制周期定时2 ms，每2 ms进入定时中断服务程序1次，读取位置反馈值和速度反馈值，进行积分分离PID运算，最后输出给D／A转换成<nobr style="border-bottom: rgb(102,0,255) 1px dotted; background-color: transparent; color: #cb4bfc; cursor: pointer; text-decoration: underline" id="nobr93" jquery1259909957105="42">模拟</nobr>量。</p>
<p>&nbsp;</p>
<p align="center"><img border="0" hspace="0" alt="控制周期2 ms定时中断服务程序的流程" src="http://pagesadmin.ednchina.com/images/article/bf67ac54-a6d1-4e88-bf2d-2a5463cffd54/9.jpg" width="378" height="423" /></p>
<p>　　每一个插补周期(50 ms)，主计算机向关节控制器发送1次运动规划后的目标位置。该目标位置是以增量编码器信号四倍频后的脉冲数为单位，以前一次的目标位置作为脉冲计数的零点。因此，关节控制器在读取新的目标位置后，也应该以前一次的目标位置作为新的增量码盘脉冲计数零点，测量实际的电机位置，与新的目标位置比较、运算。主计算机根据需要可以查询当前电机运行的实际位置，关节控制器返回的位置则是关节角的绝对位置，单位是0．1&deg;。</p>
<p>　　<strong>3 结 语</strong></p>
<p>　　仿人机器人机械臂分布式关节控制器研究与设计，对于提高仿人机器人总体性能与人机交互能力，具有重要科研价值与现实意义。机械臂分布式控制器的高度实时性、容错性、可靠性、扩充性，为仿人机器人系统提供了先进的网络体系结构与通信标准，实践表明应用前景极为广阔。</p>]]></description></item></channel></rss>