Skip to content

openember/openember

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

204 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

OpenEmber ๆจกๅ—ๅŒ–ๅตŒๅ…ฅๅผ่ฝฏไปถๆก†ๆžถ

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๏ผˆๆœชๆฅๆ”ฏๆŒ๏ผ‰    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

่ฎพ่ฎกๆ€ๆƒณ

  1. ไธ€ไธชไป“ๅบ“ไปฅ ็Žฐไปฃ 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 ไพงๆŽฅๅฃ๏ผ‰๏ผŒ้ฟๅ…็ปดๆŠคโ€œๅŒไธป็บฟๅŒๆž„ๅฎž็Žฐโ€็š„ๅคๆ‚ๅบฆใ€‚

  2. ๆ”ฏๆŒไธ‰็งๅผ€ๅ‘ๆ–นๅผ๏ผš

    1. ็”จๆˆทๅฏไปฅ็›ดๆŽฅ clone ๆœฌไป“ๅบ“๏ผŒๆทปๅŠ ่‡ชๅทฑ็š„ๅŠŸ่ƒฝๆจกๅ—๏ผŒไฝ†ๅŽ็ปญๅ‡็บง OpenEmber ๆก†ๆžถๆฏ”่พƒ้บป็ƒฆ๏ผ›
    2. ไฝฟ็”จ่„šๆ‰‹ๆžถๅทฅๅ…ท ember new ็”Ÿๆˆๅนฒๅ‡€็š„ OpenEmber ๅทฅ็จ‹๏ผŒ็”จๆˆท็›ดๆŽฅๅœจ่ฏฅๆจกๆฟๅทฅ็จ‹ไธŠ่ฟ›่กŒๅผ€ๅ‘๏ผ›
    3. ็›ดๆŽฅ็”Ÿๆˆ OpenEmber ็š„ๅบ“ๆ–‡ไปถ๏ผŒๅนถๅฎ‰่ฃ…ๅˆฐ็ณป็ปŸ๏ผŒ็”จๆˆทๅŽ็ปญๅฏไปฅ็›ดๆŽฅ้€š่ฟ‡ CMake ๅผ•็”จ OpenEmber ๅบ“๏ผŒ็„ถๅŽๅ•็‹ฌๅผ€ๅ‘ๅ’Œ็ปดๆŠค่‡ชๅทฑ็š„ๆจกๅ—/่Š‚็‚นไปฃ็ ใ€‚
  3. ไพ่ต–ๅบ“็ฎก็†๏ผšๆ”ฏๆŒ FetchContent / Vendor / System ไธ‰็งๆจกๅผ๏ผˆ้€š่ฟ‡ OPENEMBER_THIRD_PARTY_MODE ๆŽงๅˆถ๏ผ‰๏ผŒไปฅไพฟๅ›บๅฎš็‰ˆๆœฌใ€ๅฏไธ‹่ฝฝใ€ๅฏๅ‡็บงใ€‚

    • FETCH๏ผšๆž„ๅปบๆ—ถไธ‹่ฝฝๅ›บๅฎš็‰ˆๆœฌๅˆฐๆž„ๅปบ็›ฎๅฝ•
    • VENDOR๏ผšไฝฟ็”จไป“ๅบ“ๅ†… third_party/ ็š„ๅทฒ่ฝๅบ“็‰ˆๆœฌ
    • SYSTEM๏ผšไผ˜ๅ…ˆไฝฟ็”จ็ณป็ปŸๅทฒๅฎ‰่ฃ…ไพ่ต–๏ผˆYocto/ไผไธšๅœบๆ™ฏ๏ผ‰
  4. ้€š่ฟ‡ๆ’ไปถๅŒ–่ฎพ่ฎก๏ผŒๅฎž็Žฐๅบ•ๅฑ‚ไพ่ต–ๅบ“็š„ๅˆ‡ๆข๏ผŒไพ‹ๅฆ‚ๆ”ฏๆŒ 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 ็š„้€šไฟกๆจกๅ—ๆ‹ฟๆ•ฐๆฎใ€ๆŽงๅˆถ็กฌไปถใ€‚

About

๐Ÿ”ฅ OpenEmber is a modular embedded software framework for robots and intelligent devices. OpenEmber ๆ˜ฏไธ€ไธช้ขๅ‘ๆœบๅ™จไบบไธŽๆ™บ่ƒฝ่ฎพๅค‡็š„ๆจกๅ—ๅŒ–ๅตŒๅ…ฅๅผ่ฝฏไปถๆก†ๆžถ

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors