intelligent-systems-lab-org / simunex Goto Github PK
View Code? Open in Web Editor NEWA high-fidelity dynamic simulation framework.
License: Other
A high-fidelity dynamic simulation framework.
License: Other
An AUV (Autonomous Underwater Vehicle) is a class of UUVs (Unmanned Underwater Vehicles) that can be considered an underwater counterpart of an UAV (Unmanned Aerial Vehicle). As they operate underwater, they experience a multitude of environmental forces such as drag, lift, buoyancy, and added mass.
Added mass is a unique force that acts on the acceleration of the moving body. Since the magnitude can vary across DOF, the simplest way to implement an acceleration-based force is by using a mass matrix
New to SimuNEX is the implementation of control surfaces such as fins which allow for movement underwater along with propulsion. Just like the PropellerFunction
, an equivalent FinFunction
would be implemented for fin dynamics as a MotorLoad
object.
TODO
Actuators and sensors play crucial roles in SimuNEX. By adding faults to both systems, it enhances the realism and variability of simulation scenarios and thus the fidelity of the simulator.
TODO:
Description:
To implement a system of environment fields and forces to simulate various physical phenomena in SimuNEX.
A proof of concept is where an environment is defined as a specific space where these forces are applicable. Outside of the field, the forces are absent. Examples include gravitational fields and buoyancy when submerged in a fluid.
TODO:
RigidBodyF
RigidBody
that contains relevant fluid properties such as volume, etc.Environment Class:
ForceField Class:
SimpleGravity:
SimpleBuoyancy:
SimpleGravityField:
SimpleBuoyancyField:
In our CI/CD pipeline, the checkout
GH action is a crucial for fetching the repository content into the runner environment. However, we've encountered situations where the action fails or behaves unexpectedly, and the logs do not provide sufficient detail to understand the root cause.
The checkout action was tested with v2-v4, all of which result in the same error: (Error: fatal: could not read Username for 'https://github.com': terminal prompts disabled)
, with various solutions tried but all of failed to work.
We are looking into an alternative workflow (e.g., CircleCI) and any contributions would be appreciated.
There is an ongoing issue with the build system, which is crucial for creating SimuNEX executables.
This issue relates only to ROS 2 since it is currently the only communication "protocol" (ROS 2 is actually a middleware, not really a protocol).
Upon building the demos, it seems that the topics created by the COMSystem with the ROS 2 Connector do not initialize at runtime.
This issue should be fixed ASAP.
Implement communication mechanisms with external entities. Only ROS 2 would be sufficient to complete the task. No need for packet loss functionality yet.
TODO:
Requirements:
TODOS
We have successfully encapsulated the Euler, Heun, and RK4 methods within our Integrator
class. The unit testing framework we've constructed provides a robust preliminary examination of these methods across a set of three ODEs, benchmarking them against known solutions. However, this current setup predominantly confirms the capability of these solvers in handling ODEs, but it falls short of affirming the correct implementation of each individual integrator method.
To guarantee the correct implementation of our integrators, we need to add validation tests specific to each method. Here are some suggestions:
Analytical Comparisons:
Method-Specific Properties:
Comparisons with Established Libraries:
This initiative aims to provide a more meticulous validation of our integrators, ensuring that each method is accurately implemented and performs reliably under a broad spectrum of conditions. Your insights and contributions towards this goal are highly valued.
Looking forward to your constructive feedback and collaboration on this endeavor.
Objective:
To integrate the Eigen C++ Library into the Unity framework for efficient matrix operations and advanced mathematical functionalities.
Background:
Unity lacks an efficient and transparent mechanism for intricate matrix operations. The Eigen C++ Library is widely used in high-performance applications, including TensorFlow and DART Physics. The inclusion of Eigen will bring transparency and reliability, which are vital for precision and repeatability in simulations, a shortfall observed in libraries like MathNet (which has been tried previously but was unsuccessful due to NuGet inconsistencies with Unity).
TODOS: (Do not tick unless there is an associated passing unit test)
Exceptions
Exception handling is not needed at this stage in the interest of deadlines. However, at a later point in time, it will be mandatory to implement.
Deliverables:
A robust integration of the Eigen C++ Library into Unity, enabling high-performance matrix operations, enhancing algorithm efficiency, and paving the way for advanced mathematical and physics-based simulations in the Unity environment.
See 395919d.
A major change to the way forces is applied is necessary because of this issue.
One way I'm thinking of is have a Vector6DOF store a CoordinateFrame object which indicates its frame of reference. Then provide two methods to convert between frames and given a Vector6DOF is already in a specific CoordinateFrame, then do not apply.
When implementing interoperability with eigen3 in C#, unit tests were conducted without considering exceptions in interest of time. For example, adding matrices of unequal size, multiplying matrices with incompatible sizes, inverse on a non-square matrix, etc.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.