ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

I have some great news regarding this issue. I am now able to fly multiple drones with 1 PC. The issue is in the ArDrone SDK in the file vp_com_socket.c around line 100. The problem is when the second drone node tries to bind client's IP (PC) with the socket, so that the drone can constantly send navdata to it. Here the error is received, and node crashes. Binding cannot be done, because the socket is already taken and binded by the first drone. So there is no need to bind it again.

This is the quick and ugly fix that should get multiple drones running. I already notified Parrot so I hope that they will fix this issue soon in the SDK.

case VP_COM_SERVER:
  name.sin_addr.s_addr = INADDR_ANY;
  int bind_err = bind( s, (struct sockaddr*)&name, sizeof(struct sockaddr));
  if (bind_err < 0 ){
    //res = VP_COM_ERROR;
    res = VP_COM_OK;
}