-
Notifications
You must be signed in to change notification settings - Fork 84
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ground Truth Odometry&IMU vs. Generic Odometry&IMU #10
Comments
Thanks for opening your first issue here! Make sure that no other issues on the same topic have already been opened! |
Hi @TaoChenOSU, thank you for opening up an issue about using CrazyS. I hope it can also be useful for other CrazyS users. First of all, I suggest you visit the publications section on CrazyS Wiki. Perhaps, something that it is not clear enough by inspecting the code could be more comprehensible by reading that contents. Regarding your question, in CrazyS both the ground truth odometry sensor (without bias and noise) and the Crazyflie IMPU MPU-9250 are described by using the macro defined in the The file (the one I mentioned earlier) contains a full list of sensors, but sensors that will be used during a vehicle simulation (the Crazyflie 2.0, the Parrot AR.Drone, or other) are defined in the appropriate As described in the papers, the Crazyflie control architecture was designed using (as in realty) a part of information from the ground truth odometry sensor and part of the information from the on-board IMU of the Crazyflie. If you decide to overwrite or delete one of theese, the controller will be unstable because it will not be able to compensate for errors to track the reference signals. All topics used during the aricraft simulation (both with state estimator and not) are defined in the |
Why is the generic odometry sensor used, as defined in the |
In RotorS, the ROS package used as a base for CrazyS, the macro that describes the behavior of a generic odometry sensor is implemented in the The remapped function has been reatained to create as much as possible a similarity with the launch files in RotorS, e.g. Finally, as you can see in the |
I walked across this problem with the odometry and IMU in the simulation.
There is one generic odometry sensor in the file mav_generic_odometry_sensor.gazebo. And then there is another one in the crazyflie2_base.xacro, which is the ground truth odometry sensor. There are also 2 IMU sensors. One is the MPU-9250 IMU and the other one is the ground truth IMU.
The problem I had was that when I disabled the ground truth sensor, the vehicle became unstable. However, I couldn't find anywhere in the code where the ground truth topics were subscribed.
The strange thing is when I changed the ground truth topics to arbitrary names, the vehicle remained stable. But as long as I remove the sensors, it became unstable.
Also, when I removed the generic odometry sensor, and subscribe to the ground truth topics directly instead of 'odometry_sensor1', the vehicle became unstable as well.
Somehow the genraic sensors and the ground truth sensors are interconnected and I couldn't find the connection.
I notice that the childframes of the two odometry sensors are different.
I am wondering if I missed something that's going on internally using the ground truth odometry and IMU. Thanks!
The text was updated successfully, but these errors were encountered: