Hi all,
My setup is: ros2 Humble + Gazebo Harmonic + Ardupilot + Mavros.
I created two ardupilot_sitl instances to simulate two copters in Gazebo. When it comes to micro-ros-agents, they both create two nodes with same name /ap. I could observe the following:
-
In ardupilot/libraries/AP_DDS/AP_DDS_config.h, we have
#ifndef AP_DDS_PARTICIPANT_NAME
#define AP_DDS_PARTICIPANT_NAME “ap”
#endif -
In ardupilot/libraries/AP_DDS/AP_DDS_Client.cpp, we have
bool AP_DDS_Client::create()
{
WITH_SEMAPHORE(csem);
// Participant
const uxrObjectId participant_id = {
.id = 0x01,
.type = UXR_PARTICIPANT_ID
};
const char* participant_name = AP_DDS_PARTICIPANT_NAME;
So, is it hard coded? Can’t we have two namespaces to create two nodes such as /drone_1/ap and /drone_2/ap?
Thank you.