完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
远程自动导航无人船的设计 一、无人船平台的搭建 由于现在对水域环保的重视以及对渔业的科学养殖,能够有效的检测水的质量就是一件非常有必要的事情。目前,对于水中垃圾的打捞、采集水样和测水温等工作基本都是采用人力来解决,这样就消耗的大量的人力和物力,而且效率很低。基于以上的需求,我们急需开发一套无人船设备,能够有效的帮助解决这些问题。 为了解决以上的问题,我们需要无人船具有自主导航和手动控制两种控制方式。手动控制模式下,可以设置无人船的速度、方向等。自主导航模式下可以通过在地图上点击一个目标点,让船自动的移动到目标点。另外,我们需要给无人船设置回航点,让无人船能够最终返回到回航点。从无人船的地面站上,我们可以实时的查看到船的运动信息。 基于以上的需求我们采用了以下器材来搭建船的硬件平台。首先我们采用了一个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热点上。这样就可以采用云平台实现无距离限制的控制无人船。 欢迎大家提出建议呦~ 转载自:http://bbs.intorobot.com/thread-967-1-1.html |
|
相关推荐
3 个讨论
|
|
1399 浏览 0 评论
411 浏览 0 评论
945 浏览 0 评论
开源项目!打造一款FPV头部追踪相机,让你仿佛置身遥控车之中!
1142 浏览 0 评论
1096 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 17:52 , Processed in 0.458211 second(s), Total 48, Slave 37 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号