Git Product home page Git Product logo

m5_ros2_multi_ultrasonic's Introduction

m5_ros2_multi_ultrasonic

概要

M5Atomとmicro-ROSを使って、複数の超音波センサー情報を配信するROS2プログラムです。


動作確認環境

  • PlatformIOを使ったビルド環境、micro-ROSエージェント実行環境
    • PC: TRIGKEY Green G5
    • OS: Ubuntu 22.04.3
    • ROS2 : Humble
    • Software: PlatformIO, VSCode, docker

  • micro-ROSクライアント実行環境と周辺ユニット
    • M5Atom Lite
    • M5Stack用Port.A I2C拡張ハブユニット(PaHUB2 Unit)
    • M5Stack用超音波測距ユニット I2C 3つ

  • micro-ROSクライアントとmicro-ROSエージェントの接続方法
    • USBケーブルを使ったシリアル通信


micro-ROSエージェントを起動方法(docker利用時)

シリアル通信のデバイスファイルを確認

$ ls -l /dev/ttyACM* /dev/ttyUSB*
ls: '/dev/ttyACM*' にアクセスできません: そのようなファイルやディレクトリはありません
crw-rw---- 1 root dialout 188, 0  2月 23 20:38  /dev/ttyUSB0

M5Atomが /dev/ttyUSB0 で接続している場合、下記コマンドでmicro-ROSエージェント起動。

docker run -it --rm -v /dev:/dev -v /dev/shm:/dev/shm --privileged --net=host microros/micro-ros-agent:$ROS_DISTRO serial --dev  /dev/ttyUSB0 -v6

起動順序

エージェント → クライアントの順で起動する必要があります。
エージェントを起動したら、M5Atomを一度リセットすることでエージェント → クライアントの順になります。

動作確認

正しく起動できたら、/ultrasonic0, /ultrasonic1, /ultrasonic2というトピックが配信されます。

$ ros2 topic list
省略
/ultrasonic0
/ultrasonic1
/ultrasonic2

Topicの内容

$ ros2 topic echo /ultrasonic0
header:
  stamp:
    sec: 0
    nanosec: 0
  frame_id: /ultrasonic0
radiation_type: 0
field_of_view: 0.5235999822616577
min_range: 0.019999999552965164
max_range: 4.5
range: 0.036396000534296036

Topicの送信頻度

$ ros2 topic hz /ultrasonic0
average rate: 2.381
	min: 0.420s max: 0.420s std dev: 0.00011s window: 4
average rate: 2.381
	min: 0.420s max: 0.420s std dev: 0.00020s window: 7

注意

  • M5unified を使ってなるべく機種に依存しないように作っていますが、M5Atom Lite 以外の対応予定はありません。
    • 例: M5AtomS3, M5AtomS3 Liteの場合、内蔵I2Cを使い、シリアル通信はUSBSerialを使う必要があります。また、M5AtomS3は動作しますが遅いです。

リンク

micro-ROS for PlatformIO
micro-ROS for Arduinoのサンプル
micro-ROS for PlatformIOにはサンプルが少ないので、こちらが参考になる。micro-ROS for PlatformIOで使うには微妙に修正が必要。

M5ATOM Liteのドキュメント
PaHUB2のドキュメント
M5Stack用超音波測距ユニットのドキュメント

sensor_msgs/Range Message

m5_ros2_multi_ultrasonic's People

Contributors

sato-susumu avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.