您的位置:首页 > 编程语言

GitHub 上有哪些机器人、无人机、自动控制等方面的有趣项目

2017-09-23 13:08 323 查看

/***************************************************************************************************************/
 *
 *                                    (c)    光明工作室  2017-2037  COPYRIGHT
 *
 *   光明工作室团队成员大部分来自全国著名985、211工程院校。具有丰富的工程实践经验,
 *本工作室热忱欢迎大家的光临。工作室长期承接嵌入式开发、PCB设计、算法仿真等软硬件设计。
 *
 *
 *1)基于C8051、AVR、MSP430单片机开发。
 *2)基于STM32F103、STM32F407等ARM处理器开发。(IIC、SPI、485、WIFI等相关设计)
 *3)基于C6678、DM388等DSP处理器开发。(视频、网络、通信协议相关设计)
 *4)基于QT、C#软件开发。
 *5)基于OPENCV、OPENGL图像处理算法开发。(基于LINUX、WINDOWS、MATLAB等)
 *6)无人机飞控、地面站程序开发。(大疆、PIX、 qgroundcontrol、missionplanner、MAVLINK)
 *7)  ROS机器人操作系统下相关开发。
 *8)LINUX、UCOSII、VXWORKS操作系统开发。
 *
 *
 *                                                                                                       联系方式:
 *                                                                                                        QQ:2468851091 call:18163325140
 *                                                                                                        Email:2468851091@qq.com
 *
/ ****************************************************************************************************************/

我们组正在开发的Drake:
RobotLocomotion/drake · GitHub 用于机器人动力学建模,模拟和控制,集成了运动规划,稳定性分析。应用的例子包括了人形机器人,飞机(四旋翼,固定翼)和机械臂等。语言是用MATLAB和C++(绝大多数动力学的函数同时提供了matlab和c++的接口)。这次的DARPA Robotics Challenge中MIT队的控制器也包含在这个软件中了。
关于这个软件中所运用的机器人理论知识,可以参考edx上的公开课程underactuated roboticsUnderactuated
Robotics
根据评论添加一部分回答。
组的背景?

组的网站在这里 http://groups.csail.mit.edu/locomotion/index.html 为什么不直接用ROS?

一是因为我们做研究需要的很多功能是ROS不提供的,比如说判定一个动态系统的region of attraction,这时候需要搜索一个Lyapunov function,ROS是没有这个功能的。二是因为我们的侧重点和ROS不一样。比如说ROS中的gazebo模拟器更侧重模拟的速度,而我们更注重模拟的精度。三是因为ROS太大了,其中核心的通信模块可以用LCMLCM:
Lightweight Communications and Marshalling (LCM) 替换,这是一个轻量级的通讯模块。

是否有机械臂的关节规划?

我们有计算forward kinematics和inverse kinematics的引擎,支持MATLAB和C++。对于避障目前是用的Bullet来计算物体之间的距离。做inverse kinematics的例子包括在ABB IRB140 arm上drake/runPlanning.m
at master · RobotLocomotion/drake · GitHub,和在Atlas机器人上drake/testIK.m
at master · RobotLocomotion/drake · GitHub。

编辑于 2015-10-25

289

39 条评论

分享

收藏

感谢





清风

Roboconer/多看paper多写代码

189 人赞同了该回答

hector quadrotor 是德国老牌理工学校Technische Universität Darmstadt大学开发的ros包,可以用于用于多旋翼的建模,控制和仿真。
GitHub
- libing64/hector_quadrotor: hector_quadrotor contains packages related to modeling, control and simulation of quadrotor UAV systems.
GitHub
- tu-darmstadt-ros-pkg/hector_quadrotor: hector_quadrotor contains packages related to modeling, control and simulation of quadrotor UAV systems.
hector quadrotor 整合了ros和gazebo,可以进行uav相关的很多仿真,例如飞行动力学,机载传感器例如imu、gps、camera,复杂环境仿真等等。
1. modeling and control

作者利用风洞实验等测得了四旋翼的所有动力学参数,然后拿这些参数进行仿真,之后又拿仿真数据和实际飞行数据进行对比,结果相当吻合。
如果你想自己写飞控但又不想炸鸡,完全可以ros里进行仿真,仿真通过之后再把程序放到进飞机实际测试。

在仿真里写飞控还有一个好处就是飞机的所有state都可以使用ground truth进行控制,避免和estimation问题耦合。

