First, I want to ask how to clean the ardupilot build on the linux. I only found waf (clean, distclean, submodule-force-clean). I tried all those and removed the whole folder. After that, I did git clone the ArduCopter 4.5 version. I can build the sitl. But, when building with enable-dds option, I got those errors. Does anyone know how to solve this? Any advices will be deeply appreciated!!
Hi, @rmackay9
I found the problem line (#90 in ardupilot/libraries/AP_DDS/wscript)
The microxrceddsgen doesnāt know this -replace -default-container-prealloc-size. So, I replaced that with the line from the latest one I downloaded from the github in Feb.
You could also pull the latest MicroXRCEDDSGen and rebuild the tool. We had new changes in that repo in the past month. Hereās the PR that required it.
Iām sorry if this is off topic. I donāt know where to post it.
Yesterday we went out for field test. At the office, I tested that DDS connection from the ardupilot to the ROSs was working fine and could see the ROS2 topics related to the ardupilot. Then, at the actual field test, the DDS was not working. I used this command. I checked that serial2_protocol and serial2_baud at Mission Planner and they are right.
MicroXRCEAgent serial -b 115200 -r /home/taekyung/Workspace/dds_xrce_profile.xml -D /dev/serial0
We restarted the drone (FC and raspberry pi) a few times, but the DDS didnāt work. There is no errors showing, but we got no topic related to the ardupilot. When we were back to the office, I tested it works again. So, we couldnāt find the source of this problem.
Do you have any idea for that? Please.
The AP_DDS README does contain a link to the correct version of microxrceddsgen to install, however as this is not a submodule, and is not updated as part of the build, previously installed versions will not be correct.
Not sure the best way to handle this, we could add an extra note to the readme to highlight the change, but it points to a longer term problem of how to ensure users keep the tool current.
How were you checking the ROS topics in the field? Was it on a monitor connected to the pi or via a separate base station computer. If it was a base station was it connected to the pi by ethernet cable or by wifi
DDS can perform poorly over some wifi networks, so you may see messages from the pi on a base station computer in a lab, but not in the field.
There is no known issue other than we donāt have a good workflow for ABI breaks with the external tool of microxrceddsgen. Once binaries are out for all of the dependencies, it should get a lot easier for users. Till then, users should be pulling code regularly and rebuilding when it changes.