基于计算机视觉抓取运动的物体(1)

最近在做一个小玩意,记录一下,给大家做一个参考。项目要求利用传感器感知环境,嵌入式计算机(项目负责人想用树莓派)控制机械臂抓取特定的物体。我和我的同学们不同,虽然同为机器人专业,但我是准备跨考网络安全的异类。因为对于计算机视觉较为熟悉,所以我选用“双目定位”来实现项目的技术要求。不多废话,接下来全是干货。

项目的总体可以分为“机械臂”模块和”视觉感知“模块。机械臂模块是其他小组的任务,他们暂时还没有做出来,这块先空着,等他们完成了再补上,先记录一下我的基本思路。

基本思路:双目摄像头作为视觉输入来源,获取目标物体以及机械臂各关节在三维空间中的位置,结合几何运动学和数据训练方法实现机械臂自主抓取目标物体。

接下来是大致的实现步骤:

1、标定机械臂,利用双目摄像机拍摄,嵌入式计算机处理机械臂各关节点在空间坐标中的位置。计算出各关节的角度。

2、通过双目摄像机拍摄的图像获得目标物体所在的位置,利用几何运动学解出机械臂抓取物体所需转到的角度。

3、利用双目摄像头观察机械臂转动的误差,如果误差在接受范围之内就下达抓取命令,机械臂末端执行器抓取目标物体,如果误差较大就计算目标角度和当前角度的误差,使用反馈控制减少误差,算法循环重复1-3步,当误差足够小时下达抓取指令。

Linux源码安装OpenCV

我的计算机安装的是Parrot Linux,系统已经安装了git , 如果你的linux没有git需要安装,debian系的linux用apt管理包安装,命令:sudo apt install git

redhat系的linux用yum或dnf管理包安装,命令:sudo yum install git 或 sudo dnf install git

安装git后,使用git下载OpenCV的源代码,命令:

git clone https://github.com/Itseez/opencv.git

安装编译环境:

sudo apt-get install build-essential cmake  libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

安装一些功能:

sudo apt-get install python-dev python-numpy python3-dev python3-numpy

sudo apt-get install libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

进入OpenCV目录进行编译和安装:

cd opencv

mkdir build

cd build

cmake -DCMAKE_BUILD_TYPE=Release -DOPENCV_GENERATE_PKGCONFIG=ON -DCMAKE_INSTALL_PREFIX=/usr/local ..

make -j8 (注意!我的计算机的CPU是八核心,-j8 参数的含义是使用8个线程编译源代码,如果你的电脑CPU没有8个线程,那么就不可以使用此参数,-j的参数由计算机的CPU的线程数而定,想知道自己计算机CPU有几个线程可以使用这个命令:lscpu)

编译需要很长的时间

sudo make install

至此Opencv在linux安装完成,由于本人对C/C++有莫名的好感,所以我来配置一下C++,之后OpenCV的程序我将全部使用C++编写,配置C++:

cd /etc/ld.so.conf.d/

sudo touch opencv4.conf

sudo sh -c 'echo "/usr/local/lib" > opencv4.conf'

sudo ldconfig

C++配置完成,我们来编译一个opencv c++程序玩玩!

cd ~/opencv/samples/cpp/

g++ `pkg-config --cflags opencv4` drawing.cpp `pkg-config --libs opencv4` -o drawing.out

./drawing.out

你将看到有趣的事情!!! opencv forever

未完待续。。。。。。

 

posted @ 2020-10-07 23:02  chencmaster  阅读(109)  评论(0)    收藏  举报