http://www.gkmm.tu-darmstadt.de/publications/files/meyer2012quadrotorsimulation.pdf
2. sensor fusion

hector quadrotor上集成了目前uav上最常见的传感器,imu, magnetometer, gps, lidar, sonar, camear, stereo camera, kinect, 3d lidar, spinning lidar...

拿来做传感器融合仿真非常方便,所有state都有ground ground truth,哪里融合出错了非常容易发现。noise level也可以自己定义

使用hector quadrotor的数据,我自己写的基于ekf姿态融合跟 6d位置融合,att_ekf核心代码不到150行,6d pose_ekf 核心代码大约300行(Eigen真是高效)
GitHub
- libing64/att_ekf: Extented Kalman Filter for attitude estimation using ROS
GitHub - libing64/pose_ekf:
Extented Kalman Filter for 6D pose estimation using gps, imu, magnetometer and sonar sensor.
att_ekf, 长坐标轴是estimation,短的是ground truth


pose_ekf, 长坐标轴是estimation,短的是ground truth



我也试过跑optical flow 跟stereo visual odomety,效果都蛮好。laser-based slam上面的paper中已经实现了,作者把它放在了hector_localization这个包.

3. slam

hector quadrotor用于laser-based slam非常容易实现,但是没看到用hector quadrotor做camera-based slam的,但是我觉得既然光流和stereo vo都可以跑的很好,那么用来做slam应该不成问题,起码我自己是打算这么干的。
laser-based 2d slam



===========================================

2016.03.23 更新

@铁胆火车侠

提到了orb slam,我之前只看过paper并没有运行过

hector quadrotor仿真环境中控制uav飞圆形(几十圈),下图是用orb slam(monocular version) 跑出来的轨迹和点云。




单目能跑出这样的精度而且是实时的,我还是蛮惊讶的
为了让orb slam和hector quadrotor同时实时运行,对orb slam的接口做了修改
GitHub - libing64/ORB_SLAM2:
Real-Time SLAM for Monocular, Stereo and RGB-D Cameras, with Loop Detection and Relocalization Capabilities

基于ROS的项目在Github上不要太多,干脆从ROS开始吧:

1.ROS core stacks · GitHub

应该说现在搞机器人相关应用的机构和研究所,几乎都会开发ROS相关的应用接口,强大和统一的通信方式,省去了很多重复的劳动,各种相关和热门的传感器以及平台也都提供了ROS相关的接口,如果有一台Linux笔记本,想做机器人相关的项目,那就赶紧下载一个ROS开始吧。

具体版本选择参见官网,有linux,c++或python基础,跟着官方tutorial应该很快就可以上手了。

ROS8周年宣传视频,需要翻墙,https://www.youtube.com/watch?v=Z70_3wMFO24
2. ROS支持的相关机器人和传感器
Baxterhttps://github.com/RethinkRobotics



PR2 https://github.com/PR2



Turtlebotturtlebot
· GitHub



DJI的开发平台 Matrix-100GitHub
- dji-sdk/Onboard-SDK-ROS: ROS packages for DJI onboard SDK, all new data structures



Gazebo 没有这些实体机器人?没关系,完全ROS支持的Gazebo模拟环境,你值得拥有:
GitHub
- ros-simulation/gazebo_ros_pkgs: Wrappers, tools and additional API's for using ROS with Gazebo. Formally simulator_gazebo stack


在Gazebo环境下,基本上已经可以完整解决很多机器人相关的问题了。
传感器相关的Sick 雷达,Velodyne全景雷达,Kinect摄像头等,都是ROS官方支持的,驱动安装相当方便,这里就不详细说了,基本上市面上流行的传感器和IMU都有官方支持,没有的话在github上也能搜的到ROS相关接口。
3. Mapping 和 SLAM
GmappingGitHub
- ros-perception/slam_gmapping: http://www.ros.org/wiki/slam_gmapping
比较早但是非常好用的一个包,有一个激光雷达或者Kinect,搭配移动机器人就可以实现一个2D的SLAM解决方案,如果没有机器人的话,用Gazebo搭配一个模拟Turtlebot一样可以实现。定位精度之高有时候可以当groud-truth用。



ORB_SLAMGitHub
- raulmur/ORB_SLAM: A Versatile and Accurate Monocular SLAM

学术界目前最火的Monocular SLAM解决方案,除了摄像头不需要其他任何相关里程计信息,来自西班牙萨拉戈萨大学,只需要单摄像头就可以完成,同样支持Kinect,并有ROS接口,有摄像头的都可以下载下来跑一跑试试。ORB feature相比传统Feature提取效率大大提升。



