1. MPI_Iallgatherv, version 0.6.3

2. modify non-blocking MPI communication
3. add 32(30-2) hectors case
3. add scripts for single machine MPI Gazebo start and end
This commit is contained in:
zhangshuai 2019-10-29 22:31:32 +08:00
parent 141e7bcfdb
commit 150938191c
8 changed files with 1201 additions and 131 deletions

View File

@ -106,6 +106,7 @@ double before_updatePhysicsTime = 0; // little
double updatePhysicsTime = 0; double updatePhysicsTime = 0;
double before_mpiTime = 0; double before_mpiTime = 0;
double barrierTime = 0; double barrierTime = 0;
double waitTime = 0;
double mpiTime = 0; double mpiTime = 0;
double after_mpiTime = 0; double after_mpiTime = 0;
double wholeUpdataTime = 0; double wholeUpdataTime = 0;
@ -119,6 +120,7 @@ double before_updatePhysicsTime2 = 0;
double updatePhysicsTime2 = 0; double updatePhysicsTime2 = 0;
double before_mpiTime2 = 0; double before_mpiTime2 = 0;
double barrierTime2 = 0; double barrierTime2 = 0;
double waitTime2 = 0;
double mpiTime2 = 0; double mpiTime2 = 0;
double after_mpiTime2 = 0; double after_mpiTime2 = 0;
double wholeUpdataTime2 = 0; double wholeUpdataTime2 = 0;
@ -851,73 +853,76 @@ void World::Update()
DIAG_TIMER_LAP("World::Update", "Events::worldUpdateBegin"); DIAG_TIMER_LAP("World::Update", "Events::worldUpdateBegin");
// // Added by zhangshuai 2019.10.24 for non-block MPI communication----Begin // Added by zhangshuai 2019.10.24 for non-block MPI communication----Begin
// if (1 == this->flag && this->mpi_flag == true) if (1 == this->flag && this->mpi_flag == true)
// { {
// // Added by zhangshuai 2019.04.03 for count time ----Begin // Added by zhangshuai 2019.04.03 for count time ----Begin
// #ifdef USE_COUNT_TIME #ifdef USE_COUNT_TIME
// gettimeofday(&tv, NULL); gettimeofday(&tv, NULL);
// cur_time = (double)tv.tv_sec + (double)tv.tv_usec / 1.e6; cur_time = (double)tv.tv_sec + (double)tv.tv_usec / 1.e6;
// #endif #endif
// // MPI_Barrier(MPI_COMM_WORLD); MPI_Barrier(MPI_COMM_WORLD);
// // MPI_Wait(&request, &status); // Added by zhangshuai 2019.04.03 for count time ----Begin
#ifdef USE_COUNT_TIME
gettimeofday(&tv, NULL);
barrierTime += (double)tv.tv_sec + (double)tv.tv_usec / 1.e6 - cur_time;
#endif
// int test_flag; // Added by zhangshuai 2019.04.03 for count time ----Begin
// MPI_Test(&request, &test_flag, &status); #ifdef USE_COUNT_TIME
// while (test_flag == false) gettimeofday(&tv, NULL);
// { cur_time = (double)tv.tv_sec + (double)tv.tv_usec / 1.e6;
// std::cout << "MPI_Test flag : false" << std::endl; #endif
// MPI_Test(&request, &test_flag, &status);
// }
// // Added by zhangshuai 2019.04.03 for count time ----Begin MPI_Wait(&request, &status);
// #ifdef USE_COUNT_TIME // MPI_Wait(&request, MPI_STATUS_IGNORE);
// gettimeofday(&tv, NULL);
// barrierTime += (double)tv.tv_sec + (double)tv.tv_usec / 1.e6 - cur_time;
// #endif
// // MPI_Barrier(MPI_COMM_WORLD); // Added by zhangshuai 2019.04.03 for count time ----Begin
#ifdef USE_COUNT_TIME
gettimeofday(&tv, NULL);
waitTime += (double)tv.tv_sec + (double)tv.tv_usec / 1.e6 - cur_time;
#endif
// // Added by zhangshuai 2019.04.03 for count time ----Begin // Added by zhangshuai 2019.04.03 for count time ----Begin
// #ifdef USE_COUNT_TIME #ifdef USE_COUNT_TIME
// gettimeofday(&tv, NULL); gettimeofday(&tv, NULL);
// cur_time = (double)tv.tv_sec + (double)tv.tv_usec / 1.e6; cur_time = (double)tv.tv_sec + (double)tv.tv_usec / 1.e6;
// #endif #endif
// // Added by zhangshuai 2019.04.03 for count time ----End // Added by zhangshuai 2019.04.03 for count time ----End
// //receive and get information from other processes //receive and get information from other processes
// int tmp_gazebo_count = this->distribution->GetGazeboCount(); int tmp_gazebo_count = this->distribution->GetGazeboCount();
// for (int tmp_gazebo_id = 0; tmp_gazebo_id < tmp_gazebo_count; tmp_gazebo_id++) for (int tmp_gazebo_id = 0; tmp_gazebo_id < tmp_gazebo_count; tmp_gazebo_id++)
// { {
// if (this->gazeboLocalID != tmp_gazebo_id) if (this->gazeboLocalID != tmp_gazebo_id)
// { {
// unsigned int tmp_model_count = this->distribution->GetGazeboIDPtr(tmp_gazebo_id)->GetModelCount(); unsigned int tmp_model_count = this->distribution->GetGazeboIDPtr(tmp_gazebo_id)->GetModelCount();
// CommunicationData *tmpBufferData = new CommunicationData[tmp_model_count]; CommunicationData *tmpBufferData = new CommunicationData[tmp_model_count];
// memcpy(tmpBufferData, (receiveBuffer + this->displs[tmp_gazebo_id]), this->bufferLen[tmp_gazebo_id]); memcpy(tmpBufferData, (receiveBuffer + this->displs[tmp_gazebo_id]), this->bufferLen[tmp_gazebo_id]);
// for (unsigned int i = 0; i < tmp_model_count; i++) for (unsigned int i = 0; i < tmp_model_count; i++)
// { {
// // this->GetModel(tmp_model_name)->GetLink("canonical")->SetWorldPose(tmpBufferData[i].model_pose); // reserve // this->GetModel(tmp_model_name)->GetLink("canonical")->SetWorldPose(tmpBufferData[i].model_pose); // reserve
// // this->GetModelById(this->distribution->GetGazeboIDPtr(tmp_gazebo_id)->GetModelID(i))->SetWorldPose(tmpBufferData[i].model_pose); // this->GetModelById(this->distribution->GetGazeboIDPtr(tmp_gazebo_id)->GetModelID(i))->SetWorldPose(tmpBufferData[i].model_pose);
// this->GetModelById(this->worldModelIDs_V[tmp_gazebo_id][i])->SetWorldPose(tmpBufferData[i].model_pose); this->GetModelById(this->worldModelIDs_V[tmp_gazebo_id][i])->SetWorldPose(tmpBufferData[i].model_pose);
// } }
// delete[] tmpBufferData; delete[] tmpBufferData;
// } }
// } }
// // Added by zhangshuai 2019.04.03 for count time ----Begin // Added by zhangshuai 2019.04.03 for count time ----Begin
// #ifdef USE_COUNT_TIME #ifdef USE_COUNT_TIME
// gettimeofday(&tv, NULL); gettimeofday(&tv, NULL);
// after_mpiTime += (double)tv.tv_sec + (double)tv.tv_usec / 1.e6 - cur_time; after_mpiTime += (double)tv.tv_sec + (double)tv.tv_usec / 1.e6 - cur_time;
// #endif #endif
// // Added by zhangshuai 2019.04.03 for count time ----End // Added by zhangshuai 2019.04.03 for count time ----End
// } }
// // Added by zhangshuai 2019.10.24 for non-block MPI communication ----End // Added by zhangshuai 2019.10.24 for non-block MPI communication ----End
// Added by zhangshuai 2019.04.03 for count time ----Begin // Added by zhangshuai 2019.04.03 for count time ----Begin
#ifdef USE_COUNT_TIME #ifdef USE_COUNT_TIME
@ -1099,8 +1104,6 @@ void World::Update()
MPI_Iallgatherv(this->sendBuffer, this->sendBufferLen, MPI_CHAR, this->receiveBuffer, this->bufferLen, this->displs, MPI_CHAR, MPI_COMM_WORLD, &request); MPI_Iallgatherv(this->sendBuffer, this->sendBufferLen, MPI_CHAR, this->receiveBuffer, this->bufferLen, this->displs, MPI_CHAR, MPI_COMM_WORLD, &request);
// MPI_Allgatherv(this->sendBuffer, this->sendBufferLen, MPI_CHAR, this->receiveBuffer, this->bufferLen, this->displs, MPI_CHAR, MPI_COMM_WORLD); // MPI_Allgatherv(this->sendBuffer, this->sendBufferLen, MPI_CHAR, this->receiveBuffer, this->bufferLen, this->displs, MPI_CHAR, MPI_COMM_WORLD);
// MPI_Barrier(MPI_COMM_WORLD);
// Added by zhangshuai 2019.04.03 for count time ----Begin // Added by zhangshuai 2019.04.03 for count time ----Begin
#ifdef USE_COUNT_TIME #ifdef USE_COUNT_TIME
gettimeofday(&tv, NULL); gettimeofday(&tv, NULL);
@ -1108,71 +1111,72 @@ void World::Update()
#endif #endif
// Added by zhangshuai 2019.04.03 for count time ----End // Added by zhangshuai 2019.04.03 for count time ----End
// this->mpi_flag = true; this->mpi_flag = true;
gazebo::common::Time::NSleep(200000); // // Added by zhangshuai 2019.04.03 for count time ----Begin
// #ifdef USE_COUNT_TIME
// Added by zhangshuai 2019.04.03 for count time ----Begin // gettimeofday(&tv, NULL);
#ifdef USE_COUNT_TIME // cur_time = (double)tv.tv_sec + (double)tv.tv_usec / 1.e6;
gettimeofday(&tv, NULL); // #endif
cur_time = (double)tv.tv_sec + (double)tv.tv_usec / 1.e6;
#endif
// MPI_Barrier(MPI_COMM_WORLD); // MPI_Barrier(MPI_COMM_WORLD);
MPI_Wait(&request, &status); // // Added by zhangshuai 2019.04.03 for count time ----Begin
// #ifdef USE_COUNT_TIME
// gettimeofday(&tv, NULL);
// barrierTime += (double)tv.tv_sec + (double)tv.tv_usec / 1.e6 - cur_time;
// #endif
// int test_flag; // // Added by zhangshuai 2019.04.03 for count time ----Begin
// MPI_Test(&request, &test_flag, &status); // #ifdef USE_COUNT_TIME
// while (test_flag == false) // gettimeofday(&tv, NULL);
// cur_time = (double)tv.tv_sec + (double)tv.tv_usec / 1.e6;
// #endif
// MPI_Wait(&request, &status);
// // MPI_Wait(&request, MPI_STATUS_IGNORE);
// // Added by zhangshuai 2019.04.03 for count time ----Begin
// #ifdef USE_COUNT_TIME
// gettimeofday(&tv, NULL);
// waitTime += (double)tv.tv_sec + (double)tv.tv_usec / 1.e6 - cur_time;
// #endif
// // Added by zhangshuai 2019.04.03 for count time ----Begin
// #ifdef USE_COUNT_TIME
// gettimeofday(&tv, NULL);
// cur_time = (double)tv.tv_sec + (double)tv.tv_usec / 1.e6;
// #endif
// // Added by zhangshuai 2019.04.03 for count time ----End
// //receive and get information from other processes
// int tmp_gazebo_count = this->distribution->GetGazeboCount();
// for (int tmp_gazebo_id = 0; tmp_gazebo_id < tmp_gazebo_count; tmp_gazebo_id++)
// { // {
// std::cout << "MPI_Test flag : false" << std::endl; // if (this->gazeboLocalID != tmp_gazebo_id)
// MPI_Test(&request, &test_flag, &status); // {
// unsigned int tmp_model_count = this->distribution->GetGazeboIDPtr(tmp_gazebo_id)->GetModelCount();
// CommunicationData *tmpBufferData = new CommunicationData[tmp_model_count];
// memcpy(tmpBufferData, (receiveBuffer + this->displs[tmp_gazebo_id]), this->bufferLen[tmp_gazebo_id]);
// for (unsigned int i = 0; i < tmp_model_count; i++)
// {
// // this->GetModel(tmp_model_name)->GetLink("canonical")->SetWorldPose(tmpBufferData[i].model_pose); // reserve
// // this->GetModelById(this->distribution->GetGazeboIDPtr(tmp_gazebo_id)->GetModelID(i))->SetWorldPose(tmpBufferData[i].model_pose);
// this->GetModelById(this->worldModelIDs_V[tmp_gazebo_id][i])->SetWorldPose(tmpBufferData[i].model_pose);
// } // }
// Added by zhangshuai 2019.04.03 for count time ----Begin // delete[] tmpBufferData;
#ifdef USE_COUNT_TIME // }
gettimeofday(&tv, NULL); // }
barrierTime += (double)tv.tv_sec + (double)tv.tv_usec / 1.e6 - cur_time; // // Added by zhangshuai 2019.04.03 for count time ----Begin
#endif // #ifdef USE_COUNT_TIME
// gettimeofday(&tv, NULL);
// MPI_Barrier(MPI_COMM_WORLD); // after_mpiTime += (double)tv.tv_sec + (double)tv.tv_usec / 1.e6 - cur_time;
// #endif
// Added by zhangshuai 2019.04.03 for count time ----Begin // // Added by zhangshuai 2019.04.03 for count time ----End
#ifdef USE_COUNT_TIME
gettimeofday(&tv, NULL);
cur_time = (double)tv.tv_sec + (double)tv.tv_usec / 1.e6;
#endif
// Added by zhangshuai 2019.04.03 for count time ----End
//receive and get information from other processes
int tmp_gazebo_count = this->distribution->GetGazeboCount();
for (int tmp_gazebo_id = 0; tmp_gazebo_id < tmp_gazebo_count; tmp_gazebo_id++)
{
if (this->gazeboLocalID != tmp_gazebo_id)
{
unsigned int tmp_model_count = this->distribution->GetGazeboIDPtr(tmp_gazebo_id)->GetModelCount();
CommunicationData *tmpBufferData = new CommunicationData[tmp_model_count];
memcpy(tmpBufferData, (receiveBuffer + this->displs[tmp_gazebo_id]), this->bufferLen[tmp_gazebo_id]);
for (unsigned int i = 0; i < tmp_model_count; i++)
{
// this->GetModel(tmp_model_name)->GetLink("canonical")->SetWorldPose(tmpBufferData[i].model_pose); // reserve
// this->GetModelById(this->distribution->GetGazeboIDPtr(tmp_gazebo_id)->GetModelID(i))->SetWorldPose(tmpBufferData[i].model_pose);
this->GetModelById(this->worldModelIDs_V[tmp_gazebo_id][i])->SetWorldPose(tmpBufferData[i].model_pose);
}
delete[] tmpBufferData;
}
}
// Added by zhangshuai 2019.04.03 for count time ----Begin
#ifdef USE_COUNT_TIME
gettimeofday(&tv, NULL);
after_mpiTime += (double)tv.tv_sec + (double)tv.tv_usec / 1.e6 - cur_time;
#endif
// Added by zhangshuai 2019.04.03 for count time ----End
} }
// Added by zhangshuai 2019.04.23 for MPI communication ----End // Added by zhangshuai 2019.04.23 for MPI communication ----End
@ -1208,6 +1212,7 @@ void World::Update()
updatePhysicsTime2 = updatePhysicsTime; updatePhysicsTime2 = updatePhysicsTime;
before_mpiTime2 = before_mpiTime; before_mpiTime2 = before_mpiTime;
barrierTime2 = barrierTime; barrierTime2 = barrierTime;
waitTime2 = waitTime;
mpiTime2 = mpiTime; mpiTime2 = mpiTime;
after_mpiTime2 = after_mpiTime; after_mpiTime2 = after_mpiTime;
wholeUpdataTime2 = wholeUpdataTime; wholeUpdataTime2 = wholeUpdataTime;
@ -1227,6 +1232,7 @@ void World::Update()
double ave_updateCollisionTime = (updateCollisionTime - updateCollisionTime2) * 1000.0 / (this->dataPtr->iterations - start_iterations); double ave_updateCollisionTime = (updateCollisionTime - updateCollisionTime2) * 1000.0 / (this->dataPtr->iterations - start_iterations);
double ave_updatePhysicsTime = (updatePhysicsTime - updatePhysicsTime2) * 1000.0 / (this->dataPtr->iterations - start_iterations); double ave_updatePhysicsTime = (updatePhysicsTime - updatePhysicsTime2) * 1000.0 / (this->dataPtr->iterations - start_iterations);
double ave_barrierTime = (barrierTime - barrierTime2) * 1000.0 / (this->dataPtr->iterations - start_iterations); double ave_barrierTime = (barrierTime - barrierTime2) * 1000.0 / (this->dataPtr->iterations - start_iterations);
double ave_waitTime = (waitTime - waitTime2) * 1000.0 / (this->dataPtr->iterations - start_iterations);
double ave_before_mpiTime = (before_mpiTime - before_mpiTime2) * 1000.0 / (this->dataPtr->iterations - start_iterations); double ave_before_mpiTime = (before_mpiTime - before_mpiTime2) * 1000.0 / (this->dataPtr->iterations - start_iterations);
double ave_mpiTime = (mpiTime - mpiTime2) * 1000.0 / (this->dataPtr->iterations - start_iterations); double ave_mpiTime = (mpiTime - mpiTime2) * 1000.0 / (this->dataPtr->iterations - start_iterations);
double ave_after_mpiTime = (after_mpiTime - after_mpiTime2) * 1000.0 / (this->dataPtr->iterations - start_iterations); double ave_after_mpiTime = (after_mpiTime - after_mpiTime2) * 1000.0 / (this->dataPtr->iterations - start_iterations);
@ -1237,6 +1243,7 @@ void World::Update()
double perce_updateCollisionTime = (ave_updateCollisionTime / ave_wholeStepTime) * 100; double perce_updateCollisionTime = (ave_updateCollisionTime / ave_wholeStepTime) * 100;
double perce_updatePhysicsTime = (ave_updatePhysicsTime / ave_wholeStepTime) * 100; double perce_updatePhysicsTime = (ave_updatePhysicsTime / ave_wholeStepTime) * 100;
double perce_barrierTime = (ave_barrierTime / ave_wholeStepTime) * 100; double perce_barrierTime = (ave_barrierTime / ave_wholeStepTime) * 100;
double perce_waitTime = (ave_waitTime / ave_wholeStepTime) * 100;
double perce_wholeMpiTime = (ave_wholeMpiTime / ave_wholeStepTime) * 100; double perce_wholeMpiTime = (ave_wholeMpiTime / ave_wholeStepTime) * 100;
double perce_othersTime = (ave_othersTime / ave_wholeStepTime) * 100; double perce_othersTime = (ave_othersTime / ave_wholeStepTime) * 100;
@ -1256,6 +1263,8 @@ void World::Update()
<< "\tms =====\t" << this->gazeboLocalID << std::endl; << "\tms =====\t" << this->gazeboLocalID << std::endl;
std::cout << "===== average barrierTime :\t" << std::setiosflags(std::ios::fixed) << std::setprecision(4) << ave_barrierTime << " (" << std::setiosflags(std::ios::fixed) << std::setprecision(2) << perce_barrierTime << "%)" std::cout << "===== average barrierTime :\t" << std::setiosflags(std::ios::fixed) << std::setprecision(4) << ave_barrierTime << " (" << std::setiosflags(std::ios::fixed) << std::setprecision(2) << perce_barrierTime << "%)"
<< "\tms =====\t" << this->gazeboLocalID << std::endl; << "\tms =====\t" << this->gazeboLocalID << std::endl;
std::cout << "===== average waitTime :\t" << std::setiosflags(std::ios::fixed) << std::setprecision(4) << ave_waitTime << " (" << std::setiosflags(std::ios::fixed) << std::setprecision(2) << perce_waitTime << "%)"
<< "\tms =====\t" << this->gazeboLocalID << std::endl;
std::cout << "===== average wholeMpiTime :\t" << std::setiosflags(std::ios::fixed) << std::setprecision(4) << ave_wholeMpiTime << " (" << std::setiosflags(std::ios::fixed) << std::setprecision(2) << perce_wholeMpiTime << "%)" std::cout << "===== average wholeMpiTime :\t" << std::setiosflags(std::ios::fixed) << std::setprecision(4) << ave_wholeMpiTime << " (" << std::setiosflags(std::ios::fixed) << std::setprecision(2) << perce_wholeMpiTime << "%)"
<< "\tms =====\t" << this->gazeboLocalID << std::endl; << "\tms =====\t" << this->gazeboLocalID << std::endl;
std::cout << "===== average othersTime :\t" << std::setiosflags(std::ios::fixed) << std::setprecision(4) << ave_othersTime << " (" << std::setiosflags(std::ios::fixed) << std::setprecision(2) << perce_othersTime << "%)" std::cout << "===== average othersTime :\t" << std::setiosflags(std::ios::fixed) << std::setprecision(4) << ave_othersTime << " (" << std::setiosflags(std::ios::fixed) << std::setprecision(2) << perce_othersTime << "%)"
@ -1273,13 +1282,6 @@ void World::Update()
<< "\tms =====\t" << this->gazeboLocalID << std::endl; << "\tms =====\t" << this->gazeboLocalID << std::endl;
std::cout << "***************************************************************************" << std::endl; std::cout << "***************************************************************************" << std::endl;
// std::cout << "===== average before_worldUpdateBeginTime:\t" << (before_worldUpdateBeginTime - before_worldUpdateBeginTime2) * 1000.0 / (this->dataPtr->iterations - start_iterations) << "\tms =====\t" << this->gazeboLocalID << std::endl;
// std::cout << "===== average modelUpdateFuncTime:\t" << (modelUpdateFuncTime - modelUpdateFuncTime2) * 1000.0 / (this->dataPtr->iterations - start_iterations) << "\tms =====\t" << this->gazeboLocalID << std::endl;
// std::cout << "===== average loggingTime:\t" << (loggingTime - loggingTime2) * 1000.0 / (this->dataPtr->iterations - start_iterations) << "\tms =====\t" << this->gazeboLocalID << std::endl;
// std::cout << "===== average before_updatePhysicsTime:\t" << (before_updatePhysicsTime - before_updatePhysicsTime2) * 1000.0 / (this->dataPtr->iterations - start_iterations) << "\tms =====\t" << this->gazeboLocalID << std::endl;
// double wholeAddTime = before_worldUpdateBeginTime + worldUpdateBeginTime + modelUpdateFuncTime + updateCollisionTime + loggingTime + before_updatePhysicsTime + updatePhysicsTime + before_mpiTime + mpiTime + after_mpiTime - (before_worldUpdateBeginTime2 + worldUpdateBeginTime2 + modelUpdateFuncTime2 + updateCollisionTime2 + loggingTime2 + before_updatePhysicsTime2 + updatePhysicsTime2 + before_mpiTime2 + mpiTime2 + after_mpiTime2);
// std::cout << "===== average wholeAddTime:\t" << wholeAddTime * 1000.0 / (this->dataPtr->iterations - start_iterations) << "\tms =====\t" << this->gazeboLocalID << std::endl;
// } // }
// // test for worldModelIDs_V Begin 2019.10.24 // // test for worldModelIDs_V Begin 2019.10.24

