(!) Please ask about problems and questions regarding this tutorial on answers.ros.org. Don't forget to include in your question the link to this page, the versions of your OS & ROS, and also add appropriate tags.

Description: This package is used to communicate between plutodrone and system through ROS. Drone will send the accelerometer, gyro, magneto and altitude data. You can subscribe to the roll, pitch and yaw values.

Tutorial Level: INTERMEDIATE

Multi Drone

Following is the procedure to control multiple drones within the same network

<!-- <node name="droneswarm" type="drone_swarm" pkg="edrone_client"/> -->
<node name="drone_swarm" type="drone_swarm" pkg="edrone_client"/>
  • Setting the drone in client mode: First connect to your drone. Open a telnet connection as per the following

telnet 192.168.4.1
  • Set the drone in both Station(STA) and Access Point Mode(AP) : Once connected, run the following

+++AT MODE 3
  • Set the ssid and password: Set your ssid and password you want the drone to connect to

+++AT STA
  • Add IPs: Start your hotspot and your drone should connect to is. Note the IP address assigned to it. Open DroneSwarm.cpp  in edrone_client/src and add the IP address. Repeat this for all new drones connected to the network

all_ips.push_back("192.168.43.151");
all_ips.push_back("");
  • Sending data: Follow procedure in Control Commands to fly the drones. Add droneIndex(edrone_msgs) for every topic. This index is the same as the index of the IP within 'all_ips' when you add it.

Get drone data: Pending

On-board Camera Drone

This is for the on-board camera variation of the drone ONLY. Following is the procedure to control the camera drone.

  • Uncomment the DroneCam node in the drone_comb.launch file. Keep the DroneNode node uncommented.

<node name="edroneserver" type="edroneserver" pkg="edrone_client"/>
<node name="edronecam" type="dronecam" pkg="edrone_client"/>
  • In Communication.cpp file, change the PORT number on line 62 to "9060" as shown

addr.sin_port = htons(9060);
  • In Communication.cpp file, change the IP address on line 63 to "192.168.0.1" as shown

addr.sin_addr.s_addr = inet_addr("192.168.0.1");
  • In DroneNode.cpp file, change the PORT number on line 17 to "9060" as shown

#define PORT 9060
  • Save your work and run catkin_make from the terminal.

  • Connect to the drone's wifi and launch the drone_comb.launch file.

NOTE: Multiple Drones with onboard cameras cannot be used with DroneSwarm. As per the developed hardware, provision for single Pluto is available.

Wiki: eyantra_drone/eyantra_multi_drone (last edited 2019-07-02 15:44:26 by Simranjeet)