CoppeliaSim(V-Rep)4.2.0与VS2017 C++调用RemoteApi通信环境配置,远程操控机械臂

在环境配置的过程中参考了以下博主的博客,在此表示感谢

V-rep与VS2017 C++通信环境配置,远程操控机械臂_乔慕宾的博客-CSDN博客

一、下载并安装CoppeliaSim(原名V-Rep)4.2.0版本

https://www.coppeliarobotics.com/

通过官网下载教育版即可

CoppeliaSim(V-Rep)4.2.0与VS2017 C++调用RemoteApi通信环境配置,远程操控机械臂_第1张图片

 V-Rep默认安装路径为C:\Program Files\CoppeliaRobotics,无法更改。安装过程无脑下一步,等待安装完成。

二、下载安装Visual Studio2017

https://my.visualstudio.com/Downloads

官网下载Visual Studio Community 2017即可

CoppeliaSim(V-Rep)4.2.0与VS2017 C++调用RemoteApi通信环境配置,远程操控机械臂_第2张图片

 安装时勾选“使用C++的桌面开发”,若编译时要求安装Windows10 SDK,可再次打开本安装程序添加SDK,推荐安装在非系统盘(非C盘)

CoppeliaSim(V-Rep)4.2.0与VS2017 C++调用RemoteApi通信环境配置,远程操控机械臂_第3张图片

三、运行C:\Program Files\CoppeliaRobotics\CoppeliaSimEdu\programming\remoteApiBindings\lib目录下的remoteApiSharedLib-64.vcxproj 生成remoteApiSharedLib-64.libremoteApi.dll

点击“调试”-“开始调试”后

若出现“找不到 Windows SDK 版本10.0.17134.0”,则启动VisualStudio安装程序安装对应SDK即可

若出现

1>extApiPlatform.obj : error LNK2001: 无法解析的外部符号 close_shared_memory
1>extApiPlatform.obj : error LNK2001: 无法解析的外部符号 set_shared_memory_name
1>extApiPlatform.obj : error LNK2001: 无法解析的外部符号 map_shared_memory
1>extApiPlatform.obj : error LNK2001: 无法解析的外部符号 open_shared_memory
1>extApiPlatform.obj : error LNK2001: 无法解析的外部符号 set_shared_memory_size
1>extApiPlatform.obj : error LNK2001: 无法解析的外部符号 destroy_shared_memory

CoppeliaSim(V-Rep)4.2.0与VS2017 C++调用RemoteApi通信环境配置,远程操控机械臂_第4张图片则按照 warning LNK4042: 对象被多次指定;已忽略多余的指定_敬我岁月无波澜-CSDN博客
中做法,右键“remoteApiSharedLib-64”-“属性”-“配置属性”-“C/C++”-“输出文件”-“对象文件名”改为“$(IntDir)%(RelativeDir)”即可

CoppeliaSim(V-Rep)4.2.0与VS2017 C++调用RemoteApi通信环境配置,远程操控机械臂_第5张图片CoppeliaSim(V-Rep)4.2.0与VS2017 C++调用RemoteApi通信环境配置,远程操控机械臂_第6张图片

编译成功后

C:\Program Files\CoppeliaRobotics\CoppeliaSimEdu\programming\remoteApiBindings\lib\bin\release目录下出现remoteApi.dllremoteApiSharedLib-64.lib

即可进行下一步

四、将remoteApi.dll所在目录添加环境变量Path

在“控制面板”中搜索“高级系统设置”点击“环境变量

找到“系统变量”下的“Path”点击“编辑

CoppeliaSim(V-Rep)4.2.0与VS2017 C++调用RemoteApi通信环境配置,远程操控机械臂_第7张图片CoppeliaSim(V-Rep)4.2.0与VS2017 C++调用RemoteApi通信环境配置,远程操控机械臂_第8张图片

点击“新建”,将刚生成的remoteApi.dll路径粘贴上即可

CoppeliaSim(V-Rep)4.2.0与VS2017 C++调用RemoteApi通信环境配置,远程操控机械臂_第9张图片

 五、VS2017环境配置

打开VS2017,点击“文件”-“新建”-“项目”新建控制台应用

活动解决方案平台改为“×64”,配置与“remoteApiSharedLib-64”相同,改为“Release”

