Is it possible to simulate State Space model using live inputs coming from Gazebo environment?

3 visualizaciones (últimos 30 días)
The Idea:
In our project, we are trying to do a live simulation where two robots state space model are written as a code in MATLAB and visualization is done in Gazebo environment. Gazebo and MATLAB will work in cooperation. In Gazebo, we will use image processing to measure the distance between these robots. According to the distance measured, an input will be given to each robot state space system. The output of the state space is send to Gazebo and the new position is visualized again in Gazebo. According to the new position, a new distance data is send again to MATLAB and the required input is given to state space model. This process will continue until we shut down the simulation manually.
The problem:
I am trying to simulate the state space model using live data coming form Gazebo. However, step() and lsim() functions works only for given array of inputs, at least as I know. Is it possible to simulate State Space model using changing inputs or live data coming from Gazebo? Which function should I use to simulate the system response using live input?

Respuesta aceptada

Jianxin Sun
Jianxin Sun el 11 de Mayo de 2021
Hi,
Have you considered using https://www.mathworks.com/help/simulink/slref/statespace.html from Simulink?
Thanks,
Jianxin
  3 comentarios
Jianxin Sun
Jianxin Sun el 11 de Mayo de 2021
For the slow communication between ROS and Simulink, are you more concerned about performance or synchronization?
If you need better synchronization, the robotics system toolbox contains blocks that can synchronize execution between Simulink and Gazebo: https://www.mathworks.com/help/robotics/ug/perform-co-simulation-between-simulink-and-gazebo.html, which could help you in this use case.
Otherwise, if you need to simulate a state space model in MATLAB, you probably need to compute the derivatives based on the state space model, current state, and control inputs, then integrate them using ODE solvers over one time step https://www.mathworks.com/help/matlab/math/choose-an-ode-solver.html. lsim() method probably can work over a single time step as well. You can provide the simulation time as [0 dt], provide current state as initial state, and provide constant control inputs over the time interval.
Ömer Abdo
Ömer Abdo el 11 de Mayo de 2021
I will try both of them. This is going to be very useful. Thank you again!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre ROS Log Files and Transformations en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by