View File

@ -0,0 +1,12 @@
#!/bin/bash
###################################################################################################################################################
# Author: Zhang Shuai #
# Date: 2019-10-29 #
###################################################################################################################################################
export GAZEBO_MASTER_URI=http://localhost:11345
gz world -p 1
export GAZEBO_MASTER_URI=http://localhost:11346
gz world -p 1
exit 0

View File

@ -0,0 +1,12 @@
#!/bin/bash
###################################################################################################################################################
# Author: Zhang Shuai #
# Date: 2019-10-29 #
###################################################################################################################################################
export GAZEBO_MASTER_URI=http://localhost:11345
gz world -p 0
export GAZEBO_MASTER_URI=http://localhost:11346
gz world -p 0
exit 0

View File

@ -1,3 +1,3 @@
airc05-Precision-7920-Tower slots=1 airc05-Precision-7920-Tower slots=2
airc02-PowerEdge-T640 slots=1 #airc02-PowerEdge-T640 slots=1
#airc03-PowerEdge-T640 slots=1 #airc03-PowerEdge-T640 slots=1

View File

@ -1,2 +1,2 @@
rank 0=airc05-Precision-7920-Tower slot=0 rank 0=airc05-Precision-7920-Tower slot=0-3
rank 1=airc02-PowerEdge-T640 slot=0 rank 1=airc05-Precision-7920-Tower slot=20-23

