#zmq #api-bindings #coppelia-sim

coppeliasim_zmq_remote_api

CoppeliaSim的ZMQ客户端

3个稳定版本

4.7.0 2024年6月22日
4.6.1 2023年10月20日

#45 in 机器人学

自定义许可

475KB
7K SLoC

Rust 4.5K SLoC // 0.0% comments Python 2.5K SLoC // 0.0% comments

example workflow

Rust zmqRemoteApi

CoppeliaSim的Rust ZeroMQ远程API

运行测试

cargo test

运行示例:确保打开正确的CoppeliaSim场景并运行cargo命令

cargo run --example=simple_test

或许您想查看ZMQ通信日志。有两种日志级别

  • 级别1:调试,调试级别您将看到JSON格式的请求
  • 级别2:跟踪,跟踪级别您将看到JSON和字节格式的请求
export RUST_LOG="trace"; cargo run --example=simple_test

将C++客户端移植到Rust客户端

RemoteAPIObjects.h有3750行代码,所以为了移植所有功能,我创建了一种c_transpiler

C++客户端与Rust客户端之间的差异

目前遇到的唯一差异是在

std::vector<uint8_t> getStringSignal(std::string signalName);

Rust中的函数返回一个std::String。我还没有观察到任何函数返回字节块的示例。

// Rust function assing 
get_string_signal(signal_name:String)->String

入门指南

创建一个新的Rust项目

cargo new new_project

您可以在cargo.toml中使用git添加此crate

# the branch is the coppelia version
zmq_remote_api = { git = "https://github.com/samuel-cavalcanti/rust_zmqRemoteApi", branch = "CoppeliaSim_4.5.1"}

查看一个简单的示例,了解如何使用此crate。

依赖关系

~5–15MB
~178K SLoC