inno_vtol_dynamics repository

Repository Summary

Checkout URI https://github.com/InnopolisAero/inno_vtol_dynamics.git
VCS Type git
VCS Version main
Last Updated 2023-11-08
Dev Status MAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
innopolis_vtol_dynamics 0.0.0

README

UAV HITL dynamics Quality Gate Status Code Smells Lines of Code Coverage

This package is the core of the UAV HITL dynamics simulator. It has an implementation of custom quadcopter vertical takeoff and landing aircraft dynamics.

VTOL plane

Innopolis VTOL has UAVCAN onboard electronics based on RaccoonLab Cyphal/DroneCAN sensors and actuators (so it's a good example of full UAVCAN-based onboard control and object for new UAVCAN-HITL simulation approach).

This package contains Innopolis VTOL simulation based on rigid body kinematics and dynamics, CFD analysis and actuators simulation.

Innopolis VTOL plane dynamics structure

The package is used inside a new Cyphal/DroneCAN-HITL .

The node from this package communicates with the flight stack via communicator UAV dynamics by subscribing and publishing to the following topics:

flowchart LR

actuators[ /uav/actuators, sensor_msgs/Joy] --> F(uav_hitl_node)
arm[ /uav/arm, std_msgs/Bool] --> F(uav_hitl_node)
calibration[ /uav/calibration, std_msgs/UInt8] --> F(uav_hitl_node)
scenario[ /uav/scenario, std_msgs/UInt8] --> F(uav_hitl_node)
F --> temperature[ /uav/static_temperature, std_msgs/Float32]
F --> static_pressure[ /uav/static_pressure, std_msgs/Float32]
F --> raw_air_data[ /uav/raw_air_data, std_msgs/Float32]
F --> gps_point[ /uav/gps_point, sensor_msgs/NavSatFix]
F --> velocity[ /uav/velocity, geometry_msgs/Twist]
F --> imu[ /uav/imu, sensor_msgs/Imu]
F --> mag[ /uav/mag, sensor_msgs/MagneticField]
F --> esc_status[ /uav/esc_status, mavros_msgs/ESCTelemetryItem]
F --> ice_rpm[ /uav/esc_status, mavros_msgs/ESCStatusItem]
F --> ice_status[ /uav/ice_status, std_msgs/UInt8]
F --> fuel_tank_status[ /uav/ice_status, std_msgs/UInt8]
F --> battery_status[ /uav/battery_status, sensor_msgs/BatteryState]

Auxilliary topics might be enabled/disabled in the sim_params.yaml config file. You may implement your own sensors in the sensors.cpp file.

To work in pair with InnoSimulator as physics engine via inno_sim_interface it publishes and subscribes on following topics.

flowchart LR

F(uav_hitl_node) --> actuators[ /uav/actuators, sensor_msgs/Joy]
F --> gps_point[ /uav/gps_point, sensor_msgs/NavSatFix]
F --> velocity[ /uav/velocity, geometry_msgs/Twist]
F --> attitude[ /uav/attitude, geometry_msgs/QuaternionStamped]
actuators --> G(inno_sim_interface)
gps_point --> G
velocity --> G
attitude --> G

CONTRIBUTING

No CONTRIBUTING.md found.

Repository Summary

Checkout URI https://github.com/InnopolisAero/inno_vtol_dynamics.git
VCS Type git
VCS Version main
Last Updated 2023-11-08
Dev Status MAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
innopolis_vtol_dynamics 0.0.0

README

UAV HITL dynamics Quality Gate Status Code Smells Lines of Code Coverage

This package is the core of the UAV HITL dynamics simulator. It has an implementation of custom quadcopter vertical takeoff and landing aircraft dynamics.

VTOL plane

Innopolis VTOL has UAVCAN onboard electronics based on RaccoonLab Cyphal/DroneCAN sensors and actuators (so it's a good example of full UAVCAN-based onboard control and object for new UAVCAN-HITL simulation approach).

This package contains Innopolis VTOL simulation based on rigid body kinematics and dynamics, CFD analysis and actuators simulation.

Innopolis VTOL plane dynamics structure

The package is used inside a new Cyphal/DroneCAN-HITL .

The node from this package communicates with the flight stack via communicator UAV dynamics by subscribing and publishing to the following topics:

flowchart LR

actuators[ /uav/actuators, sensor_msgs/Joy] --> F(uav_hitl_node)
arm[ /uav/arm, std_msgs/Bool] --> F(uav_hitl_node)
calibration[ /uav/calibration, std_msgs/UInt8] --> F(uav_hitl_node)
scenario[ /uav/scenario, std_msgs/UInt8] --> F(uav_hitl_node)
F --> temperature[ /uav/static_temperature, std_msgs/Float32]
F --> static_pressure[ /uav/static_pressure, std_msgs/Float32]
F --> raw_air_data[ /uav/raw_air_data, std_msgs/Float32]
F --> gps_point[ /uav/gps_point, sensor_msgs/NavSatFix]
F --> velocity[ /uav/velocity, geometry_msgs/Twist]
F --> imu[ /uav/imu, sensor_msgs/Imu]
F --> mag[ /uav/mag, sensor_msgs/MagneticField]
F --> esc_status[ /uav/esc_status, mavros_msgs/ESCTelemetryItem]
F --> ice_rpm[ /uav/esc_status, mavros_msgs/ESCStatusItem]
F --> ice_status[ /uav/ice_status, std_msgs/UInt8]
F --> fuel_tank_status[ /uav/ice_status, std_msgs/UInt8]
F --> battery_status[ /uav/battery_status, sensor_msgs/BatteryState]

Auxilliary topics might be enabled/disabled in the sim_params.yaml config file. You may implement your own sensors in the sensors.cpp file.

To work in pair with InnoSimulator as physics engine via inno_sim_interface it publishes and subscribes on following topics.

flowchart LR

F(uav_hitl_node) --> actuators[ /uav/actuators, sensor_msgs/Joy]
F --> gps_point[ /uav/gps_point, sensor_msgs/NavSatFix]
F --> velocity[ /uav/velocity, geometry_msgs/Twist]
F --> attitude[ /uav/attitude, geometry_msgs/QuaternionStamped]
actuators --> G(inno_sim_interface)
gps_point --> G
velocity --> G
attitude --> G

CONTRIBUTING

No CONTRIBUTING.md found.