8个不稳定版本 (3个破坏性更新)
0.3.0 | 2024年7月30日 |
---|---|
0.2.4 | 2024年7月29日 |
0.2.2 | 2024年5月27日 |
0.1.0 | 2024年5月16日 |
0.0.0 | 2024年4月24日 |
#2 in #sonar
每月下载量 491次
71KB
1.5K SLoC
🦀 Ping库 🔊
声纳,或 Sound Navigation And Ranging devices,通过发射声波并测量其反射来检测周围障碍物和物体。
声纳和其他声学设备对于海洋机器人(ROVs、AUVs、船只等)至关重要,因为它们可以在视场受限时提供障碍物检测和距离估计。具备这些功能的机器人能够实现精确导航、目标识别,并在水下环境中进行更高效地探索。
开源的 Ping协议 允许精确控制类似Blue Robotics的声纳设备,便于在自定义应用程序中进行集成。
此库提供对 ping 系列设备所有功能的访问,并享有Rust开发生态系统的所有优势!
以下是一个最小示例
use bluerobotics_ping::{
device::{Ping1D, PingDevice},
error::PingError,
};
use tokio_serial::{SerialPort, SerialPortBuilderExt};
#[tokio::main]
async fn main() -> Result<(), PingError> {
let port = tokio_serial::new("/dev/ttyUSB0", 115200).open_native_async()?;
port.clear(tokio_serial::ClearBuffer::All)?;
let ping1d = Ping1D::new(port);
println!("{:#?}", ping1d.device_information().await?);
println!("{:#?}", ping1d.general_info().await?);
println!("{:#?}", ping1d.distance().await?);
Ok(())
}
今天尝试 ping!
📖 文档
- Ping回声测深仪
- Ping360 扫描成像声纳
- 📘 理解和用法指南
- 🔧 BlueROV2 安装指南
- 🦀 Rust入门 Rust
- 🌊 BlueOS入门 BlueOS
- 📚 Ping 库 文档。
- 📋 在示例文件夹中查看快速入门指南
🐳 如何使用此crate
要利用 Ping1D 或 Ping360 类型设备的性能,请实例化此库提供的相应对象。
Ping 具备与实现 异步 I/O 特性 的任何类型层协同工作的能力。当前示例专注于串行和 UDP,这些是来自 Blue Robotics 的官方支持连接方法。
这两种设备类型都有其自己的方法集,如 Ping 协议 规范所定义的。
查看完整的方法集
🐬 运行示例使用
cargo run --example ping_1d -- --serial-port /dev/ttyUSB0
结果
终端输出
Parsing user provided values...
Creating your Ping 1D device
Testing set/get device id: 9
Testing set/get device id: 8
Testing set/get device id: 7
Testing set/get device id: 6
Testing set/get device id: 5
Testing set/get device id: 4
Testing set/get device id: 3
Testing set/get device id: 2
Testing set/get device id: 1
Set gain to auto: true
Test set & get with a new speed of sound: 343.0 m/s
Test set & get with default speed of sound: 1500.0 m/s
Protocol version is: 1.0.0
Device id is: 1
Gain setting is: 6
Processor temperature is: 42.63 °C
Voltage at 5V lane is: 5.006 V
The distance to target is: 4538 mm
Waiting for 30 profiles...
Received 30 profiles
Turning-off the continuous messages stream from Ping1D
⭐ 技巧
对于通过 UDP 的外部使用,建议使用 bridges 将您的串行设备共享到网络上。详细信息请见 此处。
设置主机和客户端
在主机 📡(ping 设备连接的地方)
bridges --port /dev/ttyUSB0:3000000 -u 0.0.0.0:8080 --no-udp-disconnection --abr
在客户端 💻
cargo run --example ping_1d -- --udp-address 192.168.0.191 --udp-port 8080
享受使用 ping-rs 的探索之旅! 🌊
依赖项
~7–17MB
~220K SLoC