9个版本

0.7.4 2023年12月3日
0.7.3 2023年10月31日
0.6.0 2023年9月30日
0.4.0 2023年7月2日

#36机器人

Apache-2.0

9.5MB
205K SLoC

Rust 173K SLoC // 0.1% comments C++ 31K SLoC // 0.2% comments Bazel 1K SLoC // 0.1% comments Python 313 SLoC // 0.4% comments Shell 72 SLoC // 0.5% comments

gz

crates.io

此crate包含以下crate,并导出它们。

Gazebo版本

此crate支持以下版本的Gazebo。

  • Fortress
  • Garden
  • Harmonic

Gazebo版本可以通过功能标志(fortressgardenharmonic)指定。如果没有指定,则版本由pkg-config确定。当安装多个版本时,较新版本优先。如果想要使用较旧版本,请设置上述功能标志。

[dependencies]
gz = { version = "0.7.4", features = ["garden"] }

依赖

  • Gazebo
    • gz-msgs
    • gz-transport
  • pkg-config

示例

示例:发布

use gz::{msgs::stringmsg::StringMsg, transport::Node};

let mut node = Node::new().unwrap();
let mut publisher = node.advertise("topic_name").unwrap();

let topic = StringMsg {
    data: "Hello, world!".to_string(),
    ..Default::default()
};

assert!(publisher.publish(&topic));

示例:订阅(回调)

use gz::{msgs::stringmsg::StringMsg, transport::Node};

let mut node = Node::new().unwrap();
node.subscribe("topic_name", |msg: StringMsg| {
    println!("Subscribed: {}", msg.data);
});

gz::transport::wait_for_shutdown();

示例:订阅(通道)

subscribe_channel也使用回调内部。然而,当涉及所有权时,subscribe_channel可能更容易使用。

use gz::{msgs::stringmsg::StringMsg, transport::Node};

let mut node = Node::new().unwrap();
let rx = node.subscribe_channel::<StringMsg>("topic_name", 10).unwrap();

for msg in rx {
    println!("Received: {}", msg.data);
}

依赖