GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - openember/openember: 🔥 OpenEmber is a modular embedded software framework for robots and intelligent devices. OpenEmber 是䞀䞪面向机噚人䞎智胜讟倇的暡块化嵌入匏蜯件框架

BranchesTags
Open more actions menu

Latest commit

 

History

280 Commits
280 Commits

Folders and files

NameName
Last commit message
Last commit date
apps
apps
 
 
cmake
cmake
 
 
communication
communication
 
 
components
components
 
 
configs
configs
 
 
core
core
 
 
docs
docs
 
 
examples
examples
 
 
modules
modules
 
 
platform
platform
 
 
scripts
scripts
 
 
services
services
 
 
system
system
 
 
test
test
 
 
third_party
third_party
 
 
tools
tools
 
 
.gitignore
.gitignore
 
 
CMakeLists.txt
CMakeLists.txt
 
 
Kconfig
Kconfig
 
 
LICENSE
LICENSE
 
 
Makefile
Makefile
 
 
README.md
README.md
 
 
TODO.md
TODO.md
 
 
embark
embark
 
 

Repository files navigation

OpenEmber 暡块化嵌入匏蜯件框架

OpenEmber 是䞀䞪面向机噚人䞎智胜讟倇的运行时Runtime蜯件框架它运行圚 Linux 系统之䞊提䟛统䞀的通信骚架、Linux 倖讟 I/OLPIO䞎节点运行机制垮助匀发者高效构建倍杂的嵌入匏智胜系统。

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                                   │
│ demos / tools / robot apps / launch entry      │
└────────────────────────────────────────────────┘
                     │
                     ▌
┌────────────────────────────────────────────────┐
│ Modules                                        │
│ drivers / bridges / app modules                │
└────────────────────────────────────────────────┘
                     │
                     ▌
┌────────────────────────────────────────────────┐
│ Core / Runtime                                 │
│ Node / Topic / Service / Parameter / Lifecycle │
│ Launch / Executor / Diagnostics / Introspection│
└────────────────────────────────────────────────┘
                     │
                     ▌
┌────────────────────────────────────────────────┐
│ Components                                     │
│ logging / algorithm / transport / config       │
│ containers / sqlite / utility libraries        │
└────────────────────────────────────────────────┘
                     │
                     ▌
┌────────────────────────────────────────────────┐
│ Platform                                       │
│ osal / hal / thread / timer / can / uart       │
└────────────────────────────────────────────────┘

讟计思想

  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/
│   ├── smart_device_demo/  # 最小产品应甚参考入口
│   └── user_app/          # 产品或甚户项目入口
│
├── system/            # launch_manager、log_service 等系统节点
│
├── services/          # web_console、ota_agent 等可选服务
│
├── examples/          # hello_node、pubsub 瀺䟋䞎参考实现
│   └── references/
│
├── modules/
│   ├── transport/
│   │   ├── nng/
│   │   ├── zmq/
│   │   └── lcm/
│   │
│   ├── drivers/
│   │   ├── imu/
│   │   ├── lidar/
│   │   └── motor/
│   │
│   └── bridges/
│
├── components/
│   ├── algorithm/
│   ├── logging/
│   ├── container/
│   ├── database/
│   ├── serialization/
│   └── transport/
│
├── core/
│   └── inc/           # 框架公共倎文件生成项䞎 openember.h 等
│
├── platform/
│   ├── os/
│   │   └── linux/
│   │
│   └── lpio/
│       ├── uart/
│       ├── spi/
│       ├── can/
│       └── gpio/
│
├── third_party/
├── vendor/
├── configs/
└── tools/

smart_device_demo 默讀以 Link auto 暡匏启劚䌘先䜜䞺本机 router 监听 tcp/127.0.0.1:7447劂果该端口已有 OpenEmber/Zenoh router则自劚切换䞺 client 接入。也可以通过 --router 或 --client 星匏指定暡匏。

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_agent services OTA 服务节点莟莣圚线/犻线升级流皋。
services/web_console services Web 仪衚盘服务提䟛运行状态可视化䞎亀互入口。
examples/hello_node examples 最小瀺䟋节点甚于验证运行环境䞎接口调甚。
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 是䞀䞪面向机噚人䞎智胜讟倇的暡块化嵌入匏蜯件框架

openember.org

Topics

ccommunication-frameworkcppdistrubted-systemsedge-computingembeddedframeworkiotlinuxmiddlewareposixrobotics

Resources

Readme
Apache-2.0 license
Activity
Custom properties

Stars

7 stars

Watchers

2 watching

Forks

1 fork
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.