PX4 SITL with Simulink-Based Plant Model
6 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Paolo
el 22 de Nov. de 2022
Comentada: Paolo
el 25 de Nov. de 2022
Hello, I'm develeoping a simple observer-based controller and I'm trying to implement it on PX4 stack. I'm developing a SITL scheme with Simulink-Based plant model as shown in Monitor and Tune PX4 Host Target Flight Controller with Simulink-Based Plant Model - MATLAB & Simulink - MathWorks. I developed a simple simulink model to check connetivity between my controller and the plant but there is a problem. I'm able to follow all the steps in the tutorial mentioned above but at the end I get the following error in the Simulink controller model:
action: EXT_INIT Creating Target Handler (XCP on TCP/IP)... Build directory: C:\Users\paolo\OneDrive\Documenti\Tesi_magistrale\SITL\partialInformation_controller_SITL_Simulink_ert_rtw Target name: 127.0.0.1 Target port: 17725 action: EXT_CONNECT Connecting to the target...
External Mode Open Protocol Connect command failed
Caused by:
- Could not connect to target application: XCP TCP/IP error: Connect failed
Component:Simulink | Category:Block diagram error
Unable to connect to the 'PX4 Host Target' target for 'partialInformation_controller_SITL_Simulink'.
I think the problem is on model side beacuse if I run the quadcopter model in the example Monitor and Tune PX4 Host Target Flight Controller with Simulink-Based Plant Model - MATLAB & Simulink - MathWorks my controller seems to connect succesfully with this model. This is my model for test connectivity, I'm trying to publish a simple message HIL_GPS with a dummy altitude:
And this is the controller I have developed:
Someone can help me?
Thanks in advice,
Paolo
1 comentario
Manoj Velmurugan
el 25 de Nov. de 2022
Did the host target window launch for you?
Also check if some other application is blocking 17725 port.
Respuesta aceptada
Manoj Velmurugan
el 25 de Nov. de 2022
PX4 Host target waits until it receives the HIL_SENSOR message. PX4 Host target has not started running as there is no HIL_SENSOR message in your plant model.
For more information, see the following lines in Firmware\src\modules\simulator\simulator.cpp
#if defined(ENABLE_LOCKSTEP_SCHEDULER)
// We want to prevent the rest of the startup script from running until time
// is initialized by the HIL_SENSOR messages from the simulator.
while (true) {
if (Simulator::getInstance() && Simulator::getInstance()->has_initialized()) {
break;
}
system_usleep(100);
}
#endif
Más respuestas (0)
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!