monomotion / flom Goto Github PK
View Code? Open in Web Editor NEWlibrary to handle keyframed motion of robots
Home Page: https://flom.readthedocs.org/
License: GNU General Public License v3.0
library to handle keyframed motion of robots
Home Page: https://flom.readthedocs.org/
License: GNU General Public License v3.0
SSIA
frame_iterator
is not a random access iterator, so it can iterate without calling Motion::frame_at
in each forwards.
For example:
at frame 0, effector "a" has location of (0,0,0), rotation of None,
at frame 1, effector "a" has location of None, rotation of (0,0,0,0),
(pseudo-motion)
flom can't interpolate frame 0 and frame 1 properly.
So this should be handled as invalid or something.
To conform with Motion::keyframes
SSIA
A sub issue of #23
Motion::get_or_insert_frame
can add frame, however there is no way to delete existing frame.
Proposed APIs:
void Motion::insert_keyframe(long t, Frame const& frame)
// by indexvoid Motion::insert_keyframe(double t, Frame const& frame)
// by timeFrame Motion::delete_keyframe(long i)
// by indexFrame Motion::delete_keyframe(double t)
// by timeKeyFrameRange Motion::keyframes()
// bidirectional iterator (writable)And delete get_or_insert_frame
This depends on #7
Reference: Arch package guidelines
SSIA, low priority
SSIA
https://travis-ci.org/DeepL2/flom/jobs/473237127
[Bintray Upload] Reading descriptor file: bintray.json
[Bintray Upload] Uploading file 'build/dist/flom-0.1+develop-Linux-x86_64.deb' to 0.1+develop/flom-0.1+develop-Linux-x86_64.deb
[Bintray Upload] Bintray response: 409 Conflict. Unable to upload files: An artifact with the path '0.1+develop/flom-0.1+develop-Linux-x86_64.deb' already exists
[Bintray Upload] Uploading file 'build/dist/flom-0.1+develop-Linux-x86_64.pkg.tar.xz' to 0.1+develop/flom-0.1+develop-Linux-x86_64.pkg.tar.xz
[Bintray Upload] Bintray response: 409 Conflict. Unable to upload files: An artifact with the path '0.1+develop/flom-0.1+develop-Linux-x86_64.pkg.tar.xz' already exists
[Bintray Upload] Uploading file 'build/dist/flom-0.1+develop-Linux-x86_64.rpm' to 0.1+develop/flom-0.1+develop-Linux-x86_64.rpm
[Bintray Upload] Bintray response: 409 Conflict. Unable to upload files: An artifact with the path '0.1+develop/flom-0.1+develop-Linux-x86_64.rpm' already exists
[Bintray Upload] Uploading file 'build/dist/flom-0.1+develop-Linux-x86_64.tar.gz' to 0.1+develop/flom-0.1+develop-Linux-x86_64.tar.gz
[Bintray Upload] Bintray response: 409 Conflict. Unable to upload files: An artifact with the path '0.1+develop/flom-0.1+develop-Linux-x86_64.tar.gz' already exists
[Bintray Upload] Uploading file 'build/dist/flom-0.1+develop-Linux-x86_64.zip' to 0.1+develop/flom-0.1+develop-Linux-x86_64.zip
[Bintray Upload] Bintray response: 409 Conflict. Unable to upload files: An artifact with the path '0.1+develop/flom-0.1+develop-Linux-x86_64.zip' already exists
[Bintray Upload] Publishing version '0.1+develop' of package 'latest'...
[Bintray Upload] Bintray response: 200 OK.
import_legacy_json
and convert_legacy
binary are not needed since DeepL2/BlendMotion finished integration to flom
{
"modelId": "a",
"loop": "None",
"effectorTypes": {
"": {
"location": "World",
"rotation": "World"
}
},
"frames": [
{
"t": 0,
"positions": {},
"effectors": {
"": {
"location": {
"value": {
"vector": {
"x": 0,
"y": 0,
"z": 0
},
"weight": 0
}
},
"rotation": {
"value": {
"quaternion": {
"w": 0.707106949337315,
"x": -0.0002815439416482546,
"y": -0.7071065009352508,
"z": -0.0002815439416482546
},
"weight": 0
}
}
}
}
}
]
}
After load/dump:
{
"modelId": "a",
"loop": "None",
"effectorTypes": {
"": {
"location": "World",
"rotation": "World"
}
},
"frames": [
{
"t": 0,
"positions": {},
"effectors": {
"": {}
}
}
]
}
After some research, only t = 0 frames are not saved during import of motion.
Warning or something like that...
SSIA
This needs to be done to achieve MonoMotion/flom-py#1
SSIA
Support poac
If possible, do an auto deployment from Travis CI
SSIA
At least, main APIs (motion.hpp) should have any documentation.
Generate human-readable docs (doxygen), if possible.
Use gen::nonNegative
to generate >=0 double, instead of filtering with RC_PRE
SSIA
Lines 66 to 71 in 4c8f3aa
TODO
comment in 4c8f3aa when #74 was merged. cc @MonoMotion.A sub issue of #23
as well as delete_keyframe
Header files in test/
are currently not formatted by clang-format
.
SSIA
Will be implemented at DeepL2/flom-py
for convinience
Use codecov
Reference: https://github.com/codecov/example-cpp11-cmake
At least g++, use clang++ if possible
(See: https://clang.llvm.org/docs/SourceBasedCodeCoverage.html)
auto const empty = flom::Motion();
empty.is_valid(); // false
¯_(ツ)_/¯
These functions returns .c_str()
to temporary std::string
object
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.