问题标签 [lcm-data-marshalling]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
360 浏览

c - 包括 cmakelists 中已安装的库

我并不总是用 C 语言编程,但当我这样做时,通常是为微控制器编写的,所以请耐心等待。

在尝试在 Matlab 中为 Simulink 块编译它之前,我试图运行一个 C 程序的简单测试。我使用 Clion 作为我的 IDE。如果我在命令行上用gcc -o listener exlcm_example_t.o listener.o 'pkg-config lcm --libs'我的程序编译就可以了。现在,如果我尝试在我的 IDE 中编译,我会发现系统找不到 x86 等的符号。

我为包括其他图书馆在内的人们找到了一些类似的解决方案,但它们似乎不适用于我的情况。特别是,我正在尝试包含轻量级通信和编组系统LCM,以便进行一些进程间通信。

我在 SE 上尝试了几个解决方案,它们通常遵循此处概述的内容。在 IDEs 编辑器中,如果我这样做#include <lcm/lcm.h>,我可以这样做Go To -> Declaration,它会将我带到 h 文件,所以它会以某种方式找到它,而不是我需要它的地方。

根据我的阅读,如果 make 没有库模块,我需要使用我自己的 *.cmake 文件。我碰巧在这里找到了一个。我的目录如下所示:

MyProject: - cmake -- 模块 --- *.cmake - cmakelists.txt - main.cpp

非常感谢您的帮助。

0 投票
0 回答
88 浏览

c - 为 UDP 打包数据的好方法

我有一个简单的问题,我似乎无法用谷歌搜索答案!

假设我们有两台计算机,它们将通过 UDP 交换数据。现在我们不是在谈论大量数据,可能是大约 10 个数字,elts 说其中 5 个是浮点数,其他是常规整数。

如何将这些变量打包成一条重要信息?有没有我可以遵循的标准。

当然,我可以简单地说,在每个变量之间应该有字符串STOP,然后接收计算机会得到 int1_STOP_int2_STOP_...etc 作为字符串,接收计算机会将其解析为正确的值。

但是这种方法看起来很粗糙。

我已经看到 LCM(轻量级通信和编组)可能是一个好主意,但当带宽不是问题时,它可能是一种矫枉过正。

任何建议都非常感谢!

0 投票
1 回答
403 浏览

c++ - 使用 Qt 在 C++ 中通过信号/插槽接收 LCM 消息?

在我的应用程序中,我从 LCM(轻量级通信和编组)接收消息,其中包含应用程序内多个消费者的数据。我想象这与 LCM 处理程序一起工作作为一个单例,以便每个类都可以使用一个实例。例如,每个消费者类将具有:

在哪里lcmhandler.h

并且lcmhandler.cpp是:

应用成功重复打印“Received message on channel...”;但是,没有执行其他任何操作,包括消费者类中的代码processMessage(),大概是因为应用程序陷入循环handleMessage(...)并且从不执​​行信号/插槽过程(或刷新 UI 组件)。所以,如果实现processMessage()是:

它从不执行,whilehandleMessage(...)无限循环。同样,Qt UI 永远不会加载,因为 handleMessage 正忙于循环。

处理传入消息的最佳方法是什么?我应该避免使用单例LCMHandler吗?我需要改变什么才能使这个实现工作?

0 投票
1 回答
836 浏览

networking - 通过共享网络的 LCM UDP 消息

伙计们,

我有一台通过无线 (wlan0) 连接到 Internet 的 Ubuntu 机器,我将这个连接共享到我的以太网端口 (eth1)。然后,我将这个以太网端口连接到一个交换机,并将两台 Windows 机器连接到同一个交换机。所以两台windows机器都有一个来自局域网的静态IP,这个IP是从wlan0到eth1的路由生成的,这样我就可以同时与所有3台计算机通信(这很有效,因为我可以ssh和远程访问所有3台计算机)。

我的问题是当我在 Windows PC 上运行我的 LCM 程序(TTL = 1)时,我无法在我的 Ubuntu 机器上接收消息(这意味着消息应该通过以太网)。在无线网络运行时,如何确保 UDP 消息可以从 Windows 机器路由回我的 Ubuntu 机器?

0 投票
1 回答
56 浏览

drake - drake + LCM 的 rqt_graph 功能

我正在机器人操作上下文中使用 drake 和 LCM 消息传递,并想知道是否存在类似于 ROS 的 rqt_graph 的 LCM 功能,它将输入和输出可视化到不同的节点。