apollo
apollo copied to clipboard
Can not run "common_component_example" successfully when build with cmake myself
We appreciate you go through Apollo documentations and search previous issues before creating an new one. If neither of the sources helped you with your issues, please report the issue using the following form. Please note missing info can delay the response time.
System information
-Vmware Linux Ubuntu 20.04 -Build CyberRt only with Cmake -V6.0
Steps to reproduce the issue:
- Please use bullet points and include as much details as possible:
Supporting materials (screenshots, command lines, code/script snippets):
Hi, I clone the Apollo project(v6.0) and build the cyber_rt module with cmake,but I found the example "common_component_example" run failed. I dbg it and found that when the writer want to publish it's channel change msg,it can not send the fully message:
bool Manager::Publish(const ChangeMsg& msg) {...
apollo::cyber::transport::UnderlayMessage m;
RETURN_VAL_IF(!message::SerializeToString(msg, &m.data()), false);
return publisher_->write(reinterpret_cast<void*>(&m));}
Here the msg will be serialized by protobuf to data member of undelaymessage ,but the serialized data contails "\0" and the fast-rtps(or fast-dds) may be not support send "\0" message data, here is the evidence: [https://github.com/eProsima/Fast-DDS/issues/2689#issuecomment-1132705252] [https://github.com/eProsima/Fast-DDS/issues/2786] So, How to solve this problem?Does I missed anything such as any correct config?
there're two question to be check
- does fast-rtps support send
\0
- cmake support for cyber or apollo
fast-rtps need patch
which patch? you mean docker/build/installers/FastRTPS_1.5.0.patch
?
fast-rtps need patch
I used the patch tool, but this situation still occurs, but my platform is risc-v. Do I need to modify the patch file? Looking forward to your reply, thank you
We appreciate you go through Apollo documentations and search previous issues before creating an new one. If neither of the sources helped you with your issues, please report the issue using the following form. Please note missing info can delay the response time.
System information
-Vmware Linux Ubuntu 20.04 -Build CyberRt only with Cmake -V6.0
Steps to reproduce the issue:
* **Please use bullet points and include as much details as possible**:
Supporting materials (screenshots, command lines, code/script snippets):
Hi, I clone the Apollo project(v6.0) and build the cyber_rt module with cmake,but I found the example "common_component_example" run failed. I dbg it and found that when the writer want to publish it's channel change msg,it can not send the fully message:
bool Manager::Publish(const ChangeMsg& msg) {... apollo::cyber::transport::UnderlayMessage m; RETURN_VAL_IF(!message::SerializeToString(msg, &m.data()), false); return publisher_->write(reinterpret_cast<void*>(&m));}
Here the msg will be serialized by protobuf to data member of undelaymessage ,but the serialized data contails "\0" and the fast-rtps(or fast-dds) may be not support send "\0" message data, here is the evidence: [https://github.com/eProsima/Fast-DDS/issues/2689#issuecomment-1132705252] [https://github.com/eProsima/Fast-DDS/issues/2786] So, How to solve this problem?Does I missed anything such as any correct config?
I have also encountered the same situation. Have you finally resolved the problem? Looking forward to your reply, thank you very much
fast-rtps need patch
I used the patch tool, but this situation still occurs, but my platform is risc-v. Do I need to modify the patch file? Looking forward to your reply, thank you
We appreciate you go through Apollo documentations and search previous issues before creating an new one. If neither of the sources helped you with your issues, please report the issue using the following form. Please note missing info can delay the response time.
System information
-Vmware Linux Ubuntu 20.04 -Build CyberRt only with Cmake -V6.0
Steps to reproduce the issue:
* **Please use bullet points and include as much details as possible**:
Supporting materials (screenshots, command lines, code/script snippets):
Hi, I clone the Apollo project(v6.0) and build the cyber_rt module with cmake,but I found the example "common_component_example" run failed. I dbg it and found that when the writer want to publish it's channel change msg,it can not send the fully message:
bool Manager::Publish(const ChangeMsg& msg) {... apollo::cyber::transport::UnderlayMessage m; RETURN_VAL_IF(!message::SerializeToString(msg, &m.data()), false); return publisher_->write(reinterpret_cast<void*>(&m));}
Here the msg will be serialized by protobuf to data member of undelaymessage ,but the serialized data contails "\0" and the fast-rtps(or fast-dds) may be not support send "\0" message data, here is the evidence: [https://github.com/eProsima/Fast-DDS/issues/2689#issuecomment-1132705252] [https://github.com/eProsima/Fast-DDS/issues/2786] So, How to solve this problem?Does I missed anything such as any correct config?
I have also encountered the same situation. Have you finally resolved the problem? Looking forward to your reply, thank you very much