本文主要介绍如何将CoppeliaSim与Python联合起来进行仿真,

针对于他们直接的联合控制进行配置。


一、The B0-based remote API

这是官方对两个API的说明:
在这里插入图片描述
链接:https://www.coppeliarobotics.com/helpFiles/en/remoteApiOverview.htm

基于B0的远程API:这表示远程API的第二个版本。 它基于BlueZero中间件及其CoppeliaSim的接口插件。 与传统的远程API相比,它更易于使用且更具灵活性,最重要的是,它易于扩展。 目前,它支持以下语言:C ++,Java,Python,Matlab和Lua。

旧版远程API(或简称为远程API):这表示远程API的第一个版本。 与基于B0的远程API相比,它相对较轻并且具有更少的依赖性。 但是,它不那么直观,也不灵活,并且很难扩展。 它支持以下语言:C / C ++,Java,Python,Matlab,Octave和Lua。

这里说明一下为什么要用新版的API
1 使用旧版API时,会发现sim库中不存在某些函数。例如:根据物品handle获取物品的名称的函数。
2 新库有些函数能比旧库返回更多的参数。


二、具体操作

在这里插入图片描述
链接:https://www.coppeliarobotics.com/helpFiles/en/b0RemoteApiOverview.htm

分为客户端服务端两部分,客户端就是我们使用的外部应用,这里使用Python进行控制;客户端就是CoppeliaSim

2.1 服务端

在这里插入图片描述
链接:https://www.coppeliarobotics.com/helpFiles/en/b0RemoteApiServerSide.htm

  • 方式一:
    启动附加脚本simAddOnScript-b0RemoteApiServer.lua:您可以在菜单栏[Add-ons-> B0RemoteApiServer]中手动启动它,也可以在CoppeliaSim启动时自动启动它(在这种情况下,将附加组件重命名为 simAddOnScript_b0RemoteApiServer.lua)。 附加脚本为所有场景提供了基于B0的远程API功能,而不会中断。

  • 方式二:
    将模型Model browser / tools / B0 remote Api server.ttm拖放到特定场景中:这样,基于B0的远程API功能将仅适用于该特定场景。

我们采用方式二:
在这里插入图片描述

拖进场景内,会自动链接,暂时先不管。

按下图进行操作,点开b0RemoteApiServer设置界面,记住节点名和通道名。
在这里插入图片描述

2.2 客户端

在这里插入图片描述
链接:https://www.coppeliarobotics.com/helpFiles/en/b0RemoteApiClientSide.htm

  • Python安装MessagePack:pip install msgpack
  • 复制python文件到项目目录下:官方文档内的路径有问题,真实路径为:安装目录\CoppeliaRobotics\CoppeliaSimEdu\programming\b0RemoteApiBindings\python
    在这里插入图片描述
  • 复制依赖文件到项目目录下:依赖路径为安装路径\CoppeliaRobotics\CoppeliaSimEdu
    在这里插入图片描述
    注意:以上的文件与我们的项目场景文件.ttm都是在一个目录下。

2.3 连接

启动服务端。(在2.1步骤中,只要将B0RemotApiServer拖入场景内就会自动启动)
在这里插入图片描述
修改Python测试文件,打开testing.py,修改节点名和通道名(上面刚刚记录过的)。
在这里插入图片描述
运行testing.py:
在这里插入图片描述
如果出现connected,说明连接成功。

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