-
Notifications
You must be signed in to change notification settings - Fork 90
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature/piksi multi cpp #101
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome, really nice!
See comment about publisher architecture (this could simplify our life later), but we can also merge it like this and figure this out in the next PR.
auto pub_vec = static_cast<std::vector<ros::Publisher>*>(context); | ||
if (!pub_vec) return; | ||
pub_vec->front().publish(ros_msg_heartbeat); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This 3 lines wil be written in every callback, so I would factor them out into another static method.
On a second thought, we might need to change this a it, as we probably don't always have the clear assignement one sbp messsage => corresponds to one ros::publisher.
hmm maybe the context pointer here could be the PiksiMulti Instance itself, and then we have some ENUM Map to get the publishers? But I think there could even be a cleaner solution, we can discuss today ;-)
Also we can have a discussion on how to make it nicely multithreaded and stuff. But can also happen at a later stage. |
A first shot for a cpp ROS driver as a response to the performance issues with the python driver #98 .
As of now this implementation includes
This minimum working implementation is merely complete and a starting point for design discussions and further implementations, such that additional interfaces, message callbacks and UDP broadcasting.
Currently we use <3% of a i7-7820HQ core which is subject to further optimization on how the polling can be done.