View File

@ -0,0 +1,360 @@
<!-- This is a launch file that runs the bare minimum requirements to get -->
<!-- gazebo running for a fixed-wing aircraft -->
<launch>
<group ns="bebop_0">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_1.launch">
<arg name="name" value="bebop_0" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_0" />
<arg name="x" value="0.0" />
<arg name="y" value="0.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_1">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_1.launch">
<arg name="name" value="bebop_1" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_1" />
<arg name="x" value="0.0" />
<arg name="y" value="5.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_2">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_1.launch">
<arg name="name" value="bebop_2" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_2" />
<arg name="x" value="0.0" />
<arg name="y" value="10.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_3">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_1.launch">
<arg name="name" value="bebop_3" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_3" />
<arg name="x" value="0.0" />
<arg name="y" value="15.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_4">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_1.launch">
<arg name="name" value="bebop_4" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_4" />
<arg name="x" value="0.0" />
<arg name="y" value="20.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_5">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_1.launch">
<arg name="name" value="bebop_5" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_5" />
<arg name="x" value="0.0" />
<arg name="y" value="25.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_6">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_1.launch">
<arg name="name" value="bebop_6" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_6" />
<arg name="x" value="0.0" />
<arg name="y" value="30.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_7">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_1.launch">
<arg name="name" value="bebop_7" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_7" />
<arg name="x" value="0.0" />
<arg name="y" value="35.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_8">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_1.launch">
<arg name="name" value="bebop_8" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_8" />
<arg name="x" value="0.0" />
<arg name="y" value="40.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_9">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_1.launch">
<arg name="name" value="bebop_9" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_9" />
<arg name="x" value="0.0" />
<arg name="y" value="45.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_10">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_1.launch">
<arg name="name" value="bebop_10" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_10" />
<arg name="x" value="5.0" />
<arg name="y" value="0.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_11">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_1.launch">
<arg name="name" value="bebop_11" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_11" />
<arg name="x" value="5.0" />
<arg name="y" value="5.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_12">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_1.launch">
<arg name="name" value="bebop_12" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_12" />
<arg name="x" value="5.0" />
<arg name="y" value="10.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_13">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_1.launch">
<arg name="name" value="bebop_13" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_13" />
<arg name="x" value="5.0" />
<arg name="y" value="15.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_14">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_1.launch">
<arg name="name" value="bebop_14" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_14" />
<arg name="x" value="5.0" />
<arg name="y" value="20.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_15">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_1.launch">
<arg name="name" value="bebop_15" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_15" />
<arg name="x" value="5.0" />
<arg name="y" value="25.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_16">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_1.launch">
<arg name="name" value="bebop_16" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_16" />
<arg name="x" value="5.0" />
<arg name="y" value="30.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_17">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_1.launch">
<arg name="name" value="bebop_17" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_17" />
<arg name="x" value="5.0" />
<arg name="y" value="35.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_18">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_1.launch">
<arg name="name" value="bebop_18" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_18" />
<arg name="x" value="5.0" />
<arg name="y" value="40.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_19">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_1.launch">
<arg name="name" value="bebop_19" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_19" />
<arg name="x" value="5.0" />
<arg name="y" value="45.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_20">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_1.launch">
<arg name="name" value="bebop_20" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_20" />
<arg name="x" value="10.0" />
<arg name="y" value="0.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_21">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_1.launch">
<arg name="name" value="bebop_21" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_21" />
<arg name="x" value="10.0" />
<arg name="y" value="5.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_22">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_1.launch">
<arg name="name" value="bebop_22" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_22" />
<arg name="x" value="10.0" />
<arg name="y" value="10.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_23">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_1.launch">
<arg name="name" value="bebop_23" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_23" />
<arg name="x" value="10.0" />
<arg name="y" value="15.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_24">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_1.launch">
<arg name="name" value="bebop_24" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_24" />
<arg name="x" value="10.0" />
<arg name="y" value="20.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_25">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_1.launch">
<arg name="name" value="bebop_25" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_25" />
<arg name="x" value="10.0" />
<arg name="y" value="25.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_26">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_1.launch">
<arg name="name" value="bebop_26" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_26" />
<arg name="x" value="10.0" />
<arg name="y" value="30.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_27">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_1.launch">
<arg name="name" value="bebop_27" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_27" />
<arg name="x" value="10.0" />
<arg name="y" value="35.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_28">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_1.launch">
<arg name="name" value="bebop_28" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_28" />
<arg name="x" value="10.0" />
<arg name="y" value="40.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_29">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_1.launch">
<arg name="name" value="bebop_29" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_29" />
<arg name="x" value="10.0" />
<arg name="y" value="45.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_30">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_1_without_controller.launch">
<arg name="name" value="bebop_30" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_30" />
<arg name="x" value="15.0" />
<arg name="y" value="0.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_31">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_1_without_controller.launch">
<arg name="name" value="bebop_31" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_31" />
<arg name="x" value="15.0" />
<arg name="y" value="5.0" />
<arg name="z" value="0.186" />
</include>
</group>
<!--<node name="simple_takeoff" pkg="hector" type="hector_simple_takeoff"/>-->
</launch>

