Lancer le build via le wrapper du projet :
./scripts/pio_run.sh esp32-s3-devkitm-1Ce script prépare automatiquement l'environnement local du projet :
- création du venv
.venv-pio - installation de PlatformIO 6.x
- correction de compatibilité
empy==3.3.4pour ESP-IDF / micro-ROS - initialisation des submodules
components/micro_ros_espidf_componentetcomponents/SparkFun_Qwiic_OTOS_ESP32_Library - rebuild forcé de micro-ROS si les artefacts générés sont incomplets ou pas en transport
custom
La bibliothèque SparkFun OTOS reste utilisée depuis components/SparkFun_Qwiic_OTOS_ESP32_Library/.
Pour builder puis flasher :
./scripts/pio_run.sh esp32-s3-devkitm-1 -t uploadLe wrapper détecte automatiquement le port série USB de l'ESP32 si une seule carte compatible est branchée.
Si plusieurs ports sont présents, préciser le port :
./scripts/pio_run.sh esp32-s3-devkitm-1 -t upload --upload-port /dev/ttyACM0Le transport micro-ROS est forcé en custom via app-colcon.meta.
Sur l'ESP32-S3 de ce projet, le transport custom passe par l'USB série natif (/dev/ttyACM* côté hôte), avec un baudrate hôte fixé à 921600 dans include/config.h.
Si vous voulez régénérer entièrement l'environnement de build :
rm -rf .pio .venv-pio \
components/micro_ros_espidf_component/include \
components/micro_ros_espidf_component/libmicroros.a \
components/micro_ros_espidf_component/micro_ros_dev \
components/micro_ros_espidf_component/micro_ros_src \
components/micro_ros_espidf_component/esp32_toolchain.cmake
./scripts/pio_run.sh esp32-s3-devkitm-1Il faut changer le colcon.meta dans micro_ros :
{
"names": {
"tracetools": {
"cmake-args": [
"-DTRACETOOLS_DISABLED=ON",
"-DTRACETOOLS_STATUS_CHECKING_TOOL=OFF"
]
},
"rcl": {
"cmake-args": [
"-DRCL_COMMAND_LINE_ENABLED=OFF",
"-DRCL_LOGGING_ENABLED=OFF"
]
},
"rcutils": {
"cmake-args": [
"-DBUILD_SHARED=OFF",
"-DENABLE_TESTING=OFF",
"-DRCUTILS_NO_FILESYSTEM=ON",
"-DRCUTILS_NO_THREAD_SUPPORT=ON",
"-DRCUTILS_NO_64_ATOMIC=ON",
"-DRCUTILS_AVOID_DYNAMIC_ALLOCATION=ON"
]
},
"microxrcedds_client": {
"cmake-args": [
"-DUCLIENT_PIC=OFF",
"-DUCLIENT_PROFILE_DISCOVERY=ON",
"-DUCLIENT_PROFILE_UDP=ON",
"-DUCLIENT_PROFILE_CUSTOM_TRANSPORT=ON",
"-DUCLIENT_PROFILE_SERIAL=OFF",
"-DUCLIENT_PROFILE_TCP=OFF",
"-DUCLIENT_MIN_HEARTBEAT_TIME_INTERVAL=1"
]
},
"rmw_microxrcedds": {
"cmake-args": [
"-DRMW_UXRCE_XML_BUFFER_LENGTH=400",
"-DRMW_UXRCE_TRANSPORT=udp",
"-DRMW_UXRCE_MAX_NODES=1",
"-DRMW_UXRCE_MAX_PUBLISHERS=8",
"-DRMW_UXRCE_MAX_SUBSCRIPTIONS=2",
"-DRMW_UXRCE_MAX_SERVICES=6",
"-DRMW_UXRCE_MAX_CLIENTS=1",
"-DRMW_UXRCE_MAX_HISTORY=4"
]
},
"embeddedrtps": {
"cmake-args": [
"-DERTPS_MAX_PUBLISHERS=8",
"-DERTPS_MAX_SUBSCRIPTIONS=2",
"-DERTPS_MAX_SERVICES=6",
"-DERTPS_MAX_CLIENTS=1",
"-DERTPS_MAX_HISTORY=10"
]
}
}
}