比方说,我有一个或多个机器人海龟,每个都有一个左右轮,左右轮上都有一个编码器。车轮可能有一个 PID 控制的电机。在像 ROS 这样的系统中,可以通过分层命名系统访问系统和子系统:即 /turtle_1/lwheel/pid/kp 设置左轮 PID 控制器的 Kp 参数或 /turtle_3/lwheel/encoder 获取车轮的编码器读数。海龟将是 LAN 上的节点。
既然 Erlang 有一个用于注册进程的平面名称空间,那么应该如何实现这样的分层视图呢?我想可以为层次结构中的每个级别注册一个进程,其名称为子系统的完整限定名称,如(/turtle_1 为顶级进程,/turtle_1/lwheel 为控制轮子的进程,/turtle_1/ lwheel_1/pid 等。是否有一些使用全局模块维护分层视图的最佳实践?