OpenEmber ๆฏไธไธช้ขๅๆบๅจไบบไธๆบ่ฝ่ฎพๅค็่ฟ่กๆถ๏ผRuntime๏ผ่ฝฏไปถๆกๆถ๏ผๅฎ่ฟ่กๅจ Linux ็ณป็ปไนไธ๏ผๆไพ็ปไธ็้ไฟก้ชจๆถใ็กฌไปถๆฝ่ฑกๅฑ๏ผHAL๏ผไธ่็น่ฟ่กๆบๅถ๏ผๅธฎๅฉๅผๅ่ ้ซๆๆๅปบๅคๆ็ๅตๅ ฅๅผๆบ่ฝ็ณป็ปใ
OpenEmber ็ๆ ธๅฟไฝฟ็จ C/C++ ็ผๅ๏ผ้็จ Kconfig + CMake + FetchContent ๆๅปบ็ณป็ปใๅ ROS2 ็ฑปไผผ๏ผOpenEmber ไนๆฏๅๅธๅผๆถๆ๏ผ่็นๆจกๅๅฏ้่ฟโๅๅธ-่ฎข้ ๏ผpub/sub๏ผโๆบๅถ่ฟ่กๆถๆฏ้ไฟกใ่ฏฅๆกๆถๅ ๅซ่ฎพๅค็ซฏๅบ็จ็จๅบๅธธ่ง็ๆจกๅ๏ผๅ ๆฌๆถๆฏ้ไฟกใ่ฎพๅค็ฎก็ใๆฐๆฎ้้ใๅ่ฎฎ่งฃๆใ็ถๆ็ๆงใ้ ็ฝฎ็ฎก็ใๆฅๅฟ่ฎฐๅฝใ่ฟ็จๅ็บงใๅพๅฝข็้ข็ญๅ่ฝๆจกๅใๆจกๅไน้ด้็จๆถๆฏ้ไฟกๆบๅถ่ฟ่กๅๆญฅ๏ผๅคฉ็ๆฏๆๅๅธๅผ้จ็ฝฒ๏ผไนๅฐฑๆฏ่ฏด๏ผๅ่ฝๆจกๅๅฏไปฅ้จ็ฝฒๅจไธๅ็็กฌไปถๅนณๅฐ๏ผๅ ๆฌๅผๆๅคๆ ธๅนณๅฐ๏ผใ
OpenEmber ๆฅๆ่ฏๅฅฝ็ๆกๆถ่ฎพ่ฎกๅๆง่ฝ๏ผๅฏไปฅไฝไธบๆบๅจไบบใๆ ไบบๆบใๆบ่ฝ่ฎพๅคใ่พน็ผ่ฎก็ฎ็ใๅทฅไธๆงๅถๅจใๅฎ้ฒ็ณป็ปใๅฎถๅบญๅฉๆ็ญไบงๅ็่ฝฏไปถ่ตท็นใไฝ ่ฟๅฏไปฅไฝฟ็จ OpenEmber ๅฎ็ฐไธๅฅ่ชๅทฑ็ AI Agent๏ผ็ฑปไผผไบ OpenClaw๏ผ๏ผ็ฑไบ OpenEmber ้ๆไบ็กฌไปถๆไฝๆฅๅฃ๏ผๅ ๆฌไผ ๆๅจใๆง่กๅจใ้ไฟกๅ่ฎฎ็ญ๏ผ๏ผๅ ๆญคๅฎ็ๅ่ฝๅฎ้ ไธๅฏไปฅๅๅฐๆดๅผบ๏ผๆฏไธๅฅ Embodied Agent Runtime ๆกๆถใ
ๆไปฌๆพ็ป็จ Linux ็ณป็ปๅ่ฟ่ฎธๅคๅตๅ ฅๅผ/็ฉ่็ฝ้กน็ฎ๏ผๅ ๆฌๅทฅไธๆงๅถ่ฎพๅคใ้ไฟก็ป็ซฏใๆฐๆฎ้้ไปชใ้ซ็ฒพไผ ๆๅจใ็ฉ่็ฝใ่ฝฆ่็ฝ็ญใๅจๅคๆฌก้ๅคๅผๅไนๅ๏ผ่งๅพๆๅฟ ่ฆๅฐไธไบ้็จ็ๅ่ฝๆจกๅๆฝ่ฑกๅบๆฅ๏ผๆนไพฟๅคงๅฎถๅค็จ๏ผๅ ้ๅผๅๆดๅคๆ่ถฃ็้กน็ฎใๅ ๆญค๏ผๆไปฌๅๅปบไบ OpenEmber ้กน็ฎใ
OpenEmber ไธๅชๆฏ Robot Application Framework๏ผ่ๆฏไธไธช้็จ็ Middleware Framework๏ผ็่ณๆฏ Next-generation Intelligent Edge Middlewareใ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Applications โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ launch / demos / tools / robot nodes / apps โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Modules โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๆไปถๅฑ๏ผๅ่ฝๆฉๅฑๅฑ๏ผๅฏ่ฃๅช๏ผๅฏ้ๅฏ็จ๏ผ โ
โ โ
โ transport backends: nng / zmq / lcm โ
โ drivers: imu / lidar / motor โ
โ algorithms: slam / navigation โ
โ middleware adaptors: fastdds / ros bridge โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Components โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๅบ็ก่ฎพๆฝ็ปไปถๅฑ๏ผ่ทจๆจกๅๅค็จ่ฝๅ๏ผ โ
โ โ
โ logging โ
โ serialization โ
โ container (ringbuffer / queue) โ
โ database (sqlite wrapper) โ
โ transport abstraction โ
โ config parser โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Core โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๆกๆถ่ฟ่กๆ ธๅฟๆบๅถ๏ผmiddleware runtime๏ผ โ
โ โ
โ node lifecycle โ
โ executor scheduler โ
โ topic manager โ
โ parameter system โ
โ service framework โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Platform โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ OS abstraction + HAL abstraction โ
โ โ
โ platform/os โ
โ thread / mutex / timer / socket โ
โ โ
โ platform/hal โ
โ uart / spi / can / gpio / i2c โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Operating System โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Linux / RTOS / Windows / macOS๏ผๆชๆฅๆฏๆ๏ผ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ-
ไธไธชไปๅบไปฅ ็ฐไปฃ C++ ไธบไธป็บฟๅฎ็ฐๆ ธๅฟ่ฝๅ๏ผๅนถ้่ฟ็จณๅฎ็ C ABI ่พน็ๆไพโๆ้ๅฏนๆง็ C ๆฏๆโ๏ผไพๅฆ MISRA ๅ้ๅบๆฏ็ๆฅๅ ฅๆจกๆฟ๏ผใ
API ๅ ผๅฎน็ญ้ฎ้ข้่ฟๆฌไปๅบ็ๅทฅ็จ็ปๆๅๅทฅๅ ท้พ่ฎพ่ฎกๆฅ่งฃๅณ๏ผไพๅฆ้กถๅฑ็ CMake ่ฎพ่ฎก๏ผไป ็คบๆ๏ผ๏ผ
option(OPENEMBER_ENABLE_CPP "Enable C++ runtime" ON) option(OPENEMBER_ENABLE_C_ADAPTER "Enable C ABI adapter" OFF)
ๅฝ็จๆท้ๆฉ โC ๆฅๅ ฅๆจกๆฟโ ๆถ๏ผ้ไฟก้ชจๆถ/transport ็ญ่ฝๅๅชๅ ่ฎธ้ๆฉ C ๅฏ็ดๆฅ้พๆฅ็ๅฎ็ฐ๏ผไพๅฆ NNG/LCM/libzmq ็ C ไพงๆฅๅฃ๏ผ๏ผ้ฟๅ ็ปดๆคโๅไธป็บฟๅๆๅฎ็ฐโ็ๅคๆๅบฆใ
-
ๆฏๆไธ็งๅผๅๆนๅผ๏ผ
- ็จๆทๅฏไปฅ็ดๆฅ clone ๆฌไปๅบ๏ผๆทปๅ ่ชๅทฑ็ๅ่ฝๆจกๅ๏ผไฝๅ็ปญๅ็บง OpenEmber ๆกๆถๆฏ่พ้บป็ฆ๏ผ
- ไฝฟ็จ่ๆๆถๅทฅๅ
ท
ember new็ๆๅนฒๅ็ OpenEmber ๅทฅ็จ๏ผ็จๆท็ดๆฅๅจ่ฏฅๆจกๆฟๅทฅ็จไธ่ฟ่กๅผๅ๏ผ - ็ดๆฅ็ๆ OpenEmber ็ๅบๆไปถ๏ผๅนถๅฎ่ฃ ๅฐ็ณป็ป๏ผ็จๆทๅ็ปญๅฏไปฅ็ดๆฅ้่ฟ CMake ๅผ็จ OpenEmber ๅบ๏ผ็ถๅๅ็ฌๅผๅๅ็ปดๆค่ชๅทฑ็ๆจกๅ/่็นไปฃ็ ใ
-
ไพ่ตๅบ็ฎก็๏ผๆฏๆ FetchContent / Vendor / System ไธ็งๆจกๅผ๏ผ้่ฟ
OPENEMBER_THIRD_PARTY_MODEๆงๅถ๏ผ๏ผไปฅไพฟๅบๅฎ็ๆฌใๅฏไธ่ฝฝใๅฏๅ็บงใFETCH๏ผๆๅปบๆถไธ่ฝฝๅบๅฎ็ๆฌๅฐๆๅปบ็ฎๅฝVENDOR๏ผไฝฟ็จไปๅบๅthird_party/็ๅทฒ่ฝๅบ็ๆฌSYSTEM๏ผไผๅ ไฝฟ็จ็ณป็ปๅทฒๅฎ่ฃ ไพ่ต๏ผYocto/ไผไธๅบๆฏ๏ผ
-
้่ฟๆไปถๅ่ฎพ่ฎก๏ผๅฎ็ฐๅบๅฑไพ่ตๅบ็ๅๆข๏ผไพๅฆๆฏๆ pub-sub ็้ไฟก้ชจๆถ๏ผๅบๅฑๅฏ่ฝๆฏ ZeroMQใLCM ๆ NNG๏ผ้่ฆไฟ่ฏ API ไธๅ๏ผ้่ฟ้ ็ฝฎๆนๅๅบๅฑ่ฐ็จใ
openember/
โ
โโโ apps/
โ โโโ system/ # launch_managerใlog_service ็ญ
โ โโโ services/ # web_dashboardใota_update_service ็ญ
โ โโโ references/ # ๅ่ๅฎ็ฐ่็น
โ โโโ examples/ # hello_nodeใpubsub ็คบไพ็ญ
โ
โโโ modules/
โ โโโ transport/
โ โ โโโ nng/
โ โ โโโ zmq/
โ โ โโโ lcm/
โ โ
โ โโโ drivers/
โ โ โโโ imu/
โ โ โโโ lidar/
โ โ โโโ motor/
โ โ
โ โโโ algorithms/
โ
โโโ components/
โ โโโ logging/
โ โโโ container/
โ โโโ database/
โ โโโ serialization/
โ โโโ transport/
โ
โโโ core/
โ โโโ inc/ # ๆกๆถๅ
ฌๅ
ฑๅคดๆไปถ๏ผ็ๆ้กนไธ openember.h ็ญ๏ผ
โ
โโโ platform/
โ โโโ os/
โ โ โโโ linux/
โ โ
โ โโโ hal/
โ โโโ uart/
โ โโโ spi/
โ โโโ can/
โ โโโ gpio/
โ
โโโ third_party/
โโโ vendor/
โโโ configs/
โโโ tools/OpenEmber v0.1 ๅฐฑ้็จ๏ผ
- Fetch ้ป่ฎค
- Vendor ๅฏ้
- System ๅฏ้
- Transport ๆไปถๅ
- ๆ ธๅฟๅฑ้ถไพ่ต
่ฟไผ่ฎฉ้กน็ฎไธๅผๅงๅฐฑๅ ทๅคๅทฅไธ็บงๆฐ่ดจใ
| ่็นๅ็งฐ | ๅ็ฑป | ่ฏดๆ |
|---|---|---|
system/launch_manager |
system | ๅฏๅจ/็ผๆๅ ฅๅฃ๏ผๅ Workflow๏ผ๏ผ่ด่ดฃๆ่ตทๅๅญ่็นไธ่ฟ่กๆถๅ่ฐใ |
system/log_service |
system | ๆฅๅฟๆๅก่็น๏ผ่ด่ดฃๆฅๅฟ้้ไธๆไน ๅใ |
system/config_service |
system | ้ ็ฝฎๆๅก่็น๏ผ่ด่ดฃ้ ็ฝฎๅญๅไธไธๅใ |
system/device_manager |
system | ่ฎพๅค็ฎก็่็น๏ผ่ด่ดฃ่ฎพๅคๆณจๅใ็ถๆ็ฎก็ไธ็ๅฝๅจๆๅ่ฐใ |
system/health_monitor |
system | ๅฅๅบท็ๆง่็น๏ผ่ด่ดฃ็ถๆๅทกๆฃไธๅ่ญฆใ |
services/ota_update_service |
services | OTA ๆๅก่็น๏ผ่ด่ดฃๅจ็บฟ/็ฆป็บฟๅ็บงๆต็จใ |
services/web_dashboard |
services | Web ไปช่กจ็ๆๅก๏ผๆไพ่ฟ่ก็ถๆๅฏ่งๅไธไบคไบๅ ฅๅฃใ |
examples/hello_node |
examples | ๆๅฐ็คบไพ่็น๏ผ็จไบ้ช่ฏ่ฟ่ก็ฏๅขไธๆฅๅฃ่ฐ็จใ |
references/sensor_data_reference |
references | ๅ่ๅฎ็ฐ่็น๏ผๆผ็คบๆฐๆฎ้้่็น็้็จ็ป็ปๆนๅผใ |
- ้ซ้ขๆฐๆฎ๏ผiceoryx
- ่็นๆงๅถ้ไฟก๏ผZeroMQ / LCM / NNG
- ๅ ถไป๏ผRPC
- ็ปไธๆฝ่ฑกๅฑ
See TODO
OpenEmber ้็จไบ้่ฆ้ฟๆ่ฟ่ก็ๆบ่ฝ่ฎพๅค๏ผ่ฟไบ่ฎพๅค้ๅธธๆ่ฟไบ็น็น๏ผ7ร24 ่ฟ่ก๏ผๆ็ถๆใๆ้ ็ฝฎ๏ผๆจกๅ้ฟๆๅจ็บฟ๏ผ้่ฆ่ฟ็จ่ฟ็ปด๏ผๅ็บงใ็ๆงใๆฅๅฟๆฏโ็ฎๅพๅฟซโๆด้่ฆใไพๅฆๆ ไบบๅผๅฎ็ป็ซฏ๏ผๆด่กฃ / ๅ ็ต / ๅจ็ฉ๏ผใๅทฅไธ็ฝๅ ณ๏ผModbus / CAN / OPC UA ่ๅ๏ผ็ญใ
ไธ้ขๆฏไธไบๅฎขๆทๆกไพ๏ผ
- ๅทฅไธ่ฎพๅคๆงๅถๅจ
- ่ฝฎๅผ/่ ฟ่ถณๅผๆบๅจไบบ
- ๆบ่ฝไผ ๆๅจ๏ผๆฟๅ ้ท่พพ๏ผ
- ่พน็ผ AI ่ฎพๅค
- ๆบ่ฝๅๅกๆบ
- ๆบ่ฝๅฎถๅฑ ๆงๅถๅจ
- ็ฏไฟๆฐ้ไปช
- ่ชๅฉๆด่ฝฆๆบ
- ้ฃๅ ่ชๅจ็งฐ้่ฎก่ดนๆงๅถๅจ
- ๆบ่ฝ่ๅคฉๆบๅจไบบ๏ผAI Agent๏ผ
- ๆบ่ฝๅๅพๅๆถๆบ
ๅฆๅค๏ผOpenEmber ๅฏไฝไธบ ROS ็โ็กฌไปถ้็ฆปๅฑโ๏ผROS ้่ฟ OpenEmber ็้ไฟกๆจกๅๆฟๆฐๆฎใๆงๅถ็กฌไปถใ