CoppeliaSim(V-Rep)4.2.0与VS2017 C++调用RemoteApi通信环境配置,远程操控机械臂_第10张图片CoppeliaSim(V-Rep)4.2.0与VS2017 C++调用RemoteApi通信环境配置,远程操控机械臂_第11张图片

右键项目名称打开属性页,在“配置属性”-“VC++目录”-“库目录”中添加remoteApiSharedLib-64.lib文件所在的目录C:\Program Files\CoppeliaRobotics\CoppeliaSimEdu\programming\remoteApiBindings\lib\x64\Release

CoppeliaSim(V-Rep)4.2.0与VS2017 C++调用RemoteApi通信环境配置,远程操控机械臂_第12张图片“配置属性”-“C/C++”-“常规”-“附加包含目录”中添加三个目录

C:\Program Files\CoppeliaRobotics\CoppeliaSimEdu\programming\common

C:\Program Files\CoppeliaRobotics\CoppeliaSimEdu\programming\include

C:\Program Files\CoppeliaRobotics\CoppeliaSimEdu\programming\remoteApi

CoppeliaSim(V-Rep)4.2.0与VS2017 C++调用RemoteApi通信环境配置,远程操控机械臂_第13张图片

 将“配置属性”-“C/C++”-“预处理器”-“预处理器定义”替换为以下内容

WIN32
NDEBUG
_CONSOLE
NON_MATLAB_PARSING
MAX_EXT_API_CONNECTIONS=255 CoppeliaSim(V-Rep)4.2.0与VS2017 C++调用RemoteApi通信环境配置,远程操控机械臂_第14张图片

“配置属性”-“链接器”-“输入”-“附加依赖项”中添加remoteApiSharedLib-64.lib

CoppeliaSim(V-Rep)4.2.0与VS2017 C++调用RemoteApi通信环境配置,远程操控机械臂_第15张图片 接着粘贴以下代码

#include 
#include 
#include 
extern "C" {
#include "extApi.h"
}

int main()
{
	int Port = 3000;
	int PositionControlHandle;
	float position[3];
	float positionmove[3];
	//智能制造单元控制系统 Intelligent manufacturing unit control system
	//imucs
	int clientID = simxStart("127.0.0.1", Port, true, true, 2000, 5);

	if (clientID != -1)
	{
		printf("V-rep connected.");
		int count = 0;
		//extApi_sleepMs(300);
		while (simxGetConnectionId(clientID) != -1)
		{
			count++;
			simxGetObjectHandle(clientID, "IRB140_manipulationSphere", &PositionControlHandle, simx_opmode_oneshot);
			simxGetObjectPosition(clientID, PositionControlHandle, -1, position, simx_opmode_oneshot);
			positionmove[0] = position[0];
			positionmove[1] = position[1] + 0.01* sin(count / 10.0);
			positionmove[2] = position[2];
			simxSetObjectPosition(clientID, PositionControlHandle, -1, positionmove, simx_opmode_oneshot);
			printf("(%f,%f,%f)\r\n", position[0], position[1], position[2]);
		}

		simxFinish(clientID);
	}
	else {
		printf("V-rep can't be connected.");
		//extApi_sleepMs(300);
	}

	return 0;
}

若提示找不到remoteApi.dll,则检查系统变量设置是否有误,也可重新打开VisualStudio再次尝试

出现调试控制台界面表示VS2017环境配置成功 CoppeliaSim(V-Rep)4.2.0与VS2017 C++调用RemoteApi通信环境配置,远程操控机械臂_第16张图片

六、运行V-Rep仿真

打开V-Rep,将“Model Browser”中的“ABB IRB 140.ttm”拖拽至右边界面中

双击“Scene Hierarchy”“IRB140”右边的文本图标打开脚本

在第一行粘贴“simExtRemoteApiStart(3000)”

该数据需要与VS代码中的“Port”一致

CoppeliaSim(V-Rep)4.2.0与VS2017 C++调用RemoteApi通信环境配置,远程操控机械臂_第17张图片

CoppeliaSim(V-Rep)4.2.0与VS2017 C++调用RemoteApi通信环境配置,远程操控机械臂_第18张图片先在V-Rep中点击开始运行

再在VS中开始运行代码

观察到V-Rep中的ABB机器人开始仿真

则用V-Rep4.2.0与VS2017通过C++调用RemoteApi进行通信环境配置,远程操控机械臂成功

后续可以在此基础上用VS2017编程实现仿真了

 

你可能感兴趣的:(c++,lua)