Skip to content
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

Topic/state integrator #70

Open
wants to merge 13 commits into
base: devel
Choose a base branch
from

Conversation

NoelieRamuzat
Copy link

Add a simple integrator to be used with the generic-device entity of sot-core (see PR #136 ).

It uses pinocchio::urdf::buildModelFromXML to retreive the size of the position/velocity/acceleration vectors. Perhaps can be done in another way to remove the dependency to urdfDOM.

Because of this dependency, I had the same issue than the number #1106 in pinocchio and have do add :

SET(URDFDOM_COMPILE_FLAGS " -DPINOCCHIO_URDFDOM_TYPEDEF_SHARED_PTR -DPINOCCHIO_URDFDOM_USE_STD_SHARED_PTR -DPINOCCHIO_WITH_URDFDOM")

add_definitions(${URDFDOM_COMPILE_FLAGS})

in the CMakeLists.txt.

I have issues with the python tests so it is a draft for now.

NoelieRamuzat added 9 commits August 19, 2019 17:53
To be plugged before the device if integration of the control is needed:
Only for control in Velocity and Acceleration for now.
Check the size of the signal to separate two cases: with and without a control on the freeflyer.
The integration of the freeflyer works as an odometry predictive system.
Use device.cpp from sot-core. Add yaml files to create the device for the test.
Set the input control of the integrator to -0.5 m/s (velocity) for every joints.
Plug the output stateSOUT_ of the integrator to the input control of the device. The control type of the joints on the hardware side (in device) is in position.
At the end of the loop the output of the device (motor control) correspond to the limits of the joints in position (as expected, the velocity control push the joints to their limits).
In the test a freeflyer is given and integrated as an odometry system.
Replace signal controlTypeSIN by setter : with strings or ints (for addcommand)
…eeflyer

Add entry signal for freeflyer (freeFlyerSIN), add a variable to define controlType of the Freeflyer (controlTypeFF_) with setter. 
Add two output signals for freeflyer one for Euler angles (freeFlyerPositionEulerSOUT_) and the other for quaternions (freeFlyerPositionQuatSOUT_).
Change the computation of the Euler angles to assure their range to be [-pi:pi]x[-pi/2:pi/2]x[-pi:pi].
Store the values as SoTControlType instead of using strings.
First integration (acceleration) of freeflyer changed to normal integration not rollPitchYaw (mistake). 
Add command to define the type of one joint.
@nim65s
Copy link
Contributor

nim65s commented May 12, 2020

I'll try to understand your issue with the flags in the afternoon.
About the dependency to urdfdom, this is something we already have in many places, and that is pretty standalone (ie. it doesn't come with a ton of dependencies on its own), so it's totally OK to use it here.

@NoelieRamuzat NoelieRamuzat marked this pull request as ready for review July 31, 2020 09:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants