公开/公告号CN112180915A
专利类型发明专利
公开/公告日2021-01-05
原文格式PDF
申请/专利权人 哈尔滨工业大学(威海);威海天帆智能科技有限公司;
申请/专利号CN202010971876.6
申请日2020-09-16
分类号G05D1/02(20200101);
代理机构37260 威海恒誉润达专利代理事务所(普通合伙);
代理人王丽英
地址 264209 山东省威海市文化西路2号
入库时间 2023-06-19 09:26:02
技术领域
本发明涉及船舶控制技术领域,具体涉及基于ROS的双推力无人船运动控制系统及控制方法。
背景技术
无人船是一种具备自主航行或远程遥控功能以实现正常航行、操纵及作业的水面航行器,可通过搭载各种任务载荷执行指定任务,由于其具有操作安全、高效节能、成本低等优点,被广泛应用于水域自动化作业领域。无人船的运行模式主要有两种,一种为自主航行模式,另一种为远程遥控模式。其中,自主航行模式是指按照目标任务,在完全没有人工干预的情况下进行安全航行的一种航行模式,远程遥控模式是指在岸基上采用遥控器对平台装置和各种设备及系统进行远程操控的一种航行模式。
现有的无人船控制系统中,首先用户无法准确及时的获取到无人船的运行情况,而且不同厂家生产的无人船采用的数据传输协议与主控制单元采用的数据传输协议不一样,导致主控制单元之间数据无法进行有效传输,从而无法进行数据传输和共享,通信存在很大困难。
发明内容
本发明就是针对现有技术中存在的技术问题,提供一种基于ROS的双推力无人船运动控制系统及控制方法。
为解决上述技术问题,为此本发明提供基于ROS的双推力无人船运动控制系统,控制系统包括:搭载ROS的船上计算机、IMU、GPS传感器以及由推力设备组成的差速驱动单元;船上计算机通过USB接口连接有IMU、GPS传感器以及底层控制板,控制过程中由IMU和GPS传感器获取无人船的实时运行数据并传递给船上计算机,船上计算机根据运动控制算法产生控制力信号,并由底层控制板根据控制力信号产生实际的推力,而且船上计算机通过无线通信与岸上计算机相连接。
优选的,推力设备为一对螺旋桨。
本发明还提供一种基于ROS的双推力无人船运动控制方法,其包括:
建立双推力无人船三自由度运动方程;
设计无人船定向航行控制器,用于控制无人船航向角和航速;
设计无人船定点航行控制器,用于控制无人船的坐标位置;
设计无人船速度指令跟踪控制器。
优选的,控制过程包括:
订阅服务信息,获取无人船的控制目标;
订阅里程计消息,获取无人船的速度、位置以及姿态数据;
根据传感器信息计算控制力并发布给驱动节点。
优选的,控制方法采用的无人船运动方程中忽略了橫摇、纵摇以及垂荡三个自由度上的运动,运动方程表达式如下:
其中,
优选的,控制系统设有航速控制系统和航向控制系统,航速控制系统中控制器输出为船体受到的推力和,主回路反馈量为无人船航速,副回路反馈量为无人船行进方向上的加速度,控制器输出表达式如下:
T
其中,e
航向控制系统中控制器输出为船体受到的推力差,主回路反馈量为无人船航向角,副回路反馈量为无人船转向角速度,控制器输出表达式如下:
T
其中,e
控制器实现时,采用离散的位置式PID算法替代上述表达式,计算得到无人船在第k个采样周期时所需的推力值T
其中,T为采样周期。
优选的,无人船的航向角与航速的控制采用串级控制,主控制器选择比例积分控制算法,副控制器为比例控制算法。
优选的,在坐标位置的控制中,控制策略为保持无人船航向正对目标点,同时与目标点的距离趋向于0,表达式如下所示:
其中,无人船当前位置为(X,Y),设定的目标点为(X
其中,k
优选的,速度指令跟踪控制器包含非线性环节,用以抵消被控对象的非线性,保证无人船速度能够在一个指令发布周期后达到给定值,即无人船的实际速度滞后指令速度一个周期。
与现有技术相比,本发明具备以下有益效果:
本发明采用闭环控制保证了较高控制精度,在航向角及航速控制中,使用串级控制,通过多级反馈加快了控制作用,降低被控对象的时间常数,提升响应速度,改善了船舶控制响应缓慢的问题;同时有效抑制内回路扰动,降低风及海浪对控制效果的不利影响。在定点控制中,通过合理的控制策略解决了欠驱动船舶的控制难题。使用积分分离PI控制器,在保证稳态精度的同时提升了动态特性。在速度指令跟踪控制器的设计上,采用离散化的设计方式,解决了船舶数学模型中非线性及耦合对控制的不利影响,显著提升了无人船对速度指令的跟踪性能。
另外,ROS是一种分布式的软件框架,各个功能模块间相互独立,可以采用多种语言单独编写每个模块。这种语言弱相关的结构极大地简化了软件开发。同时ROS作为一个开源平台拥有良好的生态系统,开发者可以直接使用成熟的功能包构建机器人,极大地简化无人船控制系统搭建,也便于在不同无人船上移植。
附图说明
图1为本发明航速控制系统框图;
图2为本发明航向控制系统框图;
图3为本发明指令跟踪系统框图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以助于理解本发明的内容。本发明中所使用的术语如无特殊规定,均为行业内常规术语。
本发明提供一种基于ROS的双推力无人船运动控制系统及控制方法,控制系统包括:搭载ROS的船上计算机、IMU、GPS传感器以及由一对螺旋桨或其他推力设备组成的差速驱动单元。其中,IMU为惯性测量单元,是测量物体三轴姿态角(或角速率)以及加速度的装置。
本实施例中,船上计算机通过USB接口连接有IMU、GPS传感器以及底层控制板,控制过程中由IMU和GPS传感器获取无人船的实时运行数据并传递给船上计算机;船上计算机根据运动控制算法产生控制力信号,并由底层控制板根据控制力信号产生实际的推力。而且船上计算机通过无线通信与岸上计算机相连接,接收用户发布的控制目标同时发布无人船的状态数据。
本发明实施例中,无人船运动控制方法包括:
建立双推力无人船三自由度运动方程;
设计无人船定向航行控制器,用于控制无人船保持给定的航向角和航速;
设计无人船定点航行控制器,用于控制无人船保持期望的坐标位置;
设计无人船速度指令跟踪控制器;用于控制无人船跟踪上层平台周期性发布的速度指令。
无人船运动控制过程包括:
1)订阅服务信息,获取无人船的控制目标;
定义服务信息send.srv,该信息包括了无人船期望的航速、航向角、坐标位置以及航行模式(定向航行/定点航行/速度指令跟踪)。在控制任务开时前,首先由用户向控制器发布具有该信息格式的控制目标,控制器接收到控制目标后向用户反馈一条成功接收的状态信息,以确保控制目标正确无误地传递给控制器。
2)订阅里程计消息,获取无人船的速度、位置以及姿态数据;
在启动控制器前需要保证IMU和GPS传感器正常工作,能够以一定频率发布具有ROS消息格式的传感器数据到ROS的通信网络中。根据不同传感器的类型,运行其对应的ROS驱动包即可启动这些传感器,在仿真环境(gazebo)中只需添加传感器对应的插件即可。
使用开源的ROS状态估计功能包(robot_localization)生成无人船的里程计消息并发布至ROS通信网络;该功能包需要订阅来自IMU和GPS传感器的无人船运行数据,使用扩展卡尔曼滤波算法(EKF)进行数据融合。所生成的里程计消息中,包含了无人船是实时位置、速度以及姿态角。
3)根据传感器信息计算控制力并发布给驱动节点。
定义状态信息state.msg,该信息包括无人船运行中的实时速度、坐标、航向角、航向角偏差(与期望航向角的差值)以及距离偏差(与目标点的距离值)。控制器运行中需要按照一定频率发布具有这一格式的状态数据,以便于用户通过订阅与这一消息相关的话题来监控无人船的运行情况。
定义服务信息pause.srv,该信息仅包括一条布尔数值;当无人船异常运行时,由用户向控制器发布该消息以终止控制作用。
编写控制节点controller,该节点启动后需要接收用户发布的控制目标以及robot_localization产生的里程计消息。若控制目标中的航行模式设定为速度指令跟踪,则无人船还需接收以固定频率发布的具有geometry_msgs/Twist格式的速度指令。控制器根据无人船的运行数据,计算得到左右两个推力器所需的推力数值并发布给驱动节点。
编写控制节点的启动文件control.launch,在该文件中配置通信端口以及控制器参数以便于用户在不同无人船上移植这一控制器。
更进一步的,控制方法采用的无人船运动方程中忽略了橫摇、纵摇以及垂荡三个自由度上的运动,运动方程表达式如下所示:
其中,
更进一步的,无人船的航向角与航速的控制采用串级控制,主控制器选择比例积分控制算法,副控制器为比例控制算法。
参照图1、图2,控制系统设有航速控制系统和航向控制系统,图1为航速控制系统框图,航速控制系统中控制器输出为船体受到的推力和,主回路反馈量为无人船航速,副回路反馈量为无人船行进方向上的加速度,控制器输出表达式如下:
T
其中,e
图2为航向控制系统框图,航向控制系统中控制器输出为船体受到的推力差,主回路反馈量为无人船航向角,副回路反馈量为无人船转向角速度,控制器输出表达式如下:
T
其中,e
控制器实现时,采用离散的位置式PID算法替代上述表达式,可计算得到无人船在第k个采样周期时所需的推力值T
其中,T为采样周期。
更进一步的,在无人船坐标位置的控制中,控制策略为保持无人船航向正对目标点,同时与目标点的距离趋向于0,表达式如下所示:
其中,无人船当前位置为(X,Y),设定的目标点为(X
航向控制与上述一致,航距控制采用积分分离PI控制,控制器输出为推力和,表达式如下:
其中,k
更进一步的,无人船运动控制方法中所设置的速度指令跟踪控制器包含非线性环节,用以抵消被控对象的非线性,从而保证无人船速度能够在一个指令发布周期后达到给定值,即无人船的实际速度滞后指令速度一个周期。
图3为指令跟踪系统框图,控制系统每隔时间T接收一次速度指令,第k次接收到的指令为:
ν
该指令要求无人船航速为u
ν(k)=[u(k) r(k)]
保证无人船线加速度a(k)和角加速度α(k)在一个周期内满足:
根据无人船运动方程即可确定控制器在第k个周期内的输出量T
为减弱控制器对模型误差的敏感程度,引入一组调节系数:
通过调节[k
惟以上所述者,仅为本发明的具体实施例而已,当不能以此限定本发明实施的范围,故其等同组件的置换,或依本发明专利保护范围所作的等同变化与修改,皆应仍属本发明权利要求书涵盖之范畴。
机译: 具有弓形推力器和装置的双螺旋桨双舵船的推力控制方法
机译: 自主运动控制系统,行驶单元,无人驾驶飞机以及自主运动控制方法
机译: 无人船,无人船有捕鱼装置和无人船系统