Skip to content

chengzhag/ball_on_small_plate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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的边缘检测例程

About

基于树莓派、opencv、stm32、ebox的平板小球平衡项目

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published