太阳成城网址

数据加载中....
您的位置:电子电路网 >>电路图 >>控制电路 >>自动控制
厉害了,跟着老司机一起设计远程自动导航无人船 评论(0) 收藏(0
所属分类:控制电路 自动控制
浏览:1474次
顶 [0人]
0%
踩 [0人]
0%
登陆即可参与评分,获得积分奖励! [评分一次获1分,每天最多得5分]
  • 详细说明

远程自动导航无人船的设计

一、无人船平台的搭建
       由于现在对水域环保的重视以及对渔业的科学养殖,能够有效的检测水的质量就是一件非常有必要的事情。目前,对于水中垃圾的打捞、采集水样和测水温等工作基本都是采用人力来解决,这样就消耗的大量的人力和物力,而且效率很低。基于以上的需求,我们急需开发一套无人船设备,能够有效的帮助解决这些问题。
       为了解决以上的问题,我们需要无人船具有自主导航和手动控制两种控制方式。手动控制模式下,可以设置无人船的速度、方向等。自主导航模式下可以通过在地图上点击一个目标点,让船自动的移动到目标点。另外,我们需要给无人船设置回航点,让无人船能够最终返回到回航点。从无人船的地面站上,我们可以实时的查看到船的运动信息。
       基于以上的需求我们采用了以下器材来搭建船的硬件平台。首先我们采用了一个1050mm×280mm×250mm船模,采用两个直流电机,通过差速的方式来控制船的方向,改变PWM的值即可改变船的速度。但是由于在水里的船并没有在陆地上的车那么简单,受到波浪或者加速度改变的时候,船的姿态将会发生改变。所以我们利用惯性导航模块(MPU6050+HMC5883)和GPS模块,采用互补滤波和卡尔曼滤波来获得船的状态信息,然后将船的状态信息返回到地面站。采用qt开发了地面站程序,使船能够和上位机实时的进行数据交互。另外,调用百度地图API,能够实时的看到船的位置,并且设施目标点,让船自动移动到目标位置。电源模块包括12V锂电池、稳压模块1(输出7.2V,为电机供能)、稳压模块2(输出5V,为惯导模块、GPS模块等供能)。为了能够提高船的使用半径,我们采用了数传模块来让船和地面站进行信息交互,传输距离大约2000米。利用IntoRobot开发板的在线编程功能,可以很方便的编写下位机程序,另外IntoRobot开发板的资源比较丰富,极大的缩短了我们的开发周期。

二、无人船的制作
       搭建好了无人船的硬件平台之后,整个无人船的软件开发分两大部分,首先就是下位机部分的程序设计,最后就是上位机的程序设计。
       由于我们船的核心控制板采用的是IntoRobot的开发板,利用在线编译的功能来开发下位机程序。首先将GPS模块和数传模块分别和IntoRobot板子的串口连接,编写程序先接收到GPS数据和串口的数据。然后将GPS数据中有用的部分提取出来,这里我们提取的是GPRMC的这组数据。提取其中的经纬度信息、速度信息和方向信息等,然后发送给上位机。利用IIC将MPU6050模块和HMC5883模块连接到控制板上,得到相应的加速度信息、角速度信息和磁场信息,然后发送到上位机上。最后在上位机上,利用互补滤波和卡尔曼滤波获取船的姿态信息和运动状态信息,将PWM值发送给无人船。
      采用QT开发了船的上位机软件。主要包括了通信模块、运动模式模块、运动信息模块、运动控制模块和系统控制部分。具体见图1。
在地图上我们可以看到船的当前位置信息,通过点击地图上的位置,即可设置船的目标位置。通过船当前的状态信息、目标位置信息以及船的上一时刻的位置信息,我们就可以利用三点法,通过调节PID控制参数来控制船移动到目标位置。
       点击设置回航点的时候,船会将当前的经纬度发送到地面站,这时船可以随意运动,在运动完之后,如果想让船回到之前设置的回航点,点击返回回航点按钮即可。
       在手动控制模式下,我们可以点击相应的按钮,控制船的运动方向。另外可以输入目标速度,然后点击相应的按钮,即可设置船的运行速度。

三、无人船的使用说明

       地面站给出了绝大部分的提示,使用的时候根据提示进行操作。
       首先,给船上电,船有两个上电开关,一个在电池上,另一个在船上,在使用电池(充电和放电)的时候需要打开电池上的开关。然后按下船上左后方的开关给船整体供电。之后我们就可以用上位机进行操作了。无人船的地面站如下图:

图1 无人船地面站主界面

从上图可以看到,无人船地面站主要包括以上六部分,1是通信部分,2是无人船控制方式部分,3是无人船和地面站通信情况,4是无人船运行状态部分,5是无人船对无人船运动控制部分,6是地面站的控制。
       首先安装驱动,插入上位机的通信模块,然后选择对应的端口,然后打开串口,这样无人船和地面站就可以通信了,接着我们选择控制模式(远程控制),然后开启系统,这样我们就可以在4部分看到船当前的经纬度,电机地图按钮,就可以看到船在地图上的位置标记,然后可以点击左转、右转、直线前进、停止和发送速度按钮来相应的调节船的运动。无人船的地面站地图部分如下图所示:


   图2 无人船地面站地图界面
   然后我们点击自动导航,再在地图上任意点击一点,电机发送目标地点,无人船即进入自动导航运动,在这个过程中,点击获取距离,可以看到无人船距离目标点的距离信息。
       当无人船运动到某一个位置,你想设置这个位置为无人船的返航点,你可以点击设置回航点按钮,然后随意控制无人船运动,或者是自动导航运动,当你想让无人船返航刚设置的回航点的时候,你先选择自动导航模式,然后点击返回启航点按钮即可。
       编写地面站软件的时候,我们已经尽可能的考虑各种因素和逻辑,按照软件的提示操作即可,如果有什么问题可以随时与我们联系。
       注意事项:
1.    无人船的地图是在线加载的,所以如果想要使用无人船的地图信息,需要电脑连接互联网。由于网络等问题,有时候地图加载不出来,关闭重新加载即可。
2.    在一些特殊情况下,无线信号通信不畅,控制信息可能不能被接收到,这时候再发送一次即可。


四、展望
       使用数传模块虽然让无人船获得了比较大的涌动范围,但是,距离还是有限。基于以上问题,我们接下来拟采用以下的方式。
       由于无人船的主控制板可以采用云控制的方式。所以只要在无人船上放一个4G模块,建立wifi热点。让IntoRobot板子连接到相应的wifi热点上。这样就可以采用云平台实现无距离限制的控制无人船。


1.jpg [ 39.8 KB ] [ 文章插图 ] [ 下载次数:5 ]
2.jpg [ 540.7 KB ] [ 文章插图 ] [ 下载次数:2 ]

如无法正常下载,请点击这里报告问题,我们将在下一工作日内为您解决。

  • 发表评论
关闭
请您在通行证中登陆后再下载!
关闭

您当前的用户还没有激活


无法下载相关附件。


请查看您的注册邮箱获取激活信息或


单击此处


重新发送激活信息!


关闭

下载该附件需要积分

您的积分为 ,不足以支付!


您可以通过以下途径获取积分


1.上传文档可得5积分奖励


2.登陆可得2积分奖励,最多可得2分每天


3.评价文档可得1积分奖励,顶、踩,最多可得5分每天


查看更多积分获取的详细规则>>