This is a repository for students and anyother developers who interested in UGV&UAV exploration.
本仓库属于深圳技术大学UGV&UAV探索项目,参考了深圳朝闻道科技有限公司的开源库与西北工业大学飞行传感实验室的开源库。所有开发者均可使用,欢迎提出任何建议。
git是一个重要的工具,开发人员应学会使用git进行文件下载与上传,使用教程请参考git使用教程。如果要git push,请参考这篇教程
一般情况下,我建议初学者都应该配置一下环境,但是由于网络问题,安装过程可能并不会那么顺利,对于详细的安装教程请点击这里进行查看。
机器人包括无人机以及无人车在未知环境探索的主要难点是避障与路径规划,如果从零开始那么要求开发者有极高的科学素养,这对于大部分开发者来说几乎是不可能的。所幸ROS已经将各个开发模块集成起来,这无疑减轻了开发的负担。ROS是Willow Garage公司创建的一个机器人开源项目库,全程Robot Operation System,关于Willow Garage的传奇故事感兴趣的可以参考下面的博willow garage。
对于不熟悉的同学,可以参考古月居的基础教程ROS入门21讲,前几讲如Linux操作基础和ROS安装教程由于国内的开发环境问题,在更新源的时候可能会被墙掉,这个问题的解决方法使用梯子。如果能够使用朝闻道配好的克隆盘这部分就可以跳过了。同时也还可以参考深圳朝闻道科技有限公司的开发Wiki
恭喜你现在已经完成了ROS的基础部分学习,要想深入研究,阅读ROS的官方文档是不可逃避的一部分,ROS官方文档,虽然刚开始阅读英文文档是比较痛苦的事情,但是坚持下来相信您一定会有收获。Ros官方文档的前面几章与古月居的ros入门21讲相似,可以跳过。
本小结对应ros的深入开发,主要的内容是UGV&UAV exploration 开发与研究所遇到的经验总结,需要一定的ROS开发基础,也欢迎各位开发者补充。
astra摄像头是一款成熟的商用摄像头,国内的乐视摄像头便是使用了该摄像头内核。需要注意的是该摄像头不是网络摄像头,不能使用opecv直接调用,需要使用roslaunch调用节点并使用如rviz或rqt进行话题topic的读取,关于话题的读取前面的初级教程已经讲过了,可以进行回顾ros topic,一般乐视的镜头使用的是astrapro.launch,要注意区分。将文件git到本地后按照README.md指示实现驱动的编译与安装。
real_sense是英特尔生产的一款比较成熟的摄像头,在开发的时候也是要使用realsense的官方驱动realsense,也是要通过话题的订阅才能读取到对应的图像。
Slam是一个移动机器人开发的重要工具。slam全名simulation location and map,是一种建模的方法,详情请参考维基百科slam。slam家族庞大,常见的有orb_slam、gmapping等算法,这些算法要深入了解需要较高数学素养,需要深入了解卡尔曼滤波,拓展卡尔曼滤波等数学知识,这对于本科生还是有一定难度的。所幸ROS已将将大部分SLAM算法集成到ros包内,对于本科生来说只需要知道怎么用就行了,不必纠结于内部的数学原理。gmapping_ros。想要进一步了解slam可以参考这篇文章here.
moveit!是机器人motion planing集成库,同样的也是已经封装好了,不需要我们多想直接就可以使用。 这里附上moveit!的官方wiki以及issue
该部分是项目组研究的重点内容,而且已经取得阶段性成就。
强化学习是机器学习的一重要研究内容,它和有监督学习、无监督学习构成了机器学习的主要内容,三者的关系如下图所示 关于强化学习的基础内容,初学者可以参考一下的文章及视频 1.强化学习入门李宏毅强化学习 2.强化学习基础笔记 3.相关论文参考(看看就行了)综述以及相关的文章 相信以上内容看完您应该对强化学习有了初步的了解,接下来要讲的是强化学习与ros等的实用知识
- 使用TensorFlow框架搭建自己的强化学习网络,入门demo tensorflow wiki
- 实现手动搭建强化学习框架有一定的难度,ROS已经将该框架融入到ros的开源库中,详细内容可以参考一下的openai_ros
路径规划和路径探索是本小结的主要内容,在该领域,浙江大学的FAST——Lab已经取得的瞩目的成就 ZJU_fast_lab,该团队设计的无人机算法已经能够实现探索与规划相结合。 实验室官网
这里附上浙大的几个开源代码 无人机仿真
学生王子和与梁世博在动态环境下的机械臂运动规划领域下取得了阶段性的成就,该学生在pybullet的仿真环境下实现了机械臂的运动,包括运用3d包围盒的方式将障碍物自动识别出来,实现了基于强化学习方法的机械臂路径规划算法。
图中表示的是在pybullet仿真环境下原图、深度图、框图和过程。 训练拟合效果
Includes the advance research of UGV&UAV motion planing and any other relative works. Please browse here
cmake是常用的c语言编译工具,遵循 "write once, run everywhere", 一般情况下,下载完ros之后cmake都会自动安装,关于cmake的使用教程可以参考这里 .
一般情况下安装好ros之后cmake都会自动安装,但是不排除有些小bug,即项目编译后会出现cmake编译错误之类的提示.这里建议不要去死磕报错原因,简单的方法是直接升级cmake,升级的方法可以参考这篇教程
翻墙是国内ROS学习以及开发所要面临的一个重大难题,关于翻墙的历史以及相对应的内容可以点击这里