👻
myCobotをRustで動かしてみた
myCobotのRustクレート
随分と前にmyCobotを買ったにも関わらず、眠らせてしまっていたのでRustを使って動かしてみました。
myCobotとは?
mycobot という名前のクレートで公開しています。
こんな感じで動いてます。
基本的にはオリジナルのpythonで作られたシリアル通信用のAPI(pymycobot)をRustに移植した形になっていて、pymycobotとほとんど同じように使えると思います。
関節を動かすプログラムは以下のように書くことができます。
use mycobot::*;
pub fn main() -> Result<()> {
let mut mycobot = MyCobotSerialOperator::new("/dev/ttyUSB0", 115200);
mycobot.send_angles(&[0.0, 0.0, 0.0, 0.0, 30.0, 0.0], 50)?;
Ok(())
}
動かし方
まずは以下を参考にmyCobot側の設定を済ませておいて下さい。
手っ取り早く試すには上のリポジトリをgit clone
してexampleを実行するのが速いと思います。
git clone https://github.com/neka-nat/mycobot-rs.git
cd mycobot-rs
myCobotとPCをUSBでつなぎ、デバイス名を指定して以下のように実行します。
cargo run --release --example send_angles /dev/ttyUSB0
LEDが赤に代わり、アームが動き出せば成功です。
最後に
ロボット界隈でも脚光を浴びつつあるRustでmyCobotのAPIを実装しました。
Rustを使い始めてまだまだ慣れないですが、rust-analyzerやcargoなどの開発ツールがすごく使いやすく書いてて楽しかったので、いろいろこれからも作っていきたいと思います。
Discussion