Slide 1

Slide 1 text

M5Stack x ROS2

Slide 2

Slide 2 text

M5Stack x ROS2 の前に

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

5 5 5cm 5cm M5Stackは、 EspressifのESP32に、 ディスプレイ、スピーカー、をつけて、 電源を樹脂のケースに入れたもの。

Slide 5

Slide 5 text

Q: M5Stack 小さいディスプレイとスピーカ があります。 何に使いますか? 何に使いますか?

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

プリン・ア・ラートの歴史 2017年10月ごろ 2018年4月ごろ

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

ROS2 library for Arduino ROS2 library for Arduino ROBOTISのKyung-Wan Ki (@OpusK )氏 が開発中のライブラリ https://github.com/ROBOTIS-GIT/ros2arduino/

Slide 15

Slide 15 text

Micro-XRCE-DDSを介して、 M5Stack(ESP32)とROS2が繋がる

Slide 16

Slide 16 text

$ git clone https://github.com/eProsima/Micro-XRCE-DDS-Agent.git $ cd Micro-XRCE-DDS-Agent $ mkdir build && cd build $ cmake -DTHIRDPARTY=ON -DCONFIG_UDP_TRANSPORT_MTU=4096 - $ mkdir -p ~/ros2_ws/src $ cd ~/ros2_ws $ wget https://raw.githubusercontent.com/ros2/ros2/release-latest/ros2.repos $ vcs import src < ros2.repos $ sudo rosdep init $ rosdep update $ rosdep install --from-paths src --ignore-src --rosdistro crystal -y --skip-keys "console_b $ cd ~/ros2_ws/ $ colcon build --symlink-install --packages-ignore qt_gui_cpp rqt_gui_cpp $ cmake -DTHIRDPARTY=ON -DCONFIG_UDP_TRANSPORT_MTU=4096 - DCONFIG_SERIAL_TRANSPORT_MTU=4096 .. $ sudo make install $ sudo ldconfig /usr/local/lib/

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

$ MicroXRCEAgent udp 2018 Agentの起動 ArduinoIDEでの書き込み void publishString_x(std_msgs::Int16* msg, void* arg) { (void)(arg); msg->data = IMU.ax *1000; } class StringPub : public ros2::Node { public: StringPub(): Node() { ros2::Publisher* publisher_x = ros2::Publisher* publisher_x = this->createPublisher("acc"); this->createWallFreq(PUBLISH_FREQUENCY, (ros2::CallbackFunc)publishString_x, NULL, publisher_x); }}; void setup() { ros2::init(&udp, AGENT_IP, AGENT_PORT); } void loop() { ros2::spin(&StringNode); }

Slide 19

Slide 19 text

M5Stack->wifi->ros2へpublish->rqt2 rqt_plot https://youtu.be/rx6fg5okXl4

Slide 20

Slide 20 text

動画の見た目一緒だけど、裏では ・通信がとても速い・動作軽量化 (vs ROS1 rosserial) ・ ESP(Arduino)複数つなげられる(vs ROS1 rosserial=1台) ・ roscore不要(但し、ros2はDDSのAgentServer起動にUbuntuは必要)

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

twitter :@anoken2017