怎样改进我的ROV?


#1

从论坛了解到,树莓派和飞控控制ROV不用自己写程序,调参即可,那我想使用摄像头并在上面加一些算法,那我应该从何处下手,程序这方面应该在哪里编写呢?如果需要下水的话就需要全部密封,树莓派可以通过ssh编程,那我后期如果还想加东西,这个可以拆开的吗?


#2

诶我自己还不能删帖了,仔细一想我提的问题好像不是问题,在看了帖子里面关于周先生的一些回答,对于怎样改进我的ROV,有了一定的了解,多逛逛这里的帖子还是有好多好处的。


#3

在此引用周先生的回答,若有冒犯的地方,请联系我本人我立即删除并表示歉意,一下是周先生在“扩展多个传感器”的回答

是的,在ardusub系统中,一般都通过电力载波的网络连接进行所有的通讯。
但是具体加哪一种传感器,数据如何处理发送和显示,要具体分析选择。

比如在QGC中显示扩展传感器的数据的方法:

背景:
Ardusub使用Mavlink通信协议。
Pymavlink是用python实现的Mavlink协议。

使用Pymavlink可以创建python脚本读取传感器数据并向Ardusub设备发送信息或者命令。Pymavlink目前更新到Python2. 如果生态发展足够成熟,最终会发展为rov通用软件平台,丰富传感器的驱动库,实现各种传感器的即插即用。目前对于任何传感器有两个数据处理的选择:树莓派和pix,根据传感器的数据类型选择通信方式比如声纳和摄像头直接通过网口或usb在树莓派处理,其他已经具有pix库的比如gps直接连接到pix。有些需要编写程序读取树莓派上的传感器,并将数据与Pixhawk通信,这样做更容易,但是如果需要Pixhawk中的数据来进行反馈控制,那么读取Pixhawk上的数据更有意义,要依据具体情况选择系统连接方法。

提示:
Ardusub有一套自动保护机制,用于保护设备工作时的安全性。所有的Mavlink协议设备至少需要以1Hz的恒定频率发送HEARTBEAT信息,如果没有收到HEARTBEAT信息,会产生FAILSAFE自动保护机制。如果设备通过RC_CHANNELS_RAW或MANUAL_CONTROL _ 消息控制运动,这些控制指令必须以HEARTBEAT相同的频率发送(或者HEARTBEAT停止一段时间),否则同样会触发FAILSAFE。

大概的思路
1.顺利读取扩展传感器的数据,编写运行在树莓派(简单一些)或者pix(困难一些)上的驱动,也可以用arduino可能有现成的库连接到树莓派。
2.把数据通过mavlink发送,数据连接到mavproxy,mavproxy已经在树莓派中运行,只需要通过 NAMED_VALUE_FLOAT 发送mavlink消息。
3.接收读取并显示到QGC对应的数据比如现在新添加的云台角度和其他的信息显示就是如此实现的。具体可以仔细看一下云台角度那一段的源码。其实按照原先的其他传感器显示的方法照搬就可以,只要熟悉ardusub代码这些就很好做。

在Ardusub的长期计划中,也有一些计划把扩展的传感器通过usb或者其他方式连接到树莓派,然后通过UDP把数据发送到控制电脑。在http://192.168.2.2:2771/ Routing页面中,允许创建端点,例如arduino的串口或者udp端口,可以把这些端点连接到一起,可以在不变写任何代码的情况下把串行设备连接到控制端电脑。

也就是说大概有三种方式,一种是连接到树莓派或者pix通过mavlink把数据发送到QGC地面站并显示,另一种是通过树莓派自行新增程序读取和发送数据,在地面站电脑对应ip显示(网页或者其他数据显示途径),还有可以在电力载波加交换机扩展网口传感器。具体连接方案要看传感器具体情况选择。

贴上网址:


#4

是的 后期对树莓派的编程也不用开仓取卡,可以通过网线或者电力载波远程登录。不过开仓问题也不大,拧螺丝麻烦一些。有具体问题欢迎随时提问。


#5

十分谢谢回复!!!