9个版本
0.7.4 | 2023年12月3日 |
---|---|
0.7.3 | 2023年10月31日 |
0.6.0 |
|
0.4.0 | 2023年7月2日 |
#36 在 机器人 中
9.5MB
205K SLoC
gz
此crate包含以下crate,并导出它们。
- gz-msgs:Gazebo消息的Rust实现
- gz-transport:Gazebo传输的Rust包装器
Gazebo版本
此crate支持以下版本的Gazebo。
- Fortress
- Garden
- Harmonic
Gazebo版本可以通过功能标志(fortress
、garden
或harmonic
)指定。如果没有指定,则版本由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);
}