1
0

More than 3 years have passed since last update.

micro-ROSチュートリアル|ホストPC内 ping-pong

Last updated at Posted at 2020-07-12

micro-ROS のチュートリアルを進め、ホスト PC と STM マイコン間で ping-pong をするまでの記事です。
なるべく docker を利用していますので、手っ取り早く sample を動かしたい方向けです。
詳細は公式のチュートリアル(参考[1])をご覧ください。

記事は 3 つに分けて投稿します。本記事は 1 記事目になります。

  1. [ping-pong] ホストPC内 ping-pong
  2. [publisher] ホストPC・マイコン間 pubsub
  3. [ping-pong] ホストPC・マイコン間 ping-pong

環境

ホスト PC:Ubuntu 18.04.4 LTS
対象ボード:STM32 Nucleo-144 開発 ボード NUCLEO-F767ZI

docker を使うので、他の環境でも動くかと思います。
nucleo-144 は比較的お手頃で、ポーティングしている方がいた(参考[2])ので選んでいます。

サンプル実行

エージェントを経由して、ホスト内の2つのping-pongプログラムがメッセージを飛ばし合うサンプルを実行します。
ここでの作業は全てdockerに入っているので、dockerを実行するだけです。

エージェントの起動

$ docker run -it --rm --net=host --name uros_agent microros/micro-ros-agent:dashing udp4 --port 8888

別ターミナルでping_pong(uros_demos_1)を起動

$ docker run -it --rm --net=host --name uros_demos_1 microros/micro-ros-demos:dashing ros2 run micro_ros_demos_rcl ping_pong

別ターミナルでping_pong(uros_demos_2)を起動

$ docker run -it --rm --net=host --name uros_demos_2 microros/micro-ros-demos:dashing ros2 run micro_ros_demos_rcl ping_pong

実行結果

host_ping_pong.gif

ping_pongが起動後、エージェントの標準出力に establish_session が表示され、接続ができていることがわかります。
また、2 台のping_pongの実行後はそれぞれがpingを送り、受け取ったpingに対してpongを送り返しています。

なお、ここで使用しているサンプルでは自分の飛ばしたpingメッセージには反応しないようになっています。

参考

  1. micro-ROS 公式
  2. github | micro-ROS_Demo_on_STM32_nucleo-f767zi
1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0