采用Matlab神经网络工具做数据拟合

Data Fitting using Neural Network in Matlab

Posted by Chao Zhang on October 25, 2022

1. 问题描述

同心管机器人(Concentric-Tube Robot, CTR)扭转柔性正运动学公式由一系列微分方程组成,在Matlab中求解速度较为缓慢,难以满足之后实时控制的需求;同时,其逆运动学模型基本依靠数值方法求解,没有显式的正运动学方程将为逆运动学模型求解带来困难。

为此,一个主流的思路是通过数据驱动,拟合CTR正运动学方程。一种方法是Pierre Dupont在2010年T-RO论文“Design and Control of Concentric-Tube Robots”所提到的,采用的截断傅里叶级数(Truncated Fourier series)来做正运动学拟合。另有一些工作直接采集实际CTR运动数据,采用神经网络拟合正运动学模型。

神经网络具有极强的非线性拟合能力,采用神经网络做CTR正运动学拟合是很自然的想法。

2. 采用Matlab神经网络工具拟合CTR正运动学模型

Matlab Deep Learnning Toolbox 提供多种神经网络app和function,可以方便地进行输入输出曲线拟合(Input-output and curve fitting)、模式识别和分类(Pattern recongition and classification)、聚类(Clustering)等。

2.1. 随机采样CTR输入和末端位姿关系数据

首先编程实现CTR扭转柔性正运动学模型,然后运行随机采样,获得足够的输入输出data。

运动学输入$q=[\theta_1 \quad \theta_2 \quad \theta_3 \quad l_{e1} \quad l_{e2} \quad l_{e3}]^{T}$;

CTR末端位姿$g(R p) = [p_x \quad p_y \quad p_z \quad quat_0 \quad quat_1 \quad quat_2 \quad quat_3]^{T}$

2.2. 运行Matlab神经网络工具

Matlab terminal 输入 >> nnstart

图1 nnstart

选择曲线拟合“nftool”,根据app guide推进。

1.Select Data

2.Validation and Test Data

3.Network Architecture

4.Train Network

5.Evaluate Network

6.Deploy Solution

可查看模型拟合表现,可将训练好的模型导出为Matlab Function,便于程序调用。

2.3. 模型拟合结果

模型误差表现

图2 Error histogram

模型回归表现

图3 Regression