ETH的2.5D MappingGitHub
- ethz-asl/grid_map: Universal grid map library for mobile robotic  mapping

ETH的机器人相关研究一直都是世界顶级的,ETHZ
ASL · GitHub 下面的几乎每一个项目,都是一个机器人领域相关研究的分支。这里就不一一列举了。
4 Planning 和 Kinematics

官方非常基础的一个运动学相关的package。
GitHub -
ros-planning/moveit_ros: MoveIt! ROS
----------总结陈词的分割线-------------

ROS在学术界和工业界的应用发展还远远没有止步,目前国内国外的相关机器人工程师招聘,也都有ROS相关的需求,比如前百度IDL副院长余凯的地平线机器人公司等等。把ROS玩好,可以大大的体会到做机器人相关研究的乐趣,希望有相关兴趣的同学都参与进来。
----------夹带私货的分割线-------------

最后安利一个自己的project,如果大家有人买了Leap motion control,同样最近非常火,并且经常被各种创业鸡汤项目拿来唬人的手势深度传感器,我给它写了一个简单的ROS接口https://github.com/CityU-MBE/leap_motion_ros

我们组正在进行的一个深度学习机器人应用的项目,主要是Semantic Mapping和基于CNN的壁障,目前比较搓,后期也可能弃坑,大家看看就好
GitHub - libcnn/libcnn:
libcnn++
----------不定时更新的分割线------------
GitHub - arrenglover/openfabmap:
Open-source C++ code for the FAB-MAP visual place recognition algorithm

FAB-SLAM,  基于appearance, chowliu-tree的slam方法,用bag of words的方式去训练图像分类,从而实现基于地图数据库的定位。BOWtrainer已写入opencv标准库。来自一篇IJRR高引用论文,出自牛津大学著名的Paul Newman教授组。感觉比ORBSLAM来的简单一点,代码的注释也比较清楚,比较容易看懂。

编辑于 2016-04-07

114

9 条评论

分享

收藏

感谢
收起



知乎用户

13 人赞同了该回答

Teensy: 电路+Library,可以DIY也可以买。大小类似于Arduino Pro Mini,但是性能和Arduino DUE一个级别。
PaulStoffregen/cores
· GitHub

FreeIMU(这个项目的创始人是个英年早逝的意大利PhD在读学生,很可惜)。
mjs513/FreeIMU-Updates
· GitHub

两个加一起可以做飞控。

法国inria研究所的人型机器人Poppy

全部开源,可3d打印,非常好看,设计也相当出色,缺点是造价高昂,用的韩国Dynamixel系列舵机,以及无法自主行走



是来强答的,因为下面说的不一定有趣。

无人机著名的开源社区是ArduPilot(网址:Community),他们有一些项目是托管在GitHub上的。他们的GitHub主页是:ArduPilot
· GitHub:
搬运一下他们的项目列表(Welcome
to the ArduPilot Development Site),包括了飞控固件、地面站软件、MavLink通讯协议、无人机仿真系统等:

Project List
The ArduPilot system is made up of (or relies upon) several different projects which are listed below. Those marked with an asterix (*) are peer projects that have their own owners outside the core ArduPilot dev
team.
DroneKit (site)
- APM SDK for apps running on vehicles, mobile devices and/or in the cloud.
Plane (wiki,code)
- autopilot for planes
Copter (wiki,code)
- autopilot for multicopters and traditional helicopters
Rover (wiki,code)
- autopilot for ground vehicles
Mission Planner (wiki,code)
- the most commonly used ground station written in C# for windows but also runs on Linux and MacOS via mono
APM Planner 2.0 (wiki,code)
is a ground station specifically for APM written in C++ using the Qt libraries
MAVProxy (wiki)
- command line oriented and scriptable ground station (mostly used by developers)
MinimOSD (wiki,code)
- on-screen display of flight data
AndroPilot (user
guide,
code,
google play) - android ground station
DroneAPI (tutorial,droneshare)
- A developer API for drone coprocessors and web applications.
DroidPlanner2 (wiki,code,google
play) - android ground station
QGroundControl
is an alternative ground station written in C++ using the Qt libraries
PX4 (wiki)
- designers of the PX4FMU and owners of the underlying libraries upon which Plane/Copter/Rover use when running on the PX4FMU
MAVLink (wiki)
- the protocol for communication between the ground station, flight controller and some periphers including the OSD. A “Dummy’s Guide” to working with MAVLink ishere.
其中最著名的恐怕是Mission Planner,以至于我去很多展览会,都能看到大家将这个开源软件改来改去,我表示呵呵呵。这个软件的界面是这样的:



业内人士是不是看到以后很熟悉啊!!
这里尤其说一下他们的Android项目Tower。Tower本身是一个APP,通过3DRservice(另一个APP,主要用于将远程连接过程封装)与无人机连接。我花了好久来研究这两个软件的方方面面,绘制流程图和UML,还是很有收获滴(我就是这么一个认真的孩子,你打我啊~)。
3DRServices
Tower

下面是Tower的主界面。


开源社区的无人机大抵逃不出下面的结构。


ArduPilot配合使用的飞控PiXWahk淘宝上就有卖,大概2000多能买到,而且附带很多配件,比如GPS和数传模块。
最后是私货,我写过一篇介绍MavLink协议的博客,请看【无人机开发】通讯协议MavLink详解
以后有时间了,会多些一些关于无人机开发方面的文章,欢迎关注~

编辑于 2016-05-24

17

1 条评论

分享

收藏

感谢
收起





wade Jane

我有一壶酒,不足慰风尘。

-
Repetier Software

源代码可以在某度下载

发布于 2016-05-01

0

添加评论

分享

收藏

感谢



知乎用户

5 人赞同了该回答

Paparazzi UAV
Paparazzi
UAV (Unmanned Aerial Vehicle) is an open-source drone hardware and software project encompassing autopilot systems for multicopters/multirotors, fixedwing, helicopters and hybrid aircraft.



中文介绍:http://m.leiphone.com/news/201406/paparazzi-open.html

官方wiki: http://wiki.paparazziuav.org/wiki/Main_Page
Github: https://github.com/paparazzi/
编辑于 2015-10-18

5

3 条评论

分享

收藏

感谢



匿名用户

4 人赞同了该回答

适合嵌入式平台的C的解释器,代码量很小。https://github.com/zsaleeba/picoc

发布于 2015-10-27

4

添加评论

分享

收藏

感谢





王思成

无人机爱好者,微信公众号:Gladius水下机器人

2 人赞同了该回答

Gladius水下无人机,大概是我能想到国内民用级别最好玩的ROV了。

有趣的话,大概有这么几个点。

1.海钓专用。科普:海钓_360百科。常规的海钓依凭渔夫的经验寻找水域,然后进行漫长的、不可知的钓鱼过程。但是有了Gladius水下无人机后,能下潜海中,通过4K超高清视频实时传输到手机上,从而实现可视化找鱼。这意味着:钓鱼不再是一种漫长而未知的过程,而是看见、捕捉、执行的高效率过程。

2.实时分享到社交平台。Gladius水下无人机通过半缆绳的设计结构,能高速稳定传输图像资料,及时分享到社交平台和图像下载。

3.船底检查。全球中大型货轮、客轮、大型渔船等总计超过10万艘,中国占比30%,需要经常进行船底外部检查。常规的检查方式是通过潜水员(蛙人)下水进行人工检查。不仅耗时长进度慢,而且人力成本较高!但是Gladius水下无人机能够轻松潜水百米,游刃有余地穿梭在船底,搭配智能辅助照明系统检查。不仅速度快效率高,还能传输高清影像供船长参考船底的具体情况。

当然,还有很多有趣的玩法,比如水下摄影、游艇娱乐等等……最后放张照片给大伙儿瞅瞅。



发布于 2016-12-15

2

添加评论

分享

收藏

感谢

Pixhawk,开源飞控

drone-kit 通过mavlink协议控制pixhawk的android服务封装

tower 上述service的客户端



匿名用户

1 人赞同了该回答

openworm/OpenWorm
· GitHub

可以把它移植到机器人上面玩

发布于 2015-10-27





SIABMB

其实毕业我想搞软件,为什么现在又莫名其妙的搞起了硬件

openrov国外的一款开源水下机器人。

发布于 2016-08-12

0

添加评论

分享

收藏

感谢



知乎用户

diydrone/ardupilot,pixhawk

发布于 2015-10-18

0

添加评论

分享

收藏

感谢





六步上篮

...

1 人赞同了该回答

PIXHAWK 无人机 导师叫我学这个,刚接触了1天一头雾水
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