View File

@ -0,0 +1,360 @@
<!-- This is a launch file that runs the bare minimum requirements to get -->
<!-- gazebo running for a fixed-wing aircraft -->
<launch>
<group ns="bebop_0">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_2_without_controller.launch">
<arg name="name" value="bebop_0" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_0" />
<arg name="x" value="0.0" />
<arg name="y" value="0.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_1">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_2_without_controller.launch">
<arg name="name" value="bebop_1" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_1" />
<arg name="x" value="0.0" />
<arg name="y" value="5.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_2">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_2_without_controller.launch">
<arg name="name" value="bebop_2" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_2" />
<arg name="x" value="0.0" />
<arg name="y" value="10.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_3">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_2_without_controller.launch">
<arg name="name" value="bebop_3" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_3" />
<arg name="x" value="0.0" />
<arg name="y" value="15.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_4">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_2_without_controller.launch">
<arg name="name" value="bebop_4" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_4" />
<arg name="x" value="0.0" />
<arg name="y" value="20.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_5">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_2_without_controller.launch">
<arg name="name" value="bebop_5" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_5" />
<arg name="x" value="0.0" />
<arg name="y" value="25.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_6">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_2_without_controller.launch">
<arg name="name" value="bebop_6" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_6" />
<arg name="x" value="0.0" />
<arg name="y" value="30.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_7">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_2_without_controller.launch">
<arg name="name" value="bebop_7" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_7" />
<arg name="x" value="0.0" />
<arg name="y" value="35.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_8">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_2_without_controller.launch">
<arg name="name" value="bebop_8" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_8" />
<arg name="x" value="0.0" />
<arg name="y" value="40.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_9">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_2_without_controller.launch">
<arg name="name" value="bebop_9" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_9" />
<arg name="x" value="0.0" />
<arg name="y" value="45.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_10">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_2_without_controller.launch">
<arg name="name" value="bebop_10" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_10" />
<arg name="x" value="5.0" />
<arg name="y" value="0.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_11">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_2_without_controller.launch">
<arg name="name" value="bebop_11" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_11" />
<arg name="x" value="5.0" />
<arg name="y" value="5.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_12">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_2_without_controller.launch">
<arg name="name" value="bebop_12" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_12" />
<arg name="x" value="5.0" />
<arg name="y" value="10.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_13">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_2_without_controller.launch">
<arg name="name" value="bebop_13" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_13" />
<arg name="x" value="5.0" />
<arg name="y" value="15.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_14">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_2_without_controller.launch">
<arg name="name" value="bebop_14" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_14" />
<arg name="x" value="5.0" />
<arg name="y" value="20.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_15">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_2_without_controller.launch">
<arg name="name" value="bebop_15" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_15" />
<arg name="x" value="5.0" />
<arg name="y" value="25.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_16">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_2_without_controller.launch">
<arg name="name" value="bebop_16" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_16" />
<arg name="x" value="5.0" />
<arg name="y" value="30.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_17">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_2_without_controller.launch">
<arg name="name" value="bebop_17" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_17" />
<arg name="x" value="5.0" />
<arg name="y" value="35.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_18">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_2_without_controller.launch">
<arg name="name" value="bebop_18" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_18" />
<arg name="x" value="5.0" />
<arg name="y" value="40.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_19">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_2_without_controller.launch">
<arg name="name" value="bebop_19" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_19" />
<arg name="x" value="5.0" />
<arg name="y" value="45.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_20">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_2_without_controller.launch">
<arg name="name" value="bebop_20" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_20" />
<arg name="x" value="10.0" />
<arg name="y" value="0.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_21">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_2_without_controller.launch">
<arg name="name" value="bebop_21" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_21" />
<arg name="x" value="10.0" />
<arg name="y" value="5.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_22">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_2_without_controller.launch">
<arg name="name" value="bebop_22" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_22" />
<arg name="x" value="10.0" />
<arg name="y" value="10.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_23">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_2_without_controller.launch">
<arg name="name" value="bebop_23" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_23" />
<arg name="x" value="10.0" />
<arg name="y" value="15.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_24">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_2_without_controller.launch">
<arg name="name" value="bebop_24" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_24" />
<arg name="x" value="10.0" />
<arg name="y" value="20.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_25">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_2_without_controller.launch">
<arg name="name" value="bebop_25" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_25" />
<arg name="x" value="10.0" />
<arg name="y" value="25.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_26">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_2_without_controller.launch">
<arg name="name" value="bebop_26" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_26" />
<arg name="x" value="10.0" />
<arg name="y" value="30.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_27">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_2_without_controller.launch">
<arg name="name" value="bebop_27" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_27" />
<arg name="x" value="10.0" />
<arg name="y" value="35.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_28">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_2_without_controller.launch">
<arg name="name" value="bebop_28" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_28" />
<arg name="x" value="10.0" />
<arg name="y" value="40.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_29">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_2_without_controller.launch">
<arg name="name" value="bebop_29" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_29" />
<arg name="x" value="10.0" />
<arg name="y" value="45.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_30">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_2.launch">
<arg name="name" value="bebop_30" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_30" />
<arg name="x" value="15.0" />
<arg name="y" value="0.0" />
<arg name="z" value="0.186" />
</include>
</group>
<group ns="bebop_31">
<include file="$(find hector_quadrotor_gazebo)/launch/spawn_quadrotor_2.launch">
<arg name="name" value="bebop_31" />
<arg name="model" value="$(find hector_quadrotor_description)/urdf/quadrotor_with_downward_cam.gazebo.xacro"/>
<arg name="tf_prefix" value="bebop_31" />
<arg name="x" value="15.0" />
<arg name="y" value="5.0" />
<arg name="z" value="0.186" />
</include>
</group>
<node name="simple_takeoff" pkg="hector" type="hector_simple_takeoff"/>
</launch>

