vrep与vs2015联合仿真(C/C++)
vrep与vs2015联合仿真(C/C++)
文章目录
- 一、Vrep官方用户使用手册
- 二、配置vs2015实现联合仿真
- 1.在vs2015中编译vrep的开源代码
- 2.将remoteApi.dll所在目录添加环境变量Path
- 3.配置vs2015环境
- 4.VS2015 C++控制 V-REP机械臂
一、Vrep官方用户使用手册
- vrep相关中文资料比较少,最好参考官方英文手册
官方文档连接 - 本文使用软件版本
vrep 3.6.2 64位;vs2015 64位
二、配置vs2015实现联合仿真
1.在vs2015中编译vrep的开源代码
vs2015使用x64进行编译调试,运行C:\Program Files\V-REP3\V-REP_PRO_EDU\programming\remoteApiBindings\lib目录下的remoteApiSharedLib-64.vcxproj
编译之后生成文件夹X64,在里面有文件remoteApiSharedLib-64.lib,文件夹lib中有remoteApi.dll,之后会用到
编译过程中报错
warning LNK4042: 对象被多次指定;已忽略多余的指定
无法解析的外部符号
这时按照 https://blog.csdn.net/gupar/article/details/52860794
中做法,在工程属性 :C/C++ >> 输出文件 >>对象文件名 把 $(IntDir) 修改为: $(IntDir)%(RelativeDir)
编译即成功。
2.将remoteApi.dll所在目录添加环境变量Path
在电脑的系统属性里点击环境变量
然后在系统变量中找到Path
双击Path后,点击新建,设置remoteAPI.dll文件的目录
3.配置vs2015环境
新建一个工程,然后点击工程文件名,右键打开属性页,在VC++目录的库目录中添加remoteApiSharedLib-64.lib文件所在的目录
然后在C/C++ 常规 附加包含目录中添加三个目录
之后在预处理器的预处理器定义中添加以下内容
WIN32
NDEBUG
_CONSOLE
NON_MATLAB_PARSING
MAX_EXT_API_CONNECTIONS=255
DO_NOT_USE_SHARED_MEMORY
_CRT_SECURE_NO_WARNINGS
备注:如果报shared memory错误的话就添加DO_NOT_USE_SHARED_MEMORY,如果报fopen错误的话就添加_CRT_SECURE_NO_WARNINGS,否则无需添加。
再将输出文件的对象文件名改为$(IntDir)%(RelativeDir)
之后在链接器里的输入 附加依赖项中添加remoteApiSharedLib-64.lib
完成以上操作,vs2015的环境配置就完成了。
4.VS2015 C++控制 V-REP机械臂
- C++测试代码
//#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include<extApi.h>
#include<extApiPlatform.h>
#include<extApi.c>
#include<extApiPlatform.c>//extern "C" {
//#include "extApi.h"
//}int main()
{int clientID = simxStart("127.0.0.1", 2000, 1, 1, 2000, 5);//printf("clientID is %d", clientID);//getchar();int simRes = simxStartSimulation(clientID, simx_opmode_oneshot); //start simulationprintf("simRes is %d", simxStartSimulation);if (clientID != -1){printf("success");getchar();}else{printf("error");getchar();}return 0;
}
- 在V-REP的scene里添加.ttm文件, 双击子脚本child script中添加simExtRemoteApiStart(2000),2000即为端口号,需与VS源码中对应。
- 先运行v-rep,然后运行vs,打印success,即通信成功,如果只运行VS,则打印error。
以上是自己这段时间学习vrep做的总结,以便后续查看,在学习过程中参考了以下博主的播客,在此表示感谢!
V-rep与VS2017 C++通信环境配置,远程操控机械臂
V-REP通过C++程序控制仿真
v-rep与vs 2013 C/C++通信/联合仿真