好久不见!
首先两个大佬的博客献上:
这一篇是模型组装以及完整代码还有详细教程V-rep机器人仿真(Win10):UR5+RG2+Kinect+YOLOV3+DDPG+Pytorch(第三部分:在V-rep中用python控制机械臂)
因为他用的是vrep3.x版本,但我是CoppeliaSim V4.1.0,其中有些许不同,好了其实就是包的名字不一样,参考了这篇【CoppeliaSim】远程 API 之 Python 控制,对比 V-rep 有些不同
好的,那么来学!
首先是第一个教程,按照他说的把UR5和RG2组装起来,再把同时具有深度相机和RGB相机的普通摄像头配合到RG2的主体上,这一部分可以自己挪一挪,需要注意的是,设置好之后摄像头外壳的属性中,就是双击-Common
里的“Renderable”要取消勾选,否则摄像头会看到相机壳子,两个相机的角度也要调整到和壳子相同,否则就会获得一个始终向右看或者深度相机RGB相机视角不一致的摄像头。
第一个教程里搭建部分需要补充的就这么多了,在搭建完成后,把它提供的robotControl.py
的代码复制到空的py文件里命名成你喜欢的,其他的也都按照它说的来,但是python部分做完先等等,先不要运行。
首先,开头提到第一个教程用的是vrep3.x版本,所以他所用到的库vrep你是找不到的,他在他的上一篇博客V-rep机器人仿真(Win10):UR5+RG2+Kinect+YOLOV3+DDPG+Pytorch(第二部分:Vrep与python的联调)所说的vrep.py
和vrepConst.py
两个文件你在对应的位置是找不到的,取而代之的是第二篇博客里提到的sim.py
和simConst.py
,所以将sim.py
,simConst.py
和remoteApi.dll
三个文件复制到你的项目文件夹下后,刚刚复制好的robotControl.py
里的所有vrep
也都要替换成sim
,一键替换全部就可以,不会有bug。替换完成后这个通信就建立起来了,可以用这篇博客中提到的方法试一下看看是否成功,需要注意的是,simpleTest.py
这个程序需要复制到你的项目文件下,就是包含了sim.py
,simConst.py
,remoteApi.dll
还有你的.ttt
文件的文件夹里,运行得到鼠标实时位置,最后一行出现program ended
,就说明能联调了。
最后的项目文件夹结构就是这样
imgTemp
imgTempDep
saveImg
|_depthImg
|_rgbImg
scenes
|_scene.ttt
remoteApi.dll
robotControl.py
sim.py
simConst.py
另外在运行robotControl.py
之前还需要安装pygame
这个库,自行豆瓣源或者pypi或者pip install即可,不赘述。
运行的时候需要首先让仿真平台开始运动,这时候由于我们已经把UR5的程序改成一行了,所以UR5就不会动,可能抓夹RG2还在动,呆job,别管他,仿真还在运行的时候运行py文件,在cmd或者编译器里都行,会弹出一个控制框,这个就是pygame的界面(或许是),界面会显示摄像头看到的实时的东西,仿真环境里也同时有RGB图和深度图,随便放几个模型就可以看出来,用py文件最前面提到的按键控制机器人运动,空格可保存深度图和RGB图到对应文件夹,P键退出程序,不要点叉退出,会变得不幸。
可以仔细研究研究第一篇博客的python代码,觉得里面的注释和博客里的讲解都很细致,3-18岁少儿编程应该都能看懂,里面也包含了很多vrep的api,跟着现成的代码学也会快很多。
好了我收回之前说这个仿真平台只能用lua编程,我说怎么官方api还有C和python的,原来是我不会TAT,但是但是仿真平台里就是只能用lua,其中,目前体会到第一个不便就是没有continue
,其他都很好,其他都很像python,入门应该会没那么难。
每天学一点点,就能少菜一点点,加油( •̀ ω •́ )y