1 Star 1 Fork 2

shentq / ball_on_small_plate

Create your Gitee Account
Explore and code with more than 6 million developers,Free private repositories !:)
Sign up
This repository doesn't specify license. Without author's permission, this code is only for learning and cannot be used for other purposes.
Clone or download
README.md 7.21 KB
Copy Edit Web IDE Raw Blame History
pidan1231239 authored 2017-06-20 21:29 . 更新readme

BallOnPlate

基于opencv的树莓派小球平衡控制项目,识别并定位小球在平板上的位置,并通过串口发送给stm32f103单片机

整体方案

  • 玻纤板做平板
    • 如果是舵机球头连杆驱动,需要设计舵机支架的安装、摇臂的转轴支撑
  • 舵机驱动
    • 标准舵机:要求可控角度不大,因此可以考虑。球头连杆传动,力矩可变(舵机位置可调)
    • 直驱方式不太现实
  • 树莓派opencv摄像头/电阻屏定位小球

计算机视觉方案

  1. 阈值分割出平板
  2. 检测平板轮廓,得到四个角点
  3. 进行透视变换,消除平板角度影响
  4. 全局寻找极小值,定位小球位置
  5. 如果极小值较大,认为小球掉落

开发环境

  • windows端搭建linux opencv交叉编译环境
  • 树莓派搭载opencv3.2和鱼眼镜头
  • 调试时采用socket+jpeg发送帧序列到windows server应用,黑白640*480分辨率下可以达到30帧

参考

OpenCV_raspberry

为树莓派编译opencv,基于visualGDB的项目,不包含opencv源码和编译结果!!

简单使用

基于官方教程建立opencv3交叉编译工程,所有软件均安装在默认目录

树莓派配置

  1. 安装基于官方教程的镜像文件配置了opencv开发环境和依赖库的镜像

windows端配置

  1. 安装并破解visualGDB5.2r8(根据前面的经验,5.1版无法识别树莓派系统目录中的某些依赖库)
  2. 解压打包好的opencv源码和编译好的动态链接库到D:\Program Files\OpenCV_3_2_0_source(为该工程中配置的opencv源码目录,不可更改)
  3. 安装官网提供的Raspberry / PI的Windows工具链。下载 4.9.2 2016-09-23-raspbian-jessie (Raspberry Pi 1/2/3/Zero) raspberry-gcc-4.9.2-r4.exe (738 MB) 并安装
  4. 直接打开visual studio工程文件,右键工程名-visualGDB属性-Project settings-Deployment machine,设置目标树莓派的ip和账户、密码
  5. 右键工程名-visualGDB属性-CMake project settings-同步sysroot-OK,大概耗时1小时。也可以直接复制拷贝的sysroot文件夹到C:\SysGCC\Raspberry\arm-linux-gnueabihf目录
  6. 此时就可以进行编译了,如果报错,可能需要按照官方教程第10步在windows端make install一下

经验与资料

树莓派配置:

  1. 安装操作系统

  2. 对操作系统进行简单配置

  3. 安装opencv相关库

vs配置:

  1. 安装vs

  2. 安装visualGDB最新版

  3. 新建linux工程

  4. 如何通过opencv调用树莓派摄像头:

  5. 关于树莓派的windows工具链:

  6. VisualGDB提供的官方兼容镜像:

  7. 关于其他树莓派库:

vs配置问题

按照交叉编译OpenCV 3为Raspberry Pi 2教程配置后,编译失败?编译进行到一半提示"lib... needed by ... not found"(最后解决方法修复与交叉编译器的路径链接问题

  • 已检查下载了pkg-config-lite for windows并解压到了 \ Raspberry \ bin目录
  • 已检查通过 sudo apt-get install libgtk2.0-dev安装了gtk2.0
  • 已检查synchronize sysroot时包含了/ usr / share / pkgconfig和/ opt / vc目录
  • 已为cmake设置环境变量:PKG_CONFIG_SYSROOT_DIR=C:/SysGCC/Raspberry/arm-linux-gnueabihf/sysroot|PKG_CONFIG_PATH=C:/SysGCC/Raspberry/arm-linux-gnueabihf/sysroot/usr/lib/arm-linux-gnueabihf/pkgconfig;C:/SysGCC/Raspberry/arm-linux-gnueabihf/sysroot/usr/share/pkgconfig
  • 相似问题:

编译好后的二进制可执行文件如何运行?

  • chmod添加可执行权限:chmod 777 filename
  • 执行:./filename 参数列表

例程

OpenCVDemo

基于上述编译好后的opencv库的演示例程——canny边缘检测

Raspicam

树莓派的C++摄像头库编译工程,支持opencv

raspicam-0.1.6

被Raspicam引用,raspicam源码

RaspberryCameraTest

测试编译的Raspicam库,不依赖opencv

OpenCVCameraDemo

基于opencv和Raspicam的边缘检测例程

Comment ( 0 )

Sign in for post a comment

C
1
https://gitee.com/shentqlf/ball_on_small_plate.git
git@gitee.com:shentqlf/ball_on_small_plate.git
shentqlf
ball_on_small_plate
ball_on_small_plate
master

Search