Skip to content

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