J'écris une simulation script qui fait intervenir 2-UUV et 1-USV. Les deux véhicules sous-marins font des relevés dans un modèle de mouvement orthogonal de tondeuse à gazon. Je voudrais rester dans la portée des deux véhicules, donc ils ont commencé au même point d'origine. Je veux savoir comment définir USV
modèle de mouvement de telle sorte qu'il soit toujours dans la portée de communication des deux UUV
pendant la plupart du temps.
- Fondamentalement, comment puis-je fournir manuellement un modèle dynamique de planification de la trajectoire et de mouvement à l'équipe d'évaluation de la sécurité ?
USV
afin que je puisse communiquer à la foisUUV
la plupart du temps ? Est-ce même possible ? Quelqu'un pourrait-il me donner un exemple de base ou m'indiquer la voie à suivre ?
Voici ma simulation script :
import org.arl.fjage.RealTimePlatform
import org.arl.unet.sim.MotionModel
///////////////////////////////////////////////////////////////////////////////
// display documentation
println '''
Bedford Basin AUV node network
------------------------------
Node USV-1: tcp://localhost:1101, http://localhost:8081/
Node UUV-1: tcp://localhost:1102, http://localhost:8082/
Node UUV-2: tcp://localhost:1103, http://localhost:8083/
------------------------------
------------------------------
'''
///////////////////////////////////////////////////////////////////////////////
// simulator configuration
platform = RealTimePlatform // use real-time mode
// origin = [44.696178,-63.632992] // Bedford basin GPS co-ordinates
origin = [44.434153,-63.251702]
simulate{
def n1 = node 'USV', location: [0.m, -100.m, 1.8.m], heading: 45.deg, mobility: true, web: 8081, api: 1101, stack: "$home/etc/setup"
n1.motionModel = MotionModel.lawnmower(speed: 0.5.mps, leg: 200.m, spacing: 50.m, legs: 17)
def n2 = node 'UUV-1', location: [0.m, 0.m, 30.m], heading: 90.deg, mobility: true, web: 8082, api: 1102, stack: "$home/etc/setup"
// n2.motionModel = MotionModel.lawnmower(speed: 3.3554.mps, leg: 6000.m, spacing: 40.m, legs: 150)
n2.motionModel = MotionModel.lawnmower(speed: 0.3.mps, leg: 1000.m, spacing: 50.m, legs: 20)
def n3 = node 'UUV-2', location: [0.m, 0.m, 30.m], heading: 180.deg, mobility: true, web: 8083, api: 1103, stack: "$home/etc/setup"
// n3.motionModel = MotionModel.lawnmower(speed: 3.3554.mps, leg: 6000.m, spacing: -40.m, heading:90.deg, legs: 150)
n3.motionModel = MotionModel.lawnmower(speed: 0.3.mps, leg: 1000.m, spacing: -50.m, heading:90.deg, legs: 20)
}
- Comment puis-je utiliser
platform = DiscreteEventSimulator
avec le modèle de mouvement ? Si je veux faire des heures de simulation en moins de temps ?
Référence :
- "Planification de la trajectoire pour la navigation sous-marine coopérative à distance uniquement à l'aide d'une seule balise", M.Chitre