M5Stack 사의 ESP32 계열 모듈에서 micro-ROS 샘플 확인
6103 단어 ROS2micro-ROSMicro-XRCE-DDSESP32
기사 개요
micro-ROS이 ROS2 Foxy 대응과 시기를 동일하게 하여 ESP32 MCU을 지원했기 때문에, M5Stack사제 ESP32계 모듈(M5StickC, M5Atom Lite, M5Atom Matrix)로 publisher 샘플을 동작시킬 때까지의 순서를 기재한다. 앞서 언급 한 3 개의 장치는 모두이 절차에서 생성 된 동일한 펌웨어를 동일한 방식으로 쓸 수 있으며 동일한 방식으로 작동했습니다.
또한이 기사의 내용은 기본적으로 micro-ROS 공식 사이트의 정보를 수집하여 필자가 새롭게 덧붙인 정보는 특별히 없다.
환경
기본 OS
ROS2
Micro-XRCE-DDS-Agent
CPU, RAM
환경 1
우분투 20.04(amd64)
Foxy
v1.3.0
Core i5-7200U, 4GB x 2
절차
이 절차에서는 마이크로 컴퓨터 측 펌웨어의 빌드까지를 커버하고, 동작 확인의 항에서 사용하고있는 PC 측의 Micro-XRCE-DDS-Agent의 빌드에 대해서는 끝난 것으로한다. 대략적인 단계는 다음과 같습니다.
Step1. 작업 공간 생성에서 펌웨어 구성
Step2. WiFi 연결 설정
Step3. 펌웨어 빌드 및 쓰기
Step4. 동작 확인
작업 공간 생성에서 펌웨어 구성
# ROS2の環境変数を読み込む.
$ source ros2_foxy/install/setup.bash
# 筆者なりのワークスペースディレクトリ命名規則
$ mkdir -p uros_ws/freertos__esp32__int32_publisher
$ cd uros_ws/freertos__esp32__int32_publisher
$ git clone -b $ROS_DISTRO https://github.com/micro-ROS/micro_ros_setup.git src/micro_ros_setup
$ rosdep update && rosdep install --from-path src --ignore-src -y
$ colcon build
$ source install/local_setup.bash
# 次のコマンドを実行すると大容量のファイル群(ESP32用ツールチェーンやESP-IDF)がダウンロードされるので,太い回線下での実行を強く推奨
$ ros2 run micro_ros_setup create_firmware_ws.sh freertos esp32
# [your local machine IP]の部分はDDS-Agentを起動するPCのIPアドレス.
# ポート番号は8888以外でも動くと思われるが,とりあえずデフォルトの8888を使用する.
# 具体的には -t udp -i 192.168.11.2 -p 8888 のように指定する.
$ ros2 run micro_ros_setup configure_firmware.sh int32_publisher -t udp -i [your local machine IP] -p 8888
WiFi 연결 설정
다음 명령을 실행하여 menuconfig로 들어갑니다. 여기에서는 WiFi 라우터에 연결하기위한 SSID와 암호를 설정합니다. 설정 파일에는 SSID와 패스워드가 평문으로 보존되므로 취급 주의.$ ros2 run micro_ros_setup build_firmware.sh menuconfig
기본 OS
ROS2
Micro-XRCE-DDS-Agent
CPU, RAM
환경 1
우분투 20.04(amd64)
Foxy
v1.3.0
Core i5-7200U, 4GB x 2
절차
이 절차에서는 마이크로 컴퓨터 측 펌웨어의 빌드까지를 커버하고, 동작 확인의 항에서 사용하고있는 PC 측의 Micro-XRCE-DDS-Agent의 빌드에 대해서는 끝난 것으로한다. 대략적인 단계는 다음과 같습니다.
Step1. 작업 공간 생성에서 펌웨어 구성
Step2. WiFi 연결 설정
Step3. 펌웨어 빌드 및 쓰기
Step4. 동작 확인
작업 공간 생성에서 펌웨어 구성
# ROS2の環境変数を読み込む.
$ source ros2_foxy/install/setup.bash
# 筆者なりのワークスペースディレクトリ命名規則
$ mkdir -p uros_ws/freertos__esp32__int32_publisher
$ cd uros_ws/freertos__esp32__int32_publisher
$ git clone -b $ROS_DISTRO https://github.com/micro-ROS/micro_ros_setup.git src/micro_ros_setup
$ rosdep update && rosdep install --from-path src --ignore-src -y
$ colcon build
$ source install/local_setup.bash
# 次のコマンドを実行すると大容量のファイル群(ESP32用ツールチェーンやESP-IDF)がダウンロードされるので,太い回線下での実行を強く推奨
$ ros2 run micro_ros_setup create_firmware_ws.sh freertos esp32
# [your local machine IP]の部分はDDS-Agentを起動するPCのIPアドレス.
# ポート番号は8888以外でも動くと思われるが,とりあえずデフォルトの8888を使用する.
# 具体的には -t udp -i 192.168.11.2 -p 8888 のように指定する.
$ ros2 run micro_ros_setup configure_firmware.sh int32_publisher -t udp -i [your local machine IP] -p 8888
WiFi 연결 설정
다음 명령을 실행하여 menuconfig로 들어갑니다. 여기에서는 WiFi 라우터에 연결하기위한 SSID와 암호를 설정합니다. 설정 파일에는 SSID와 패스워드가 평문으로 보존되므로 취급 주의.$ ros2 run micro_ros_setup build_firmware.sh menuconfig
# ROS2の環境変数を読み込む.
$ source ros2_foxy/install/setup.bash
# 筆者なりのワークスペースディレクトリ命名規則
$ mkdir -p uros_ws/freertos__esp32__int32_publisher
$ cd uros_ws/freertos__esp32__int32_publisher
$ git clone -b $ROS_DISTRO https://github.com/micro-ROS/micro_ros_setup.git src/micro_ros_setup
$ rosdep update && rosdep install --from-path src --ignore-src -y
$ colcon build
$ source install/local_setup.bash
# 次のコマンドを実行すると大容量のファイル群(ESP32用ツールチェーンやESP-IDF)がダウンロードされるので,太い回線下での実行を強く推奨
$ ros2 run micro_ros_setup create_firmware_ws.sh freertos esp32
# [your local machine IP]の部分はDDS-Agentを起動するPCのIPアドレス.
# ポート番号は8888以外でも動くと思われるが,とりあえずデフォルトの8888を使用する.
# 具体的には -t udp -i 192.168.11.2 -p 8888 のように指定する.
$ ros2 run micro_ros_setup configure_firmware.sh int32_publisher -t udp -i [your local machine IP] -p 8888
$ ros2 run micro_ros_setup build_firmware.sh menuconfig
micro-ROS Transport Settings에 들어간다.
WiFi Configuration으로 들어갑니다.
WiFi SSID와 WiFi Password를 설정 한 후 저장하고 메뉴를 빠져 나간다.
펌웨어 빌드 및 쓰기
# 次のコマンドを実行して [100%] Built target app のメッセージが出たらビルド成功と思われる
$ ros2 run micro_ros_setup build_firmware.sh
# USBケーブル(M5StickCやM5Atomならデバイス側はType-C)で接続して,次のコマンドでファームウェアを書き込む
$ ros2 run micro_ros_setup flash_firmware.sh
동작 확인
Micro-XRCE-DDS-Agent를 시작합니다.
# MicroXRCEAgentのバイナリがあるディレクトリで実行する
$ ./MicroXRCEAgent udp4 --port 8888
마이크로 컴퓨터를 재설정하고 조금 기다리면 WiFi 라우터에서 IP가 배포되고 세션이 설정됩니다.
다른 터미널을 시작하고 주제 이름을 확인하고 subscribe합니다.
$ source ros2_foxy/install/setup.bash
$ ros2 topic list
$ ros2 topic echo /freertos_int32_publisher
소감
publisher 샘플의 소스 코드를 들여다 보면 FreeRTOS 작업으로 구현되는 것 같습니다. 보다 실용적인 응용 프로그램으로 I/O를 처리하려면 ESP-IDF의 API를 두드릴 것입니다 (gpio_get_level 및 gpio_set_level 함수 등).
참고 자료
1. micro-ROS 공식 사이트
2. ESP32 Overview
3. Micro-XRCE-DDS-Agent
4. ESP-IDF Programming Guide
5. @MAEHARA_Keisuke의 포털 기사
Reference
이 문제에 관하여(M5Stack 사의 ESP32 계열 모듈에서 micro-ROS 샘플 확인), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/MAEHARA_Keisuke/items/fb94a9bd61db7564a413
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
1. micro-ROS 공식 사이트
2. ESP32 Overview
3. Micro-XRCE-DDS-Agent
4. ESP-IDF Programming Guide
5. @MAEHARA_Keisuke의 포털 기사
Reference
이 문제에 관하여(M5Stack 사의 ESP32 계열 모듈에서 micro-ROS 샘플 확인), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/MAEHARA_Keisuke/items/fb94a9bd61db7564a413텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)