After studying the source code of drake's lcm wrapper, I think it's better to switch from lcm's original interface to drake's, for the following reasons:
- We cannot throw exceptions in subscription callbacks, because they are invoked "indirectly through c functions".
- We can use mock lcm for unit tests.
After studying the source code of drake's lcm wrapper, I think it's better to switch from lcm's original interface to drake's, for the following reasons: