阿雪的学习记录|【V-Rep】CoppeliaSim V4.1.0+python3.6键盘控制UR5+RG2机器人运动

好久不见!
首先两个大佬的博客献上:
这一篇是模型组装以及完整代码还有详细教程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.pyvrepConst.py两个文件你在对应的位置是找不到的,取而代之的是第二篇博客里提到的sim.pysimConst.py,所以将sim.pysimConst.pyremoteApi.dll三个文件复制到你的项目文件夹下后,刚刚复制好的robotControl.py里的所有vrep也都要替换成sim,一键替换全部就可以,不会有bug。替换完成后这个通信就建立起来了,可以用这篇博客中提到的方法试一下看看是否成功,需要注意的是,simpleTest.py这个程序需要复制到你的项目文件下,就是包含了sim.pysimConst.pyremoteApi.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

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
在Matlab中,你可以使用scatter函数来绘制散点图,使用convhulln函数来计算凸包的坐标,然后使用patch函数将坐标点连接成面,形成包络图。下面是一个示例代码: ```matlab A = importdata('E:\各种数据集\220417\y001.txt'); B = importdata('E:\各种数据集\220417\001yy.txt'); Ax = A(:, 1); Ay = A(:, 2); Az = A(:, 3); Bx = B(:, 1); By = B(:, 2); Bz = B(:, 3); figure; scatter3(Ax, Ay, Az, 'filled', 'MarkerFaceColor', 'r'); hold on; scatter3(Bx, By, Bz, 'filled', 'MarkerFaceColor', 'b'); f = convhulln(A); patch('vertices', A, 'faces', f, 'facecolor', 'r', 'FaceAlpha', 0.3); f1 = convhulln(B); patch('vertices', B, 'faces', f1, 'facecolor', 'b', 'FaceAlpha', 0.3); axis equal; xlabel('X'); ylabel('Y'); zlabel('Z'); title('散点图绘制包络图'); ``` 这段代码会将两组数据点A和B绘制成散点图,并使用convhulln函数计算出A和B的凸包坐标,然后使用patch函数将凸包坐标连接成面,形成包络图。你可以根据自己的数据文件路径进行修改。 #### 引用[.reference_title] - *1* [阿雪学习记录|MATLAB绘制三维离散点包络体](https://blog.csdn.net/baixue1183/article/details/125013589)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值