CodeBlocks及LCM应用

以下是在开发过程中遇到的一些细节点:

1)called after throwing an instance of std::bad_alloc

此问题是由于publish(data),当中data赋值的问题导致的。

2)在用GDB调试CodeBlocks的时候,遇到权限不允许的情况。

warning: GDB: Failed to set controlling terminal: Operation not permitted

此问题需要通过设置来解决:

参考资料: http://blog.csdn.net/ct2917282881/article/details/7447527

3)调试过程中codeblocks如何查看变量的值

参考资料: http://wiki.codeblocks.org/index.php?title=Debugging_with_Code::Blocks

我们需要打开debug windows 下面的 watch 对话框才可以。

4)如何设计局域网内LCM通信

对于LCM来说,其实就是一个基于UDP组播的一个实例而已,并不是什么新的东西。当我们有两台主机的时候,我们需要约定一个

多播的地址,只有地址约定好了以后就可以进行通信了。

5)当有多个subcribe的时候,如何保证数据是线程安全的。

首先在ROS里面,各个订阅的MSG都是线程安全的。

但是在LCM里面,文档当中没有提及到,所以,我们暂且认为是线程非安全的,此时需要加入互斥变量来保证线程安全。

当然,这里也可以引用其他技术来实现。

原文地址:https://www.cnblogs.com/zhuxuekui/p/6254408.html