View File

@ -0,0 +1,324 @@
<?xml version="1.0" ?>
<sdf version="1.4">
<world name="default">
<!-- A global light source -->
<include>
<uri>model://sun</uri>
</include>
<include>
<uri>model://kunming_airport</uri>
<pose>0 0 0 0 0 0</pose>
</include>
<scene>
<ambient>0.68 0.68 0.68 1.0</ambient>
<sky>
<sunrise/>
<clouds>
<speed>0</speed>
</clouds>
</sky>
</scene>
<!-- For distributed simulation -->
<distribution flag=1>
<gazebo_id num=0>
<model_name>bebop_0</model_name>
<model_name>bebop_1</model_name>
<model_name>bebop_2</model_name>
<model_name>bebop_3</model_name>
<model_name>bebop_4</model_name>
<model_name>bebop_5</model_name>
<model_name>bebop_6</model_name>
<model_name>bebop_7</model_name>
<model_name>bebop_8</model_name>
<model_name>bebop_9</model_name>
<model_name>bebop_10</model_name>
<model_name>bebop_11</model_name>
<model_name>bebop_12</model_name>
<model_name>bebop_13</model_name>
<model_name>bebop_14</model_name>
<model_name>bebop_15</model_name>
<model_name>bebop_16</model_name>
<model_name>bebop_17</model_name>
<model_name>bebop_18</model_name>
<model_name>bebop_19</model_name>
<model_name>bebop_20</model_name>
<model_name>bebop_21</model_name>
<model_name>bebop_22</model_name>
<model_name>bebop_23</model_name>
<model_name>bebop_24</model_name>
<model_name>bebop_25</model_name>
<model_name>bebop_26</model_name>
<model_name>bebop_27</model_name>
<model_name>bebop_28</model_name>
<model_name>bebop_29</model_name>
</gazebo_id>
<gazebo_id num=1>
<model_name>bebop_30</model_name>
<model_name>bebop_31</model_name>
</gazebo_id>
</distribution>
<physics type="ode" name="ode">
<real_time_update_rate>0</real_time_update_rate>
<max_step_size>0.001</max_step_size>
<real_time_factor>0</real_time_factor>
<!-- <ode>
<solver>
<thread_position_correction>0</thread_position_correction>
<island_threads>8</island_threads>
</solver>
</ode> -->
</physics>
<exercise_opt>
<event_signal parallel_type=0 threads=8 />
<collide_space>0</collide_space>
<dxhashspace_collide threads=0 />
<updatephysics_dxprocessislands parallel_type=0 threads=4 />
</exercise_opt>
<!-- <model name="bebop_0">
<pose>0 0 0.186 0 0 0</pose>
<include>
<uri>model://quadrotor</uri>
</include>
<plugin name="takeoff" filename="/home/zhangshuai/gazebo_plugin_tutorial/takeoff/build/libtakeoff.so"/>
</model>
<model name="bebop_1">
<pose>0 5 0.186 0 0 0</pose>
<include>
<uri>model://quadrotor</uri>
</include>
<plugin name="takeoff" filename="/home/zhangshuai/gazebo_plugin_tutorial/takeoff/build/libtakeoff.so"/>
</model>
<model name="bebop_2">
<pose>0 10 0.186 0 0 0</pose>
<include>
<uri>model://quadrotor</uri>
</include>
<plugin name="takeoff" filename="/home/zhangshuai/gazebo_plugin_tutorial/takeoff/build/libtakeoff.so"/>
</model>
<model name="bebop_3">
<pose>0 15 0.186 0 0 0</pose>
<include>
<uri>model://quadrotor</uri>
</include>
<plugin name="takeoff" filename="/home/zhangshuai/gazebo_plugin_tutorial/takeoff/build/libtakeoff.so"/>
</model>
<model name="bebop_4">
<pose>0 20 0.186 0 0 0</pose>
<include>
<uri>model://quadrotor</uri>
</include>
<plugin name="takeoff" filename="/home/zhangshuai/gazebo_plugin_tutorial/takeoff/build/libtakeoff.so"/>
</model>
<model name="bebop_5">
<pose>0 25 0.186 0 0 0</pose>
<include>
<uri>model://quadrotor</uri>
</include>
<plugin name="takeoff" filename="/home/zhangshuai/gazebo_plugin_tutorial/takeoff/build/libtakeoff.so"/>
</model>
<model name="bebop_6">
<pose>0 30 0.186 0 0 0</pose>
<include>
<uri>model://quadrotor</uri>
</include>
<plugin name="takeoff" filename="/home/zhangshuai/gazebo_plugin_tutorial/takeoff/build/libtakeoff.so"/>
</model>
<model name="bebop_7">
<pose>0 35 0.186 0 0 0</pose>
<include>
<uri>model://quadrotor</uri>
</include>
<plugin name="takeoff" filename="/home/zhangshuai/gazebo_plugin_tutorial/takeoff/build/libtakeoff.so"/>
</model>
<model name="bebop_8">
<pose>0 40 0.186 0 0 0</pose>
<include>
<uri>model://quadrotor</uri>
</include>
<plugin name="takeoff" filename="/home/zhangshuai/gazebo_plugin_tutorial/takeoff/build/libtakeoff.so"/>
</model>
<model name="bebop_9">
<pose>0 45 0.186 0 0 0</pose>
<include>
<uri>model://quadrotor</uri>
</include>
<plugin name="takeoff" filename="/home/zhangshuai/gazebo_plugin_tutorial/takeoff/build/libtakeoff.so"/>
</model>
<model name="bebop_10">
<pose>5 0 0.186 0 0 0</pose>
<include>
<uri>model://quadrotor</uri>
</include>
<plugin name="takeoff" filename="/home/zhangshuai/gazebo_plugin_tutorial/takeoff/build/libtakeoff.so"/>
</model>
<model name="bebop_11">
<pose>5 5 0.186 0 0 0</pose>
<include>
<uri>model://quadrotor</uri>
</include>
<plugin name="takeoff" filename="/home/zhangshuai/gazebo_plugin_tutorial/takeoff/build/libtakeoff.so"/>
</model>
<model name="bebop_12">
<pose>5 10 0.186 0 0 0</pose>
<include>
<uri>model://quadrotor</uri>
</include>
<plugin name="takeoff" filename="/home/zhangshuai/gazebo_plugin_tutorial/takeoff/build/libtakeoff.so"/>
</model>
<model name="bebop_13">
<pose>5 15 0.186 0 0 0</pose>
<include>
<uri>model://quadrotor</uri>
</include>
<plugin name="takeoff" filename="/home/zhangshuai/gazebo_plugin_tutorial/takeoff/build/libtakeoff.so"/>
</model>
<model name="bebop_14">
<pose>5 20 0.186 0 0 0</pose>
<include>
<uri>model://quadrotor</uri>
</include>
<plugin name="takeoff" filename="/home/zhangshuai/gazebo_plugin_tutorial/takeoff/build/libtakeoff.so"/>
</model>
<model name="bebop_15">
<pose>5 25 0.186 0 0 0</pose>
<include>
<uri>model://quadrotor</uri>
</include>
<plugin name="takeoff" filename="/home/zhangshuai/gazebo_plugin_tutorial/takeoff/build/libtakeoff.so"/>
</model>
<model name="bebop_16">
<pose>5 30 0.186 0 0 0</pose>
<include>
<uri>model://quadrotor</uri>
</include>
<plugin name="takeoff" filename="/home/zhangshuai/gazebo_plugin_tutorial/takeoff/build/libtakeoff.so"/>
</model>
<model name="bebop_17">
<pose>5 35 0.186 0 0 0</pose>
<include>
<uri>model://quadrotor</uri>
</include>
<plugin name="takeoff" filename="/home/zhangshuai/gazebo_plugin_tutorial/takeoff/build/libtakeoff.so"/>
</model>
<model name="bebop_18">
<pose>5 40 0.186 0 0 0</pose>
<include>
<uri>model://quadrotor</uri>
</include>
<plugin name="takeoff" filename="/home/zhangshuai/gazebo_plugin_tutorial/takeoff/build/libtakeoff.so"/>
</model>
<model name="bebop_19">
<pose>5 45 0.186 0 0 0</pose>
<include>
<uri>model://quadrotor</uri>
</include>
<plugin name="takeoff" filename="/home/zhangshuai/gazebo_plugin_tutorial/takeoff/build/libtakeoff.so"/>
</model>
<model name="bebop_20">
<pose>10 0 0.186 0 0 0</pose>
<include>
<uri>model://quadrotor</uri>
</include>
<plugin name="takeoff" filename="/home/zhangshuai/gazebo_plugin_tutorial/takeoff/build/libtakeoff.so"/>
</model>
<model name="bebop_21">
<pose>10 5 0.186 0 0 0</pose>
<include>
<uri>model://quadrotor</uri>
</include>
<plugin name="takeoff" filename="/home/zhangshuai/gazebo_plugin_tutorial/takeoff/build/libtakeoff.so"/>
</model>
<model name="bebop_22">
<pose>10 10 0.186 0 0 0</pose>
<include>
<uri>model://quadrotor</uri>
</include>
<plugin name="takeoff" filename="/home/zhangshuai/gazebo_plugin_tutorial/takeoff/build/libtakeoff.so"/>
</model>
<model name="bebop_23">
<pose>10 15 0.186 0 0 0</pose>
<include>
<uri>model://quadrotor</uri>
</include>
<plugin name="takeoff" filename="/home/zhangshuai/gazebo_plugin_tutorial/takeoff/build/libtakeoff.so"/>
</model>
<model name="bebop_24">
<pose>10 20 0.186 0 0 0</pose>
<include>
<uri>model://quadrotor</uri>
</include>
<plugin name="takeoff" filename="/home/zhangshuai/gazebo_plugin_tutorial/takeoff/build/libtakeoff.so"/>
</model>
<model name="bebop_25">
<pose>10 25 0.186 0 0 0</pose>
<include>
<uri>model://quadrotor</uri>
</include>
<plugin name="takeoff" filename="/home/zhangshuai/gazebo_plugin_tutorial/takeoff/build/libtakeoff.so"/>
</model>
<model name="bebop_26">
<pose>10 30 0.186 0 0 0</pose>
<include>
<uri>model://quadrotor</uri>
</include>
<plugin name="takeoff" filename="/home/zhangshuai/gazebo_plugin_tutorial/takeoff/build/libtakeoff.so"/>
</model>
<model name="bebop_27">
<pose>10 35 0.186 0 0 0</pose>
<include>
<uri>model://quadrotor</uri>
</include>
<plugin name="takeoff" filename="/home/zhangshuai/gazebo_plugin_tutorial/takeoff/build/libtakeoff.so"/>
</model>
<model name="bebop_28">
<pose>10 40 0.186 0 0 0</pose>
<include>
<uri>model://quadrotor</uri>
</include>
<plugin name="takeoff" filename="/home/zhangshuai/gazebo_plugin_tutorial/takeoff/build/libtakeoff.so"/>
</model>
<model name="bebop_29">
<pose>10 45 0.186 0 0 0</pose>
<include>
<uri>model://quadrotor</uri>
</include>
<plugin name="takeoff" filename="/home/zhangshuai/gazebo_plugin_tutorial/takeoff/build/libtakeoff.so"/>
</model> -->
</world>
</sdf>