How can I read the rotor velocities in the PX4 read block in Simulink?
11 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Salvatore Matteo Mennea
el 16 de Mayo de 2023
Editada: Salvatore Matteo Mennea
el 23 de Mayo de 2023
I'm developing an open loop system for a quadrotor in Simulink using PX4 toolbox, simulating on jMAVsim. I'm injecting the rotor velocities and I have to read and plot the vehicle odometry(positions,velocities,euler angles etc...). I'm doing this thanks to the PX4 read block on the vehicle_odometry message that contains all this info, but I do not know how to read the rotor velocities in order to check if they are equals to the injected ones. How can I do? Which message do I have to use?
2 comentarios
Arun Mathamkode
el 23 de Mayo de 2023
Can you please clarify how are you injecting the rotor velocities ? Are you using any uORB write blocks?
Salvatore Matteo Mennea
el 23 de Mayo de 2023
Editada: Salvatore Matteo Mennea
el 23 de Mayo de 2023
Respuesta aceptada
Shaik
el 16 de Mayo de 2023
Hi Salvatore,
To read the rotor velocities of a quadrotor in PX4 using the PX4 toolbox in Simulink, you can use the vehicle_motor_speed message. This message provides information about the motor speeds or rotor velocities of the quadrotor.
Here's how you can read and plot the rotor velocities using the PX4 toolbox:
- Add a PX4 read block to your Simulink model.
- Configure the PX4 read block to use the vehicle_motor_speed message type.
- Connect the output of the PX4 read block to a MATLAB Function block or a Scope block.
- Inside the MATLAB Function block, you can access the rotor velocities by using the output signal of the PX4 read block.
- To plot the rotor velocities, you can use the MATLAB plotting functions, such as plot or stairs.
Here's an example of how the Simulink model could be structured:
+------------------+
| PX4 Read Block |
+------------------+
|
| vehicle_motor_speed
|
+------------------+
| MATLAB Func |
+------------------+
|
| rotor_velocities
|
+------------------+
| Scope Block |
+------------------+
function rotorVelocities = fcn(vehicle_motor_speed)
% Read rotor velocities
rotorVelocities = vehicle_motor_speed.RPMs;
end
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!