Giter Site home page Giter Site logo

sunbeanly / ball_on_beam Goto Github PK

View Code? Open in Web Editor NEW

This project forked from chengzhag/ball_on_beam

0.0 0.0 0.0 335.64 MB

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

Home Page: https://sites.google.com/view/pidan1231239/projects/ball-on-beam

CMake 1.20% C++ 23.46% C 65.89% Makefile 4.23% Batchfile 0.01% Assembly 5.22%

ball_on_beam's Introduction

OpenCV_raspberry_ball_balance

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

整体方案

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

计算机视觉方案

开发环境

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

定位方案

  1. 取出已知滑轨位置、沿滑轨方向截取一行像素(或一条窄图),形成一个向量图像(细长方形图像)
  2. 利用opencv的对截取的图像进行边缘检测
  3. ......

参考

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

ball_on_beam's People

Contributors

chengzhag avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.