一种基于深度强化学习的扫地机器人避障方法
未命名
07-22
阅读:166
评论:0
1.本发明属于扫地机器人避障领域,具体涉及一种基于深度强化学习的扫地机器人避障方法。
背景技术:
2.扫地机器人避障是扫地机器人工作的一个重要环节,现有的大多扫地机器人大多是使用slam技术对静态环境进行地图构建和自我定位而进行路径规划。其基于已知的环境地图,包含有大量的参数,对地图构建的精度要求很高,一旦扫地机器人所处的环境发生改变则需要大量的计算资源,手动调整路径规划,无法实现自适应避障。然而实际中扫地机器人需要在未知的、复杂的、动态的环境中对障碍物进行实时避障。这个时候就无法构建扫地机器人所处未知环境的地图,也就无法进行扫地机器人的导航,因此,很有必要提出一种扫地机器人具备一定的自主学习能力,能够与未知环境进行交互,并且能够能够自适应环境,能够安全躲避障碍物到达目的地的决策方法。而本发明是一种基于深度强化学习的扫地机器人自主避障方法。本发明利用深度强化学习的方法,不需要建立全局环境地图,和自我定位,直接使用环境图像作为输入信号来学习策略,实现端到端的避障运动;而且避障的过程安全、高效、节能。
技术实现要素:
3.发明目的:本发明提供一种基于深度强化学习的扫地机器人避障方法,无需要建立全局环境地图和自我定位,直接使用环境图像作为输入信号来学习策略,实现端到端的避障运动,且避障的过程安全、高效、节能。
4.技术方案:本发明所述的一种基于深度强化学习的扫地机器人避障方法,包括以下步骤:
5.(1)将扫地机器人的避障过程抽象为求解马尔科夫决策过程问题;
6.(2)设定扫地机器人的状态空间,包括传感器的输入的信息状态和扫地机器人的运动状态;
7.(3)设定扫地机器人的驱动动作空间,将驱动动作定义为线速度控制和角速度控制的的离散形式;
8.(4)在d3qn的基础上构建基于奖励分解的深度强化学习避障网络,以深度图像作为输入,改进q网络,将单一的奖励函数分解为多个奖励相关性低的函数,分别学习对应的值函数;
9.(5)对构建的基于奖励分解的深度强化学习避障网络进行循环迭代训练,获得最优的避障网络,实现扫地机器人避障。
10.进一步地,步骤(1)所述的马尔科夫决策过程问题使用一个五元组{s,a,p,r,γ}来描述;其中:
11.s:系统状态的有限集合,对于s
t
∈s,表示在t时刻环境状态;
12.a:扫地机器人可执行动作的有限集合,对于a
t
∈a,表示t时刻扫地机器人的动作;
13.p:状态转移概率分布,表示从某个状态s
t
选择动作a进入下一个状态s
t+1
的概率;
14.r:回报函数s
×a→
r表示从某个状态s
t
选择动作a进入下一个状态s
t+1
获得的奖励期望;
15.γ:折扣因子,γ∈[0,1],控制当前奖励和未来奖励的重要程度。
[0016]
进一步地,步骤(3)所述驱动动作空间为a=[v
l
,va],v
l
为到达目标的线速度,va到达目标的角速度;其中,v
l
∈[-v
max_l
,v
max_l
],v
max_l
为最大目标线速度,v
max_l
为负表示扫地机机器人向后移动,v
max_l
为正表示扫地机机器人向前移动;va∈[-v
max_a
,v
max_a
],v
max_a
为最大目标角速度,v
max_a
为负表示扫地机机器人向顺时针转动,v
max_a
为正表示扫地机机器人向逆时针转动。
[0017]
进一步地,步骤(3)所述驱动动作分为匀速直行、加速前进、减速前进、逆时针转动、顺时针转动。
[0018]
进一步地,步骤(3)所述的驱动动作分为3个线速度和5个角速度;组合后的动作空间如下式子:
[0019][0020]
其中,i为扫地机器人算法输出动作的序号,v1为扫地机器人的线速度,va为角速度。
[0021]
进一步地,步骤(4)所述深度图像为连续的4帧深度图像。
[0022]
进一步地,步骤(4)所述改进q网络实现过程如下:
[0023]
将q网络进行拆分,得到两个部分函数,一个部分是仅依赖状态而与动作无关的状态值函数v(s
t
,θ,β),输出一个标量表示对某一个状态的评估,观察对状态价值影响的特征;另一部分是与状态和动作都相关的优势函数a(s
t
,a
t
,θ,α),输出一个矢量,矢量的长度和动作空间大小相同;优势函数子网络和值函数子网络输入相同,网络卷积层的参数为θ,两个部分的全连接层参数为β和α,dueling dqn的网络输出是这两个函数输出的线性组合:
[0024]
q(s
t
,a
t
,θ,α,β)=v(s
t
,θ,β)+a(s
t
,a
t
,θ,α)
[0025]
强制优势函数的估计量在选定的动作具有零优势,让网络的最后一个模块实现向前映射,得到下式子:
[0026][0027]
用平均值代替最大化操作,对优势函数部分做中心化处理,得下式:
[0028][0029]
其中,通过减去优势函数的平均值得到,提高了算法的稳定度与,消除了动作对价值的影响,学习到有价值的状态。
[0030]
进一步地,步骤所述(4)将单一的奖励函数分解为多个奖励相关性低的函数实现过程如下:
[0031]
将复杂的避障整体任务简化为多个子任务来实现不同的任务目标,每个子任务只依赖于所有特征的一个子集,且都有对应的子奖励函数,在t时刻来自环境的总奖励等同于所有子任务的奖励之和,如下式:
[0032][0033]
每个子奖励函数训练相应的q网络分支,并将其组合得到最优的的策略;
[0034]
速度控制分支的奖励函数如下式:
[0035][0036]
其中,r用于调节奖励大小,v是扫地机器人的当前速度,v
max
是扫地机器人的最大速度,v
min
是扫地机器人的最小速度;
[0037]
方向控制分支的奖励函数如下式:
[0038][0039]
碰撞的奖励函数如下式:
[0040][0041]
其中,d为扫地机器人与周围障碍物的最小距离,d
min
与d
max
是这个距离的阈值;从速度和方向分支中学习碰撞奖励,保证扫地机器人安全高效运行;总奖励更新如下:
[0042][0043][0044]
每个q网络网络分支的奖励函数都可以学习其对应的独立q值函数,根据他们各自的权值组合q
rda
,来选择扫地机器人的动作,如下式:
[0045][0046]
对应的损失函数更新为:
[0047][0048]
训练的目标是使得损失函数最小。
[0049]
有益效果:与现有技术相比,本发明的有益效果:本发明采用深度强化学习方法通过奖励函数指导扫地机器人进行的自主避障到达目标位置的学习;将不易学习的多维避障策略简化分为多个子任务,即速度分支和方向分支;每个分支设立单独的奖励函数,每个子任务分支能够学习单独的值函数;使得能够学习更好的特定领域的经验知识,做出更恰当的学习避障决策,降低避障策略的学习难度;本发明可以在未知的静态的和动态的环境中避障。
附图说明
[0050]
图1是本发明的流程图;
[0051]
图2是基于深度强化学习的算法流程图。
具体实施方式
[0052]
以下将结合附图,对本发明的技术方案进行详细说明。
[0053]
本发明提出一种基于深度强化学习的扫地机器人避障方法,以扫地机器人上面的单目相机获取的原始rgb图形信息作为深度图像的输入,然后经过卷积神经网络对图像进行处理,采用深度强化学习的方法,通过奖励函数指导扫地机器人进行自主避障到达目标位置;其中深度学习算法是在d3qn算法的基础上将单一的奖励函数分解成多个相关性低的奖励函数,即将不易学习的多维避障策略分为多个子任务分支,每个分支设定避障奖惩函数,以此学习到单独的值函数,然后经过拟合器组合和处理,最终输出扫地机器人的动作。如图1所示,具体包括以下步骤:
[0054]
步骤1:将扫地机器人的避障过程抽象为求解马尔科夫决策过程(mdp)问题。
[0055]
扫地机器人避障的mdp使用一个五元组{s,a,p,r,γ}来描述。其中:
[0056]
s:系统状态的有限集合,对于st∈s,表示在t时刻环境状态。
[0057]
a:扫地机器人可执行动作的有限集合,对于a
t
∈a,表示t时刻扫地机器人的动作。
[0058]
p:状态转移概率分布,表示从某个状态s
t
选择动作a进入下一个状态s
t+1
的概率。
[0059]
r:回报函数s
×a→
r表示从某个状态s
t
选择动作a进入下一个状态s
t+1
获得的奖励期望。
[0060]
γ:折扣因子,γ∈[0,1],控制当前奖励和未来奖励的重要程度。
[0061]
步骤2:设定扫地机器人的状态空间,包括传感器的输入的信息状态和扫地机器人的运动状态。
[0062]
深度图像的每一像素代表扫地机器人到环境中各点的距离,通过图像信息可以得知障碍物表面的几何形状。将扫地机器人采集到的深度图像通过cv_bridge转化为open cv图像类型。原始图像分辨率为640*480,经过open cv调整深度图像为160*128,降低输入数据的维度,有利于卷积图像提取信息,且将相邻的4帧图像作为状态的输入。将4个时间步的深度图像存储为一个4维数组,大小为160*128*4。送入到多卷神经网络提取图像特征信息。
[0063]
采用3层卷积层和1个全连接层来处理高维的输入数据,其卷积方式使用二维卷积,如下公式:
[0064]
[0065]
其中,w(m,n)二维矩阵的卷积核,x(i+m,j+n)是二维输入矩阵,卷积层参数包括卷积核大小,步长和填充,深色图像具有rgb的3个彩色通道,每个滤波器将作为卷积核的一个集合,卷积核在二维平面上滑动位移来过滤图像的各个小区域,从而获得这些区域的特征值,且每个卷积核都对输入图像进行卷积运算。图像经过3层卷积层处理后得到一个512维的特征向量,然后进行全连接,最终输出向量[0,1]和[1,0],表示仿真实验中的正反馈和负反馈。
[0066]
步骤3:设定扫地机器人的动作空间,扫地机器人的驱动动作空间a=[v
l
,va],v
l
为到达目标的线速度,va到达目标的角速度。其中,v
l
∈[-v
max_l
,v
max_l
],v
max_l
为最大目标线速度,v
max_l
为负表示扫地机机器人向后移动,v
max_l
为正表示扫地机机器人向前移动;va∈[-v
max_a
,v
max_a
],v
max_a
为最大目标角速度,v
max_a
为负表示扫地机机器人向顺时针转动,v
max_a
为正表示扫地机机器人向逆时针转动。为减少动作空间维度,有利于算法收敛,将驱动动作定义为线速度控制和角速度控制的的离散形式,驱动动作具体分为匀速直行、加速前进、减速前进、逆时针转动、顺时针转动。
[0067]
驱动动作可将其细分为3个线速度和5个角速度。组合后的动作空间如下:
[0068][0069]
其中,i为扫地机器人算法输出动作的序号,v1为扫地机器人的线速度,va为角速度。在宽阔地区可以高速直行,在有障碍物的情况下低速前行,在遇到障碍物时能够根据障碍物的大小与距离选择不同的转向。避免出现突然大角度转向,提升运动的平稳性和可靠性。
[0070]
步骤4:在d3qn(基于决斗架构的深度双q网络dueling double deep qnetwork)的基础上构建基于奖励分解的深度强化学习避障网络。
[0071]
在d3qn的基础上设计一种基于奖励分解的深度强化学习避障算法,以扫地机器人的单目相机获取的深度图像作为输入,将单一的奖励函数分解为多个奖励相关性低的函数。分别学习对应的值函数。相应值函数能够更好通过低维表示逼近,实现深度图像到多维避障任务的逼近。连续4帧的深度图像作为输入,经过3层卷积层和1个全连接层的处理,再分别进入具有决斗架构的两个子任务分支,每个任务都具有对应q值函数经过拟合器组合和处理,最终可以输出每个动作对应的q值。
[0072]
(1)q网络设计。
[0073]
先在在线网络中计算最大q值对应的动作,然后将计算得到的动作值和下一状态
带入到目标网络中来计算q值,在线网络的目标网络使用得到的状态s
t+1
来计算t+1时刻的最有在折算因子γ和当前奖励r
t
下,得到t时刻的目标q值,最后给定当前状态s
t
,用在线网络最优减去目标值后的计算误差,然后反向传播更新权值,经过一段时间后再从在线网络中复制权值。其中q值计算公式如下式子所示:
[0074][0075]
式中,w是关于损失函数的梯度,w-表示目标网络的权值,它是滞后于几次迭代后的在线网络权值的旧副本。
[0076]
将q网络进行拆分,得到两个部分函数,一个部分是仅依赖状态而与动作无关的状态值函数v(s
t
,θ,β),输出一个标量表示对某一个状态的评估,观察对状态价值影响的特征;而另一部分是与状态和动作都相关的优势函数a(s
t
,a
t
,θ,α),输出一个矢量,矢量的长度和动作空间大小相同。用来表示某一特定的动作相较与动作的优势。观察各个动作优势的影响特征。优势函数子网络和值函数子网络输入相同,网络卷积层的参数为θ,两个部分的全连接层参数为β和α,dueling dqn的网络输出是这两个函数输出的线性组合:
[0077]
q(s
t
,a
t
,θ,α,β)=v(s
t
,θ,β)+a(s
t
,a
t
,θ,α)
[0078]
得到的值函数和优势函数并不唯一,因此可以强制优势函数的估计量在选定的动作具有零优势,让网络的最后一个模块实现向前映射,得到下式子:
[0079][0080]
用平均值代替最大化操作,上述优势函数部分做中心化处理,可得:
[0081][0082]
其中,通过减去优势函数的平均值得到,提高了算法的稳定度与,消除了动作对价值的影响,可以真正学习到有价值的状态。
[0083]
(2)奖励分解的设计。
[0084]
将复杂的避障整体任务简化为多个子任务来实现不同的任务目标,每个子任务只依赖于所有特征的一个子集,且都有对应的子奖励函数,在t时刻来自环境的总奖励等同于所有子任务的奖励之和,如下式:
[0085][0086]
利用d3qn算法模型,每个子奖励函数训练相应的q网络分支,并将其组合得到最优的的策略。为了促进q值函数的学习。
[0087]
为使扫地机器人能够在无碰撞情况下高速运动,提升效率,其速度控制分支的奖励函数如下:
[0088][0089]
其中,r用于调节奖励大小,v是扫地机器人的当前速度,v
max
是扫地机器人的最大
速度,v
min
是扫地机器人的最小速度。
[0090]
为了使得扫地机器人减少不必要的转向和浪费能耗,使得更快达到目标点,即让扫地机器人更多的执行直行的行动。其方向控制分支的奖励函数如下:
[0091][0092]
上式的两种奖励用于奖励扫地机器人正常行动,在发生碰撞的情况下,应该对机器人进行较大的惩罚,以保证扫地机器人安全运行,碰撞的奖励函数如下:
[0093][0094]
其中,d为扫地机器人与周围障碍物的最小距离,d
min
与d
max
是这个距离的阈值。为使得扫地机器人远离障碍物,其越靠近障碍物,其惩罚就越大,如相碰,则以最大的惩罚结束本回合,通过控制扫地机器人的速度和方向实现避障,因此可以从速度和方向分支中学习碰撞奖励。保证扫地机器人安全高效运行。最后,总奖励更新如下式子:
[0095][0096][0097]
每个q网络网络分支的奖励函数都可以学习其对应的独立q值函数,根据他们各自的权值组合q
rda
,来选择扫地机器人的动作。
[0098][0099]
对应的损失函数更新为:
[0100][0101]
训练的目标是使得上述的损失函数最小。两个分支是具有决斗架构的两个任务分支,求解出每个任务的q值,经过聚合器进行组合和处理,即可输出每个动作所对应的输出向量。
[0102]
(3)动作选择策略。
[0103]
使用ε-greedy方法作为动作选择策略,在前期,先使用随机模式,覆盖并尝试每一种动作,以更好地估算每一种动作的期望奖赏。经过一段时间训练后,减少随机性动作,而更多的选择奖赏值更大的动作。扫地机器人有ε的概率会选择随机的动作来探索环境,有1-ε的概率根据arg maxaq(s,a)选择q值的最大行为。
[0104]
步骤5:对构建的基于奖励分解的深度强化学习避障网络进行循环迭代训练,获得最优的避障网络,实现扫地机器人避障。
[0105]
如图2所示,系统首先初始化ros和gazebo仿真环境及算法的超参数,再重置仿真环境后获取初始深度图像。根据epsilon-greedy策略选择动作并控制扫地机器人执行相应
的动作并获取此时的深度图像值,同时获取bumper、传感器的数据及本回合的步数。判断是否发生碰撞或者与障碍物的距离是否小于阈值,如果bumper返回true或小于阈值距离,则判定扫地机器人碰撞障碍物,本回合结束,如何回合数大于500,同样结束本回合,本回合结束后重置整个仿真环境进入到下一个回合,继续下一步操作。根据执行的动作结果将状态、动作、奖励、下一状态序列存放回经验池中,如果总回合数大于observe,需要随机采样批量学习,并更新在线网络参数,如果回合数大于最大值则仿真结束。
[0106]
使用gazebo模拟器搭建仿真环境,在仿真训练中,扫地机器人通过自身搭载的传感器kinect,接收环境深度图像,数据在处理后送入基于奖励分解架构的深度强化学习避障算法中,算法最终输出扫地机器人下一步要执行的动作并发出控制信号,同时环境还会提供奖励信号和下一状态的环境信息,机器人位置等信息,以此循环迭代实现扫地机器人避障算法的训练,直至收敛。训练完成后,记录网络参数,并将其应用到实际的场景中,环境的状态量、动作空间、奖励函数、神经网络、训练方法均与仿真环境相同、通过训练获取实际场景数据,对网络进行修正。
[0107]
以上所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例,应当理解的是,此处所描述的具体实施方式仅用于说明与解释本发明,并不用于限制本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于发明保护的范围。
技术特征:
1.一种基于深度强化学习的扫地机器人避障方法,其特征在于,包括以下步骤:(1)将扫地机器人的避障过程抽象为求解马尔科夫决策过程问题;(2)设定扫地机器人的状态空间,包括传感器的输入的信息状态和扫地机器人的运动状态;(3)设定扫地机器人的驱动动作空间,将驱动动作定义为线速度控制和角速度控制的的离散形式;(4)在d3qn的基础上构建基于奖励分解的深度强化学习避障网络,以深度图像作为输入,改进q网络,将单一的奖励函数分解为多个奖励相关性低的函数,分别学习对应的值函数;(5)对构建的基于奖励分解的深度强化学习避障网络进行循环迭代训练,获得最优的避障网络,实现扫地机器人避障。2.根据权利要求1所述的一种基于深度强化学习的扫地机器人避障方法,其特征在于,步骤(1)所述的马尔科夫决策过程问题使用一个五元组{s,a,p,r,γ}来描述;其中:s:系统状态的有限集合,对于s
t
∈s,表示在t时刻环境状态;a:扫地机器人可执行动作的有限集合,对于a
t
∈a,表示t时刻扫地机器人的动作;p:状态转移概率分布,表示从某个状态s
t
选择动作a进入下一个状态s
t+1
的概率;r:回报函数s
×
a
→
r表示从某个状态s
t
选择动作a进入下一个状态s
t+1
获得的奖励期望;γ:折扣因子,γ∈[0,1],控制当前奖励和未来奖励的重要程度。3.根据权利要求1所述的一种基于深度强化学习的扫地机器人避障方法,其特征在于,步骤(3)所述驱动动作空间为a=[v
l
,v
a
],v
l
为到达目标的线速度,v
a
到达目标的角速度;其中,v
l
∈[-v
max_l
,v
max_l
],v
max_l
为最大目标线速度,v
max_l
为负表示扫地机机器人向后移动,v
max_l
为正表示扫地机机器人向前移动;v
a
∈[-v
max_a
,v
max_a
],v
max_a
为最大目标角速度,v
max_a
为负表示扫地机机器人向顺时针转动,v
max_a
为正表示扫地机机器人向逆时针转动。4.根据权利要求1所述的一种基于深度强化学习的扫地机器人避障方法,其特征在于,步骤(3)所述驱动动作分为匀速直行、加速前进、减速前进、逆时针转动、顺时针转动。5.根据权利要求1所述的一种基于深度强化学习的扫地机器人避障方法,其特征在于,步骤(3)所述的驱动动作分为3个线速度和5个角速度;组合后的动作空间如下式子:其中,i为扫地机器人算法输出动作的序号,v1为扫地机器人的线速度,v
a
为角速度。
6.根据权利要求1所述的一种基于深度强化学习的扫地机器人避障方法,其特征在于,步骤(4)所述深度图像为连续的4帧深度图像。7.根据权利要求1所述的一种基于深度强化学习的扫地机器人避障方法,其特征在于,步骤(4)所述改进q网络实现过程如下:将q网络进行拆分,得到两个部分函数,一个部分是仅依赖状态而与动作无关的状态值函数v(s
t
,θ,β),输出一个标量表示对某一个状态的评估,观察对状态价值影响的特征;另一部分是与状态和动作都相关的优势函数a(s
t
,a
t
,θ,α),输出一个矢量,矢量的长度和动作空间大小相同;优势函数子网络和值函数子网络输入相同,网络卷积层的参数为θ,两个部分的全连接层参数为β和α,dueling dqn的网络输出是这两个函数输出的线性组合:q(s
t
,a
t
,θ,α,β)=v(s
t
,θ,β)+a(s
t
,a
t
,θ,α)强制优势函数的估计量在选定的动作具有零优势,让网络的最后一个模块实现向前映射,得到下式子:用平均值代替最大化操作,对优势函数部分做中心化处理,得下式:其中,通过减去优势函数的平均值得到,提高了算法的稳定度与,消除了动作对价值的影响,学习到有价值的状态。8.根据权利要求1所述的一种基于深度强化学习的扫地机器人避障方法,其特征在于,步骤所述(4)将单一的奖励函数分解为多个奖励相关性低的函数实现过程如下:将复杂的避障整体任务简化为多个子任务来实现不同的任务目标,每个子任务只依赖于所有特征的一个子集,且都有对应的子奖励函数,在t时刻来自环境的总奖励等同于所有子任务的奖励之和,如下式:每个子奖励函数训练相应的q网络分支,并将其组合得到最优的的策略;速度控制分支的奖励函数如下式:其中,r用于调节奖励大小,v是扫地机器人的当前速度,v
max
是扫地机器人的最大速度,v
min
是扫地机器人的最小速度;方向控制分支的奖励函数如下式:碰撞的奖励函数如下式:
其中,d为扫地机器人与周围障碍物的最小距离,d
min
与d
max
是这个距离的阈值;从速度和方向分支中学习碰撞奖励,保证扫地机器人安全高效运行;总奖励更新如下:和方向分支中学习碰撞奖励,保证扫地机器人安全高效运行;总奖励更新如下:每个q网络网络分支的奖励函数都可以学习其对应的独立q值函数,根据他们各自的权值组合q
rda
,来选择扫地机器人的动作,如下式:对应的损失函数更新为:训练的目标是使得损失函数最小。
技术总结
本发明公布一种基于深度强化学习的扫地机器人避障方法,将扫地机器人的避障过程抽象为求解马尔科夫决策过程问题;设定扫地机器人的状态空间;设定扫地机器人的驱动动作空间,将驱动动作定义为线速度控制和角速度控制的的离散形式;在D3QN的基础上构建基于奖励分解的深度强化学习避障网络,以深度图像作为输入,改进Q网络,将单一的奖励函数分解为多个奖励相关性低的函数,分别学习对应的值函数;对构建的基于奖励分解的深度强化学习避障网络进行循环迭代训练,获得最优的避障网络。本发明不需要建立全局环境地图和自我定位,直接使用环境图像作为输入信号来学习策略,实现端到端的避障运动,且避障的过程安全、高效、节能。节能。节能。
技术研发人员:张永林 苏金龙 徐倩楠 缪睿
受保护的技术使用者:江苏科技大学
技术研发日:2023.04.19
技术公布日:2023/7/20
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
上一篇:一种智慧电力数据采集方法与流程 下一篇:一种3,5-二氯硝基苯的生产工艺的制作方法
