基于ROS搭建简易软件框架实现ROV水下目标跟踪(一)--简述

      当前,水下领域比较小众,开源的资料比较少。Bluerov作为成熟的产品,结合其开源的优势,经历了多年的技术迭代,在市场上受到极大欢迎。刚接触水下领域时,希望能找到一个比较方便的实验平台,开源的Bluerov基本上算是唯一的选择。

      Bluerov本身的软件架构,Pixhawk(ardusub)—— Raspberry Pi 3B(不能升级)——QGroundControl,非常臃肿冗余。由于我并不熟悉嵌入式开发,所以对Bluerov进行开发感到非常棘手。当然也尝试了在ardusub的框架基础上引入ROS的框架,借助MAVROS作为ROS信息与MAVLINK之间的桥梁,但这样做给我的感觉是整个项目将变得更加臃肿冗余。同时,外接传感器需要额外的开发版,也意味着额外的水密舱;MAVLINK与ROS间协议有时MAVROS也无法协调等等诸多问题。再者,在开发过程中,遇到需要任意改变推进器布局,或者需要采用不同种类的推进器的情况时,我花了较长时间也没理出头绪。

      ROS在机器人领域得到非常广泛的应用,开源资源非常丰富,使得开发非常方便简洁。更进一步,ROS在机器人领域与人工智能领域大放异彩,这些都是Pixhawk无法比拟的。未来有DIY自己的水下平台以满足自身需求的想法与计划。鉴于这几年积累了些许的ROS开发经验,我希望能基于ROS搭建一个开源的软件框架,适用于ROV/AUV等水下平台。

      为了验证采用ROS搭建水下平台软件框架的可行性,开发了一个简易的demo,粗略地实现了手柄控制ROV运动以及ROV跟踪水下目标。由于只是验证性质,开发过程中我直接忽略了诸多问题,如定向,定深,处理视频传输的时延等等。从某种程度上来说,实验的基本实现目标。

      开发过程充分体现了ROS开源的强大之处,rov的基础控制采用的是俄亥俄州大学水下机器人队伍的开源项目(官网github);相机的驱动采用的是usb_cam(usb_cam - ROS Wiki)开发包;目标识别采用的是darknet_ros(GitHub - leggedrobotics/darknet_ros: YOLO ROS: Real-Time Object Detection for ROS)开发包,即yolov3在ros下的开发工具等等。开发过程只需要将许多成熟的工程项目结合在一起,非常高效。实验时借助ROS的工具包能在线调参,效率远高于Pixhawk这种调参需要烧录的嵌入式平台。

      Demo代码我已上传至github:GitHub - cabinx/cabin_auv_ws: A simple demo for rov/auv underwater object tracking based on ros

      软件框架简图如下:

                                                                                        视觉模块

                                                                                       基础运动模块

      后续我会抽空撰写一些文章解析各个比较关键的模块。

      目前这个demo的框架非常简陋,缺少定向,定深等等水下常见的模块。我个人希望这个框架能成为有点用的开源项目。也就是说,如果能有感兴趣的开发者们撰写一两个模块完善这个框架,我会非常高兴。

      下一步我更倾向于选择ROS2作为开发平台,计划在此demo的基础上以ROS2构建将来水下平台的软件架构。

  • 10
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值