👻

MyCobotをRustで動かしてみた

1 min read

MyCobotのRustクレート

随分と前にMyCobotを買ったにも関わらず、眠らせてしまっていたのでRustを使って動かしてみました。
MyCobotとは?

mycobot という名前のクレートで公開しています。

https://github.com/neka-nat/mycobot-rs
https://crates.io/crates/mycobot

こんな感じで動いてます。
send_coords

基本的にはオリジナルのpythonで作られたシリアル通信用のAPI(pymycobot)をRustに移植した形になっていて、pymycobotとほとんど同じように使えると思います。
関節を動かすプログラムは以下のように書くことができます。

use mycobot::*;
use std::io;

pub fn main() -> Result<(), io::Error> {
    let mut mycobot = MyCobotSerialOperator::new("/dev/ttyUSB0", 115200);
    mycobot.send_angles(&vec![0.0, 0.0, 0.0, 0.0, 30.0, 0.0], 50)?;
    Ok(())
}

動かし方

まずは以下を参考にMyCobot側の設定を済ませておいて下さい。

https://zenn.dev/karaage0703/books/3be6bad93b0c8e/viewer/3b3b5a

手っ取り早く試すには上のリポジトリを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

ログインするとコメントできます