Git Product home page Git Product logo

softrobots's People

Contributors

adagolodjo avatar alxbilger avatar bakpaul avatar bcarrez avatar camille-k avatar christianduriez avatar damienmarchal avatar epernod avatar erwandouaille avatar eulaliecoevoet avatar fredroy avatar guparan avatar hugtalbot avatar louise-scherrer avatar margaretkoehler avatar marques-bruno avatar olivier-goury avatar olivier-roussel avatar peyronq1 avatar tanguynav avatar vannestefelix avatar zhongkai-zhang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

softrobots's Issues

Some issues reported in the tutorial of sofapython3

@guparan @ErwanDouaille @alxbilger @hugtalbot @damienmarchal

I have encountered several problems in the tutorial of sofapython3 (using the Linux + Python3.8 version of the robosoft2022 conference). Thank you very much for reviewing these issues.

1. When I try to change the color with the code in the FirstStep tutorial

Cube(rootNode,
      translation=[0.0,0.0,0.0],
      uniformScale=20.0,
      color=[0.0,0.0,1.0]) 

After reload, the color of the cube has not been changed and in the terminal shows

Finished validating node "root".
[WARNING] [CGLinearSolver(CGLinearSolver)] Required data "iterations" has not been set. Falling back to default value: 25
[WARNING] [CGLinearSolver(CGLinearSolver)] Required data "tolerance" has not been set. Falling back to default value: 1e-05
[WARNING] [CGLinearSolver(CGLinearSolver)] Required data "threshold" has not been set. Falling back to default value: 1e-05

I am not sure if it is the problem of the code itself.

2. When I try to use the keyboard to control the cable in the tutorial of CableGripper

The terminal shows Finished validating node "root".
[WARNING] [Node(root)] Default Animation Manager Loop will be used. Add DefaultAnimationLoop to the root node of scene file to remove this warning
[INFO] [SofaViewer] QtViewer::keyPressEvent, CONTROL pressed
[INFO] [SofaViewer] QtViewer::keyPressEvent, CONTROL pressed

But the cable is not moving, and I don't know the reason.

3. In the Pneunet Gripper tutorial

When I press ctrl++ or ctrl -, the gripper is not inflated or deflated, the terminal just shows
WARNING] [LocalMinDistance(Proximity)] Determinant is null

4. The detailed tutorials of CircularRobot, DiamondRobot, Trunk and SoftArmGripper are lost. May I ask where I can learn those API and Python Classes?

5. When I open the scene of duplicating the finger in the CableGripper tutorial, the scene is so weird to have two fingers unregularly crosses.

image

Extra createTopologyHandler call in tutorials

You guys have made some absolutely fantastic tutorials. They've been super helpful!

I'm seeing this error when I run the Tripod example for step4-3.py:

[ERROR]   [UniformMass(mass)] TopologyData: indices already has a TopologyDataHandler. createTopologyHandler should only be called once at init of the TopologyData.
[WARNING] [UniformMass(mass)] totalMass value overriding the value of the attribute vertexMass. 
vertexMass = totalMass / nb_dofs. 
To remove this warning you need to set either totalMass or vertexMass data field, but not both.

It seems like it's coming when calling self.ElasticBody.init() in to the Elastic function, as it calls the UniformMass function in elasticbody.py and seems to be conflicting with some other definition of the vertexMass in another function. I'm trying to figure out where the vertexMass or other UniformMass is also defined in the code here or behind the scenes where I'm not seeing it?

SOFA_v20.12.00_Linux tutorial plugins

The softrobot &co plugins to have to be added one by one after a fresh install (SOFA_v20.12.00_Linux). It could be nice to update the default configuration in the binaries.

Merge fix branches

Hi @margaretkoehler, @VannesteFelix

You share some changes in these branches:

  • fixVSCompilation
  • fix_missing-dll-link

I feel like they are good fix and we should merge them into master (and delete them after?). Is it a work in progress? What do you think?

Can't compile Sofa

Hi @EulalieCoevoet
I'm an internship at CRIStAL and i'm currently working on CoBra and I have some issues while compiling Sofa with SoftRobots. In fact, my simulation not only need SoftRobots but also SoftRobotsInverse and I have 2 problems with this. Firstly, after the compilation with SoftRobots, it is said that the plugin SoftRobots is not founded (https://imgur.com/a/7QUR9lP) and secondly, the SoftRobotsInverse I have is not up to date. Can you help me please ?

CableGripper tutorial not working

CableGripper tutorial is not working with current version of Sofa (only step1 is working).
Here is the error obtained when launching step0 :

[ERROR] [PythonScript] TypeError: 'staticmethod' object is not callable
File "step0.pyscn", line 11, in createScene
Gripper(rootNode)
File "gripper.py", line 14, in Gripper
pullPointLocation=[3, 10.5, 3])
File "finger.py", line 39, in Finger
translation=translation)

STLIB and SoftRobots plugins are up to date, I tested with Sofa-defrost and Sofa-framework sources.

I imagine that the problem is not very complicated but I let the professionals take care of that.

Issue on CableGripper Tutorials

Hi,

I followed the tutorial of DefrostSofaBundle/plugins/SoftRobots/docs/sofapython3/tutorials/CableGripper/cablegripper-tuto.md to create my own cube&floor scene, and I figured out that the tutorial is out-dated in terms of the VisualModel.

From the Line# 54 The tutorial asked me to modify the */CableGripper/myproject/cablegripper.py file like the following:

from stlib3.visuals import ShowGrid
from stlib3.physics.rigid import Floor
from stlib3.physics.rigid import Cube

def createScene(rootNode):
    """This is my first scene"""
    ShowGrid(rootNode)

    Floor(rootNode,
          translation=[0.0,0.0,0.0],
          isAStaticObject=True)

    Cube(rootNode,
          translation=[0.0,0.0,0.0])


    return rootNode

However, the terminal log shows that there is no such module called ShowGrid in the visuals package

[ERROR]   [SofaPython3::SceneLoader] Unable to completely load the scene from file '/home/jeremy/DefrostSofaBundle/plugins/SoftRobots/docs/sofapython3/tutorials/CableGripper/myproject/cablegripper.py'.  
Python exception:   
  ImportError: cannot import name 'ShowGrid' from 'stlib3.visuals' (/home/jeremy/DefrostSofaBundle/plugins/STLIB/lib/python3/site-packages/stlib3/visuals/__init__.py)

Hence, I checked with the source code here and think the right expression based on the current structure of stlib3 should be like this:

from stlib3.visuals.visualmodel import VisualModel
def createScene(rootNode):
    VisualModel.showGrid(rootNode)

PneunetGripper tutorial doesn't rotate

Hi all,
the problem occurs because the code in "wholeGripperController.py" calls the moveRestPos() function instead of rotateRestPos() for rotations:

 # Direct rotation
        elif e["key"] == "A":
            for i in range(3):
                results = moveRestPos(self.dofs[i].rest_position.value, math.pi / 16, self.centerPosY, self.centerPosZ)

...

        # Indirect rotation
        elif e["key"] == "Q":
            for i in range(3):
                results = moveRestPos(self.dofs[i].rest_position.value, -math.pi / 16, self.centerPosY, self.centerPosZ)

should be:

 # Direct rotation
        elif e["key"] == "A":
            for i in range(3):
                results = rotateRestPos(self.dofs[i].rest_position.value, math.pi / 16, self.centerPosY, self.centerPosZ)

...

        # Indirect rotation
        elif e["key"] == "Q":
            for i in range(3):
                results = rotateRestPos(self.dofs[i].rest_position.value, -math.pi / 16, self.centerPosY, self.centerPosZ)

Sofa and plugins 21.12 (also 22.06 RoboSoft version)
Can you confirm it?
Thank you!

Errors in Running PneunetGripper Example

Hi,

I have an issue when I want to run the python codes for PneunetGripper example in SOFA scene. I just added "SoftRobots" and "STLIB" plugins to SOFA and SOFA_Pyhton plugin as well.

I followed the tutorial in which coding for PneunetGripper example is explained step by step (step 1 to 7) and accumulate all the python codes for each step in a single *.pyscn. Then, I opened the resulted *.pyscn from SOFA, but I cannot see anything except the "coordinate system" and a "red plate" in the screen.

Moreover, I have tried each step separately to open in SOFA. I could be able to see the mesh for Step 1, ForceField and Mass in Step 2, the stiff layer in Step 3, the boundary condition (constraint) in Step 4, but I would not see anything when I run the whole python code which is also mentioned in the Appendix of the tutorial for Pneunetgripper.

I got these errors:

  1. Plugin not found: "SoftRobots"
  2. RuntimeError: Unable to create 'directSolver' of type 'SparseLDLSolver' in node 'finger'. Object type SparseLDLSolver<> was not created. This component has been PLUGINIZED since SOFA v18.06. To continue using this component you need to update you scene and add

The directory in which I have the pythons codes and sofa:
/home/sofa/src&build/
/home/Python_Sofa/PneunetGripper/details/pneunetgripper-tuto.pyscn

I will be appreciated if you help me to solve these issues.
Thank you,
Amir

Configuring incomplete

Hi,

I tried to build the softrobots and softrobots_inverse plugin, but I always have a problem with Sofa:simpleApi.

Screenshot from 2024-04-10 14-46-14

Thank you!

Problem with PointCloudProcessing

Hello I recently want to use Soft Robots with camera plugin ( I have a Realsense D435) and I found an error in the code PointCloudProcessing.cpp, The following:

home/pasquale/sofa/src/applications/plugins/SoftRobots/src/SoftRobots/component/camera/PointCloudProcessing.cpp: In member function ‘void sofa::component::pointcloudprocessing::PointCloudProcessing::computeEffectorsDirection(pcl::PointCloud<pcl::PointXYZRGB>::Ptr&, pcl::PointCloud<pcl::Normal>::Ptr&)’:
/home/pasquale/sofa/src/applications/plugins/SoftRobots/src/SoftRobots/component/camera/PointCloudProcessing.cpp:272:53: error: declaration of ‘pcl::PointCloud<pcl::Normal>::Ptr cloud_normals’ shadows a parameter
  272 |     pcl::PointCloud<pcl::Normal>::Ptr cloud_normals (new pcl::PointCloud<pcl::Normal>);
      |                                                     ^
/home/pasquale/sofa/src/applications/plugins/SoftRobots/src/SoftRobots/component/camera/PointCloudProcessing.cpp:246:146: warning: unused parameter ‘cloud_normals’ [-Wunused-parameter]
  246 | YZRGB>::Ptr& robot_effectors, pcl::PointCloud<pcl::Normal>::Ptr& cloud_normals)
      |                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~

In file included from /usr/include/eigen3/Eigen/Core:366,
                 from /usr/include/pcl-1.10/pcl/pcl_macros.h:75,
                 from /usr/include/pcl-1.10/pcl/point_types.h:42,
                 from /home/pasquale/sofa/src/applications/plugins/SoftRobots/src/SoftRobots/component/camera/PointCloudStreaming.h:34,
                 from /home/pasquale/sofa/src/applications/plugins/SoftRobots/src/SoftRobots/component/camera/PointCloudProcessing.h:28,
                 from /home/pasquale/sofa/src/applications/plugins/SoftRobots/src/SoftRobots/component/camera/PointCloudProcessing.cpp:25:
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h: In instantiation of ‘void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<double, 4, 4>; Src = Eigen::CwiseNullaryOp<Eigen::internal::scalar_identity_op<float>, Eigen::Matrix<float, 4, 4> >; Func = Eigen::internal::assign_op<double, float>]’:
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:804:27:   required from ‘void Eigen::internal::call_assignment(Dst&, const Src&, const Func&, typename Eigen::internal::enable_if<(! Eigen::internal::evaluator_assume_aliasing<Src>::value), void*>::type) [with Dst = Eigen::Matrix<double, 4, 4>; Src = Eigen::CwiseNullaryOp<Eigen::internal::scalar_identity_op<float>, Eigen::Matrix<float, 4, 4> >; Func = Eigen::internal::assign_op<double, float>; typename Eigen::internal::enable_if<(! Eigen::internal::evaluator_assume_aliasing<Src>::value), void*>::type = void*]’
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:782:18:   required from ‘void Eigen::internal::call_assignment(Dst&, const Src&) [with Dst = Eigen::Matrix<double, 4, 4>; Src = Eigen::CwiseNullaryOp<Eigen::internal::scalar_identity_op<float>, Eigen::Matrix<float, 4, 4> >]’
/usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h:714:32:   required from ‘Derived& Eigen::PlainObjectBase<Derived>::_set(const Eigen::DenseBase<OtherDerived>&) [with OtherDerived = Eigen::CwiseNullaryOp<Eigen::internal::scalar_identity_op<float>, Eigen::Matrix<float, 4, 4> >; Derived = Eigen::Matrix<double, 4, 4>]’
/usr/include/eigen3/Eigen/src/Core/Matrix.h:225:24:   required from ‘Eigen::Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>& Eigen::Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>::operator=(const Eigen::DenseBase<OtherDerived>&) [with OtherDerived = Eigen::CwiseNullaryOp<Eigen::internal::scalar_identity_op<float>, Eigen::Matrix<float, 4, 4> >; _Scalar = double; int _Rows = 4; int _Cols = 4; int _Options = 0; int _MaxRows = 4; int _MaxCols = 4]’
/home/pasquale/sofa/src/applications/plugins/SoftRobots/src/SoftRobots/component/camera/PointCloudProcessing.cpp:121:45:   required from here
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:834:3: error: static assertion failed: YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY
  834 |   EIGEN_CHECK_BINARY_COMPATIBILIY(Func,typename ActualDstTypeCleaned::Scalar,typename Src::Scalar);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [applications/plugins/SoftRobots/CMakeFiles/SoftRobots.dir/build.make:362: applications/plugins/SoftRobots/CMakeFiles/SoftRobots.dir/src/SoftRobots/component/camera/PointCloudProcessing.cpp.o] Errore 1
make[1]: *** [CMakeFiles/Makefile2:8932: applications/plugins/SoftRobots/CMakeFiles/SoftRobots.dir/all] Errore 2
make: *** [Makefile:163: all] Errore 2

How to resolve this issue?
Anyway, Want basically track my robot with a camera.... I am also buying the license of SoftRobot.Inverse plugin, the tracking is possible in the Inverse plugin or in this one?

Thanks in Advance

Having trouble opening step 4 of Tripod Tutorial

Hi guys,

When I am trying to open Step 4-1 of Tripod Tutorial, there will be a warning in the terminal:
Terminal
and showing nothing in SOFA.(SOFA_interface)
After I added these plugins into the plugin-list, the warning disappeared while there was still nothing shown in SOFA.
(The same thing happens to Step 4-2 & Step 4-3 files)
Anyone have any ideas about how to fix this?

SoftRobots plugin must not refer SoftRobots.Inverse plugin

A lot of scenes from the SoftRobots plugin refer the SoftRobots.Inverse plugin through the RequiredPlugin component. Yet, the SoftRobots.Inverse plugin depends on SoftRobots, but not the opposite.

  • If the scene does not need SoftRobots.Inverse, it should be removed from the required plugin lists
  • If the scene does need SoftRobots.Inverse, the scene should be: 1) transferred to the SoftRobots.Inverse plugin, or 2) transformed to remove the dependency.

Unable to create 'HexahedronFEMForceField'

Hi,
Are there SOFA experts here who are forced to stay at home and do not know what to do?

I was trying to create a simple to test some algorithms. I would like to create a model a beam using hexahedra model.
However, I am not able to use the "HexahedronFEMForceField" component properly.
Here is the error I get:

beam.createObject('HexahedronFEMForceField', youngModulus=yModulus, poissonRatio = pRatio, method="large")    

gives the following error:

 The object is in the factory but cannot be created.  
Requested template: ()  
Available templates: Vec3d,

when I add the template in the component call I get a slightly different error:

beam.createObject('HexahedronFEMForceField', template='Vec3d',youngModulus=yModulus, poissonRatio=pRatio, method="large")    

RuntimeError: Unable to create 'HexahedronFEMForceField' of type 'HexahedronFEMForceField' in node 'beam'. Object type HexahedronFEMForceField<Vec3d> was not created  
 The object is in the factory but cannot be created.  
Requested template: Vec3d(Vec3d)  
Available templates: Vec3d,  

What did I do wrong ?!

Thanks !
Maxime


Here is the complete scene :

from stlib.scene import MainHeader

totalMass=0.01
pRatio=0.3
yModulus=500

def createScene(rootNode):
                MainHeader(rootNode, gravity=[0.0,-981.0,0.0])
                rootNode.createObject('RequiredPlugin', pluginName='SoftRobots')
                rootNode.createObject('RequiredPlugin', pluginName='SofaPython')
                rootNode.createObject('RequiredPlugin', pluginName='SofaPreconditioner')

                beam = rootNode.createChild('beam')
                beam.createObject('EulerImplicitSolver', name="odesolver", rayleighStiffness=0.1, rayleighMass=0.1)
                beam.createObject('ShewchukPCGLinearSolver', name='linearSolver',iterations=200, tolerance=1.0e-18, preconditioners="preconditioner")
                beam.createObject('RegularGridTopology', name="SoftBeam", nx="6", ny="2", nz="2", min="0 0 0", max="1 0.2 0.2")     
      
                beam.createObject('HexahedronSetGeometryAlgorithms')
                beam.createObject('HexahedronFEMForceField', template='Vec3d',youngModulus=yModulus, poissonRatio=pRatio, method="large")    
                beam.createObject('MechanicalObject', name="meca")
                beam.createObject('DiagonalMass', totalMass=totalMass)

                beam.createObject('SparseLDLSolver', name="preconditioner")
                beam.createObject('LinearSolverConstraintCorrection', solverName="preconditioner")      

                beam.createObject('BoxROI', name="boxROI", box="-0.01 -0.01 -0.01 0.1 0.2 0.2", drawBoxes="true")
                beam.createObject('RestShapeSpringsForceField', points='@boxROI.indices', stiffness='1e12')

                beam.createObject('GenericConstraintCorrection', name='GCS', solverName='preconditioner')

                return rootNode      

"Try the scene in Sofa." Doesn't work in Windows OS

Hi, When I try the tutorial on Windows, the "Try the scene in Sofa." in the doc browser doesn't work after clicking, but it works in Linux OS. My files are downloaded from https://github.com/SofaDefrost/RoboSoft2022.

The error information is below:

[INFO] [DocBrowser] query to load /C:xx/SOFA_robosoft2022_python-3.8_Windows/plugins/SoftRobots/docs/sofapython3/tutorials/Tripod/details/step5.py
[ERROR] [SofaPython3::SceneLoader] Unable to completely load the scene from file 'C:/xx/SOFA_robosoft2022_python-3.8_Windows/plugins/SoftRobots/docs/sofapython3/tutorials/Tripod/details/step5.py'.
Python exception:
ImportError: cannot import name 'mainheader' from 'stlib3.scene.mainheader' (C:\xx/SOFA_robosoft2022_python-3.8_Windows/plugins/STLIB/lib/python3/site-packages\stlib3\scene\mainheader.py)

At:
C:\xx/SOFA_robosoft2022_python-3.8_Windows/plugins/STLIB/lib/python3/site-packages\stlib3\scene_init_.py(4):
(219): _call_with_frames_removed
(848): exec_module
(686): _load_unlocked
(975): _find_and_load_unlocked
(991): _find_and_load
step5.py(7):
(219): _call_with_frames_removed
(848): exec_module
(686): _load_unlocked
(702): _load
C:\xx/AppData\Local\Programs\Python\Python38\Lib\imp.py(171): load_source
C:\xx/AppData\Local\Programs\Python\Python38\Lib\imp.py(234): load_module
(3):

Thanks for help in advance! @alxbilger @EulalieCoevoet @damienmarchal @ErwanDouaille

PneunetGripper python 3 tutorial crash

Hello all,

In the PneunetGripper tutorial, from step 3 and on, checking "Force Fields" and "Normals" views at the same time causes a crash in the software, unexpectedly closing.

Version: Sofa and Plugin 21.12 (also in the 22.06 RoboSoft version).

Can you reproduce such a behavior?

SOFA (v22.04) crashes when opening Tripod tutorial (Sofapython3/tutorials/Tripod) from SOFA/file/load file

Hi everyone, I have installed the SOFA version 22.04 on Linux. I noticed that SOFA crashes when opening a scene directly from SOFA (file/open).
I attach the log file so that you can take a look at it and verify that all the needed plugins and libraries were loaded.
sofa_crash.log

Instead, if the same scene is opened by writing the file path as argument in the command windows it works. @hugtalbot @damienmarchal @fredroy

[solver] Problem with qpOASES's QProblemB for simply bounded QP

There is a problem with QPInverseProblemSolver when we set constraint only on lambda:

if(nbConstraints==0)
    {
        //only a bounded QP problem (without additional inequalities or equalities)
        //From pqOASES manual: This special form can be exploited within the solution algorithm for speeding up
        //the computation, typically by a factor of three to five.
        QProblemB problem(nbVariables);
        problem.init(Q, c, l, u, nWSR);
    }

The constraints are not satisfied. It works only with the call of:

else
    {
        QProblem* problem = getNewQProblem(nWSR);
        problem->init(Q, c, A, l, u, bl, bu, nWSR);
        ...
    }

Christian used this QProblemB to fix a problem, which one?
I open this issue as a reminder.

Dependence of SurfacePressureConstraint on dt with pressure control (valueType="presure")

Hey. I noticed a strange dependence between the SurfacePressureConstraint and the simulator time step. I noticed this in one of my scenes and found that it affects the examples in this repo too.

The scene I used is a modified version of this example provided by the SoftRobots plugin.

The script has been edited to increase pressure from 0 to 4 (kpa?) over a ramp up period of 0.2 seconds.

The provided videos show the behavior of the stanford bunny under 3 different dt's: 0.01, 0.001, 0.0001.
I provided an additional video with dt=0.0001 which increases pressure more slowly (over a period of 1 second).

A zip file containing the modified script and the videos can be found here:
bunny_dependence_on_dt.zip

The videos show:

  • The bunny deforms differently at each dt.
  • With dt=0.0001, the bunny explodes around 0.5 kpa, independent of how fast the pressure is increased.

Note that the speed/length of the videos don't correspond with real time.

dt_01.mp4
dt_001.mp4
dt_0001.mp4
dt_0001_ramp_up_1_second.mp4

Wrong behavior in the workshop tutorial

During the workshop it was noticed that the Cable based finger react in a weird way to the CTRL+ and -.

Test:
file:///home/dmarchal/Bureau/PREPARE/SOFA_v19.06.99_custom_Linux_v5.1/plugins/SoftRobots/docs/tutorials/CableGripper/details/step4.pyscn

update, doUpdate & writing Engines

Hi,

I looked into the engines implemented in the SoftRobots plugins and they probably are not correct.

The good news is that recently there was changes in sofa on how to/should engines be implemented to make that easier to detect and harder to make invalid code. The changes are breaking but this is a good opportunity to fix that in our plugins. And the doc has been updated:
https://www.sofa-framework.org/community/doc/programming-with-sofa/start-coding/create-your-engine/

The fix is here: #24

EDIT: As usual when I see repeated patterns in all source files, this always rings a bell I wonder...is this thing really useful ?

  virtual std::string getTemplateName() const
    {
        return templateName(this);
    }

    static std::string templateName(const VolumeFromTriangles<DataTypes>* = nullptr)
    {
        return DataTypes::Name();
    }

Sofaros tuto

Hello @EulalieCoevoet ,
I'm trying to do the sofaRos tutorial but I got an error .
I compiled SOFA with SOFAPython3 and I use the rolling version of ros2.

when I run the test_sofaros.py file
with runSofa I have this error :

ModuleNotFoundError: No module named 'rclpy._rclpy_pybind11'
The C extension '/opt/ros/rolling/lib/python3.8/site-packages/_rclpy_pybind11.cpython-39-x86_64-linux-gnu.so' isn't present on the system. Please refer to 'https://index.ros.org/doc/ros2/Troubleshooting/Installation-Troubleshooting/#import-failing-without-library-present-on-the-system' for possible solutions

Which is normal because sofaPython3 uses python3.9 and ros2 uses python3.8 which causes the import error due to version incompatibility

The problem is that I can't compile sofa with sofaPython3 using python3.8

Can you help me please?

Build error : cannot find -lSofaCommon

Hello, I'm trying to install SoftRobots but I can't get pass this error :
/usr/bin/ld: cannot find -lSofaCommon collect2: error: ld returned 1 exit status external_directories/SoftRobots/tests/CMakeFiles/SoftRobots_test.dir/build.make:328: recipe for target 'bin/SoftRobots_test' failed make[2]: *** [bin/SoftRobots_test] Error 1 CMakeFiles/Makefile2:12297: recipe for target 'external_directories/SoftRobots/tests/CMakeFiles/SoftRobots_test.dir/all' failed make[1]: *** [external_directories/SoftRobots/tests/CMakeFiles/SoftRobots_test.dir/all] Error 2 Makefile:162: recipe for target 'all' failed make: *** [all] Error 2

I did try to use SOFA/SoftRobots from your binaries and it works, so I guess something's wrong with the way I'm building it ?

Sofa.PythonScriptController

Hello,
I am trying to run the example pneunetgripper-tuto.py , by copying the final SOFA scene simulation of the soft pneumatic Gripper from the Appendix at pneunetgripper-tuto.md. However, when running with "runSofa -l path/to//libSofaPython3.so ./pneunetgripper-tuto.py" I get the following error:

[ERROR]   [SofaPython3::SceneLoader] Unable to completely load the scene from file './pneunetgripper-tuto.py'.  
Python exception:   
  ValueError: Object type PythonScriptController<> was not created  
The object 'PythonScriptController' is not in the factory.  
But the following exits:  
                      : SutureController (63% match)  
                      : DataController (61% match)  


Can you please help me?

About the inverse control and qpinversesolver

Hi,

I went through the tutorials of the SoftRobots examples, but I still need help figuring out how the inverse control works. The inverse controller used a solver called 'QPInverseSolver,' but I found limited docs about how the solver works and how to use this solver in a SOFA scene file. Do you guys have any ideas about how the inverse control works, and what can I refer to get a deeper understanding of the QPInverseSolver?

errors for building softrobots plugin

In file included from ../src/SoftRobots/component/behavior/SoftRobotsConstraint.h:32,
from ../src/SoftRobots/component/constraint/model/PositionModel.h:30,
from ../src/SoftRobots/component/constraint/model/PositionModel.inl:33,
from ../src/SoftRobots/component/constraint/model/PositionModel.cpp:29:
../src/SoftRobots/component/behavior/SoftRobotsBaseConstraint.h:125:45: error: ‘virtual sofa::type::vector<std::__cxx11::basic_string > softrobots::behavior::SoftRobotsBaseConstraint::getBaseConstraintIdentifiers()’ marked ‘override’, but does not override
125 | virtual sofa::type::vectorstd::string getBaseConstraintIdentifiers() override final
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/SoftRobots/component/behavior/SoftRobotsConstraint.h:32,
from ../src/SoftRobots/component/constraint/UnilateralPlaneConstraint.h:36,
from ../src/SoftRobots/component/constraint/UnilateralPlaneConstraint.inl:33,
from ../src/SoftRobots/component/constraint/UnilateralPlaneConstraint.cpp:29:
../src/SoftRobots/component/behavior/SoftRobotsBaseConstraint.h:125:45: error: ‘virtual sofa::type::vector<std::__cxx11::basic_string > softrobots::behavior::SoftRobotsBaseConstraint::getBaseConstraintIdentifiers()’ marked ‘override’, but does not override
125 | virtual sofa::type::vectorstd::string getBaseConstraintIdentifiers() override final
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/SoftRobots/component/behavior/SoftRobotsConstraint.h:32,
from ../src/SoftRobots/component/constraint/model/CableModel.h:31,
from ../src/SoftRobots/component/constraint/CableConstraint.h:33,
from ../src/SoftRobots/component/constraint/CableConstraint.inl:30,
from ../src/SoftRobots/component/constraint/CableConstraint.cpp:30:
../src/SoftRobots/component/behavior/SoftRobotsBaseConstraint.h:125:45: error: ‘virtual sofa::type::vector<std::__cxx11::basic_string > softrobots::behavior::SoftRobotsBaseConstraint::getBaseConstraintIdentifiers()’ marked ‘override’, but does not override
125 | virtual sofa::type::vectorstd::string getBaseConstraintIdentifiers() override final
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/SoftRobots/component/behavior/SoftRobotsConstraint.h:32,
from ../src/SoftRobots/component/constraint/model/CableModel.h:31,
from ../src/SoftRobots/component/constraint/model/CableModel.inl:33,
from ../src/SoftRobots/component/constraint/model/CableModel.cpp:30:
../src/SoftRobots/component/behavior/SoftRobotsBaseConstraint.h:125:45: error: ‘virtual sofa::type::vector<std::__cxx11::basic_string > softrobots::behavior::SoftRobotsBaseConstraint::getBaseConstraintIdentifiers()’ marked ‘override’, but does not override
125 | virtual sofa::type::vectorstd::string getBaseConstraintIdentifiers() override final
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/SoftRobots/component/behavior/SoftRobotsConstraint.h:32,
from ../src/SoftRobots/component/constraint/model/SurfacePressureModel.h:33,
from ../src/SoftRobots/component/constraint/SurfacePressureConstraint.h:33,
from ../src/SoftRobots/component/constraint/SurfacePressureConstraint.inl:30,
from ../src/SoftRobots/component/constraint/SurfacePressureConstraint.cpp:29:
../src/SoftRobots/component/behavior/SoftRobotsBaseConstraint.h:125:45: error: ‘virtual sofa::type::vector<std::__cxx11::basic_string > softrobots::behavior::SoftRobotsBaseConstraint::getBaseConstraintIdentifiers()’ marked ‘override’, but does not override
125 | virtual sofa::type::vectorstd::string getBaseConstraintIdentifiers() override final
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/SoftRobots/component/behavior/SoftRobotsConstraint.h:32,
from ../src/SoftRobots/component/constraint/model/SurfacePressureModel.h:33,
from ../src/SoftRobots/component/constraint/model/SurfacePressureModel.inl:34,
from ../src/SoftRobots/component/constraint/model/SurfacePressureModel.cpp:31:
../src/SoftRobots/component/behavior/SoftRobotsBaseConstraint.h:125:45: error: ‘virtual sofa::type::vector<std::__cxx11::basic_string > softrobots::behavior::SoftRobotsBaseConstraint::getBaseConstraintIdentifiers()’ marked ‘override’, but does not override
125 | virtual sofa::type::vectorstd::string getBaseConstraintIdentifiers() override final
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/SoftRobots/component/behavior/SoftRobotsConstraint.h:32,
from ../src/SoftRobots/component/behavior/SoftRobotsConstraint.inl:33,
from ../src/SoftRobots/component/behavior/SoftRobotsConstraint.cpp:30:
../src/SoftRobots/component/behavior/SoftRobotsBaseConstraint.h:125:45: error: ‘virtual sofa::type::vector<std::__cxx11::basic_string > softrobots::behavior::SoftRobotsBaseConstraint::getBaseConstraintIdentifiers()’ marked ‘override’, but does not override
125 | virtual sofa::type::vectorstd::string getBaseConstraintIdentifiers() override final
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/SoftRobots/component/forcefield/PREquivalentStiffnessForceField.cpp:30:
../src/SoftRobots/component/forcefield/PREquivalentStiffnessForceField.inl: In instantiation of ‘void softrobots::forcefield::PREquivalentStiffnessForceField::init() [with DataTypes = sofa::defaulttype::StdRigidTypes<3, double>]’:
../src/SoftRobots/component/forcefield/PREquivalentStiffnessForceField.cpp:39:36: required from here
../src/SoftRobots/component/forcefield/PREquivalentStiffnessForceField.inl:119:17: warning: ignoring return value of ‘constexpr bool sofa::type::Mat<L, C, Real>::invert(const sofa::type::Mat<L, C, Real>&) [with unsigned int NbLine = 6; unsigned int NbColumn = 6; = void; unsigned int L = 6; unsigned int C = 6; real = double]’, declared with attribute nodiscard [-Wunused-result]
119 | m_CInv[n].invert(m_complianceMat[n]);
| ^~~~~~
In file included from ../framework/DefaultType/src/sofa/defaulttype/typeinfo/TypeInfo_Mat.h:25,
from ../framework/DefaultType/src/sofa/defaulttype/DataTypeInfo.h:35,
from ../framework/Core/src/sofa/core/objectmodel/BaseData.h:25,
from ../framework/Core/src/sofa/core/objectmodel/Data.h:25,
from ../framework/Core/src/sofa/core/objectmodel/Base.h:25,
from ../framework/Core/src/sofa/core/objectmodel/BaseContext.h:25,
from ../framework/Core/src/sofa/core/objectmodel/BaseObject.h:24,
from ../framework/Core/src/sofa/core/behavior/StateAccessor.h:26,
from ../framework/Core/src/sofa/core/behavior/BaseForceField.h:26,
from ../framework/Core/src/sofa/core/behavior/ForceField.h:25,
from ../src/SoftRobots/component/forcefield/PREquivalentStiffnessForceField.h:31,
from ../src/SoftRobots/component/forcefield/PREquivalentStiffnessForceField.inl:30,
from ../src/SoftRobots/component/forcefield/PREquivalentStiffnessForceField.cpp:30:
../framework/Type/src/sofa/type/Mat.h:695:34: note: declared here
695 | [[nodiscard]] constexpr bool invert(const Mat<L,C,real>& m)
| ^~~~~~
In file included from ../src/SoftRobots/component/forcefield/PREquivalentStiffnessForceField.cpp:30:
../src/SoftRobots/component/forcefield/PREquivalentStiffnessForceField.inl: In instantiation of ‘void softrobots::forcefield::PREquivalentStiffnessForceField::addKToMatrix(sofa::linearalgebra::BaseMatrix*, double, unsigned int&) [with DataTypes = sofa::defaulttype::StdRigidTypes<3, double>]’:
../src/SoftRobots/component/forcefield/PREquivalentStiffnessForceField.cpp:39:36: required from here
../src/SoftRobots/component/forcefield/PREquivalentStiffnessForceField.inl:346:22: error: ‘softrobots::forcefield::PREquivalentStiffnessForceField<sofa::defaulttype::StdRigidTypes<3, double> >::CSRMatB66’ {aka ‘class sofa::linearalgebra::CompressedRowSparseMatrix<sofa::type::Mat<6, 6, double> >’} has no member named ‘wblock’; did you mean ‘wbloc’?
346 | *csrMat->wblock(n, n, true) += block * kFact;
| ~~~~~~~~^~~~~~
| wbloc
../src/SoftRobots/component/forcefield/PREquivalentStiffnessForceField.inl:349:22: error: ‘softrobots::forcefield::PREquivalentStiffnessForceField<sofa::defaulttype::StdRigidTypes<3, double> >::CSRMatB66’ {aka ‘class sofa::linearalgebra::CompressedRowSparseMatrix<sofa::type::Mat<6, 6, double> >’} has no member named ‘wblock’; did you mean ‘wbloc’?
349 | *csrMat->wblock(n, n + 1, true) += block * kFact;
| ~~~~~~~~^~~~~~
| wbloc
../src/SoftRobots/component/forcefield/PREquivalentStiffnessForceField.inl:352:22: error: ‘softrobots::forcefield::PREquivalentStiffnessForceField<sofa::defaulttype::StdRigidTypes<3, double> >::CSRMatB66’ {aka ‘class sofa::linearalgebra::CompressedRowSparseMatrix<sofa::type::Mat<6, 6, double> >’} has no member named ‘wblock’; did you mean ‘wbloc’?
352 | *csrMat->wblock(n + 1, n, true) += block * kFact;
| ~~~~~~~~^~~~~~
| wbloc
../src/SoftRobots/component/forcefield/PREquivalentStiffnessForceField.inl:355:22: error: ‘softrobots::forcefield::PREquivalentStiffnessForceField<sofa::defaulttype::StdRigidTypes<3, double> >::CSRMatB66’ {aka ‘class sofa::linearalgebra::CompressedRowSparseMatrix<sofa::type::Mat<6, 6, double> >’} has no member named ‘wblock’; did you mean ‘wbloc’?
355 | *csrMat->wblock(n + 1, n + 1, true) += block * kFact;
| ~~~~~~~~^~~~~~
| wbloc
In file included from ../src/SoftRobots/component/constraint/model/CableModel.cpp:30:
../src/SoftRobots/component/constraint/model/CableModel.inl: In instantiation of ‘SReal softrobots::constraint::CableModel::getDistanceToTriangle(const Coord&, const Triangle&, softrobots::constraint::CableModel::Coord&) [with DataTypes = sofa::defaulttype::StdVectorTypes<sofa::type::Vec<3, double>, sofa::type::Vec<3, double>, double>; SReal = double; softrobots::constraint::CableModel::Coord = sofa::type::Vec<3, double>; softrobots::constraint::CableModel::Triangle = sofa::topology::Elementsofa::geometry::Triangle]’:
../src/SoftRobots/component/constraint/model/CableModel.cpp:40:36: required from here
../src/SoftRobots/component/constraint/model/CableModel.inl:562:16: warning: unused variable ‘r’ [-Wunused-variable]
562 | const bool r = sofa::geometry::proximity::computeClosestPointOnTriangleToPoint(Vec3(p0), Vec3(p1), Vec3(p2), Vec3(position), projection);
| ^
../src/SoftRobots/component/constraint/model/CableModel.inl: In instantiation of ‘SReal softrobots::constraint::CableModel::getDistanceToTriangle(const Coord&, const Triangle&, softrobots::constraint::CableModel::Coord&) [with DataTypes = sofa::defaulttype::StdVectorTypes<sofa::type::Vec<2, double>, sofa::type::Vec<2, double>, double>; SReal = double; softrobots::constraint::CableModel::Coord = sofa::type::Vec<2, double>; softrobots::constraint::CableModel::Triangle = sofa::topology::Elementsofa::geometry::Triangle]’:
../src/SoftRobots/component/constraint/model/CableModel.cpp:41:36: required from here
../src/SoftRobots/component/constraint/model/CableModel.inl:562:16: warning: unused variable ‘r’ [-Wunused-variable]
make[2]: *** [external_directories/SoftRobots/CMakeFiles/SoftRobots.dir/build.make:154: external_directories/SoftRobots/CMakeFiles/SoftRobots.dir/src/SoftRobots/component/constraint/UnilateralPlaneConstraint.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [external_directories/SoftRobots/CMakeFiles/SoftRobots.dir/build.make:141: external_directories/SoftRobots/CMakeFiles/SoftRobots.dir/src/SoftRobots/component/constraint/SurfacePressureConstraint.cpp.o] Error 1
In file included from ../src/SoftRobots/component/behavior/SoftRobotsBaseConstraint.cpp:28:
../src/SoftRobots/component/behavior/SoftRobotsBaseConstraint.h:125:45: error: ‘virtual sofa::type::vector<std::__cxx11::basic_string > softrobots::behavior::SoftRobotsBaseConstraint::getBaseConstraintIdentifiers()’ marked ‘override’, but does not override
125 | virtual sofa::type::vectorstd::string getBaseConstraintIdentifiers() override final
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/SoftRobots/component/behavior/SoftRobotsConstraint.h:32,
from ../src/SoftRobots/component/constraint/model/AffineFunctionModel.h:33,
from ../src/SoftRobots/component/constraint/model/AffineFunctionModel.inl:30,
from ../src/SoftRobots/component/constraint/model/AffineFunctionModel.cpp:32:
../src/SoftRobots/component/behavior/SoftRobotsBaseConstraint.h:125:45: error: ‘virtual sofa::type::vector<std::__cxx11::basic_string > softrobots::behavior::SoftRobotsBaseConstraint::getBaseConstraintIdentifiers()’ marked ‘override’, but does not override
125 | virtual sofa::type::vectorstd::string getBaseConstraintIdentifiers() override final
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/SoftRobots/component/behavior/SoftRobotsConstraint.h:32,
from ../src/SoftRobots/component/constraint/model/PositionModel.h:30,
from ../src/SoftRobots/component/constraint/PositionConstraint.h:33,
from ../src/SoftRobots/component/constraint/PositionConstraint.inl:30,
from ../src/SoftRobots/component/constraint/PositionConstraint.cpp:30:
../src/SoftRobots/component/behavior/SoftRobotsBaseConstraint.h:125:45: error: ‘virtual sofa::type::vector<std::__cxx11::basic_string > softrobots::behavior::SoftRobotsBaseConstraint::getBaseConstraintIdentifiers()’ marked ‘override’, but does not override
125 | virtual sofa::type::vectorstd::string getBaseConstraintIdentifiers() override final
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [external_directories/SoftRobots/CMakeFiles/SoftRobots.dir/build.make:76: external_directories/SoftRobots/CMakeFiles/SoftRobots.dir/src/SoftRobots/component/behavior/SoftRobotsBaseConstraint.cpp.o] Error 1
make[2]: *** [external_directories/SoftRobots/CMakeFiles/SoftRobots.dir/build.make:206: external_directories/SoftRobots/CMakeFiles/SoftRobots.dir/src/SoftRobots/component/constraint/model/SurfacePressureModel.cpp.o] Error 1
make[2]: *** [external_directories/SoftRobots/CMakeFiles/SoftRobots.dir/build.make:102: external_directories/SoftRobots/CMakeFiles/SoftRobots.dir/src/SoftRobots/component/constraint/CableConstraint.cpp.o] Error 1
make[2]: *** [external_directories/SoftRobots/CMakeFiles/SoftRobots.dir/build.make:310: external_directories/SoftRobots/CMakeFiles/SoftRobots.dir/src/SoftRobots/component/forcefield/PREquivalentStiffnessForceField.cpp.o] Error 1
make[2]: *** [external_directories/SoftRobots/CMakeFiles/SoftRobots.dir/build.make:89: external_directories/SoftRobots/CMakeFiles/SoftRobots.dir/src/SoftRobots/component/behavior/SoftRobotsConstraint.cpp.o] Error 1
make[2]: *** [external_directories/SoftRobots/CMakeFiles/SoftRobots.dir/build.make:193: external_directories/SoftRobots/CMakeFiles/SoftRobots.dir/src/SoftRobots/component/constraint/model/PositionModel.cpp.o] Error 1
make[2]: *** [external_directories/SoftRobots/CMakeFiles/SoftRobots.dir/build.make:167: external_directories/SoftRobots/CMakeFiles/SoftRobots.dir/src/SoftRobots/component/constraint/model/AffineFunctionModel.cpp.o] Error 1
make[2]: *** [external_directories/SoftRobots/CMakeFiles/SoftRobots.dir/build.make:128: external_directories/SoftRobots/CMakeFiles/SoftRobots.dir/src/SoftRobots/component/constraint/PositionConstraint.cpp.o] Error 1
make[2]: *** [external_directories/SoftRobots/CMakeFiles/SoftRobots.dir/build.make:180: external_directories/SoftRobots/CMakeFiles/SoftRobots.dir/src/SoftRobots/component/constraint/model/CableModel.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:14145: external_directories/SoftRobots/CMakeFiles/SoftRobots.dir/all] Error 2
make: *** [Makefile:152: all] Error 2

Error prevent to fully load firststeps-tuto.py

File to open: docs/sofapython3/tutorials/FirstSteps/firststeps-tuto.py

The error is:

[ERROR]   [OglModel(unnamed)] Source object "@loader" NOT FOUND.
[ERROR]   [SofaPython3::SceneLoader] Unable to completely load the scene from file 'docs\sofapython3\tutorials\FirstSteps\firststeps-tuto.py'.  
Python exception:   
  ValueError: 4:Source object "@loader" NOT FOUND.

It seems that the OglModel defined in visualmodel.py from STLIB cannot be created from a loader.

SurfacePressureConstraint leading to unsuitability in simulation

Hey everyone,

Background:

I'm new to SOFA and soft robotics, so in case this issue is a result of my naivete I apologize.

I followed through the tutorial for a pneunet gripper from this repository link and got it working. Using the provided script as reference, I made a new model of an LSOVA, similar to one shown in documentation here.

Mesh generation:

Body: I've designed the meshes using FreeCAD and GMSH as shown in this tutorial.

image

Cavity: After generating the body mesh in FreeCAD, I split it into components using the mesh split tool, which gave me two components: the outer mesh and the inner cavity. I exported only the cavity as an STL file.

image

I put this into GMSH and got a .msh file.

Issue:

I've tried to simulate the script from the tutorials, modifying the sources of meshes, removing the stiff layer that's specific to the pneunet, and modifying the boundary condition. Apart from these, no changes regarding structure of the code is made.

When SurfacePressureConstraint is initialized for the cavity, it loads as long as the value parameter is set to 0.

image

When I try to increase or decrease the pressure the mesh immediately implodes.

gif

I am unsure of why this is happening and any help/guidance would be greatly appreciated.

My meshes and code is linked here , specifically sim2.py and LSOVAs directory.

Thank you so much for the help

Issue with SOFA tutorial scene in Linux environment

@guparan @ErwanDouaille @alxbilger @hugtalbot @damienmarchal @EulalieCoevoet

Hello guys,

This issue is similar to some of the others listed in this session. However, this is happening in the newest versions.
SOFA 23.06.00 and 22.12.00 in Ubuntu.

When we try to open some specific scenes, even from the tutorial like step7-grabTheCube from PneunetGripper it crashes. Like this:

2023-11-19-17-32-09.mp4

This is the output:
########## SIG 11 - SIGSEGV: segfault ##########
sofa::helper::BackTrace::sig(int)
sofa::gl::component::rendering3d::OglModel::drawGroup(int, bool)
sofa::gl::component::rendering3d::OglModel::internalDraw(sofa::core::visual::VisualParams const*, bool)
sofa::simulation::VisualDrawVisitor::processVisualModel(sofa::simulation::Node*, sofa::core::visual::VisualModel*)
sofa::simulation::VisualVisitor::processNodeTopDown(sofa::simulation::Node*)
sofa::simulation::VisualDrawVisitor::processNodeTopDown(sofa::simulation::Node*)
sofa::simulation::graph::DAGNode::executeVisitorTreeTraversal(sofa::simulation::Visitor*, std::map<sofa::simulation::graph::DAGNode*, sofa::simulation::graph::DAGNode::StatusStruct, std::lesssofa::simulation::graph::DAGNode*, std::allocator<std::pair<sofa::simulation::graph::DAGNode* const, sofa::simulation::graph::DAGNode::StatusStruct> > >&, sofa::simulation::Visitor::TreeTraversalRepetition, bool)
sofa::simulation::graph::DAGNode::executeVisitorTreeTraversal(sofa::simulation::Visitor*, std::map<sofa::simulation::graph::DAGNode*, sofa::simulation::graph::DAGNode::StatusStruct, std::lesssofa::simulation::graph::DAGNode*, std::allocator<std::pair<sofa::simulation::graph::DAGNode* const, sofa::simulation::graph::DAGNode::StatusStruct> > >&, sofa::simulation::Visitor::TreeTraversalRepetition, bool)
sofa::simulation::graph::DAGNode::doExecuteVisitor(sofa::simulation::Visitor*, bool)
sofa::simulation::DefaultVisualManagerLoop::drawStep(sofa::core::visual::VisualParams*)
sofa::simulation::Simulation::draw(sofa::core::visual::VisualParams*, sofa::simulation::Node*)
sofa::gui::qt::viewer::qgl::QtGLViewer::DisplayOBJs()
sofa::gui::qt::viewer::qgl::QtGLViewer::drawScene()
sofa::gui::qt::viewer::qgl::QtGLViewer::draw()
QGLViewer::paintGL()
QWidget::event(QEvent*)
QApplicationPrivate::notify_helper(QObject*, QEvent*)
QApplication::notify(QObject*, QEvent*)
QCoreApplication::notifyInternal2(QObject*, QEvent*)
QWidgetPrivate::sendPaintEvent(QRegion const&)
QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*)
QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*)
QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*)
QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*)
QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*)
QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*)
QWidgetPrivate::syncBackingStore()
QWidget::event(QEvent*)
QMainWindow::event(QEvent*)
QApplicationPrivate::notify_helper(QObject*, QEvent*)
QApplication::notify(QObject*, QEvent*)
QCoreApplication::notifyInternal2(QObject*, QEvent*)
QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*)
g_main_context_dispatch
g_main_context_iteration
QEventDispatcherGlib::processEvents(QFlagsQEventLoop::ProcessEventsFlag)
QEventLoop::exec(QFlagsQEventLoop::ProcessEventsFlag)
QCoreApplication::exec()
sofa::gui::qt::RealGUI::mainLoop()
sofa::gui::common::GUIManager::MainLoop(boost::intrusive_ptrsofa::simulation::Node, char const*)
__libc_start_main
Segmentation fault (core dumped)

Build error duing installation

Hi,

I tried to use source code to install SOFA and SoftRobots plugin on Mac OS 10.15.4.
I got the unstable version of SOFA by git clone -b master https://github.com/sofa-framework/sofa.git sofa/master/src/

I also got one version from git clone https://github.com/SofaDefrost/SoftRobots, but when I configured it in CMake GUI, it always reported the error as below.
Screenshot 2020-04-26 at 16 49 20

Then I download the Plugin SoftRobots 17.12 version instead. The 17.12 version of SoftRobot configured well then I generated the whole file.

However, when I tried to build it and after a long wait, it reports errors as below. The screenshot is not complete but other errors are similar to these.
image

It seems that there's something wrong with the softrobots plugin in the source code. I am not sure what caused this problem. Is it because the versions of SOFA and SoftRobots Plugin are not compatible? Has anyone met this before? How can I solve this problem?

Thank you!

First steps tutorial for sofa and softrobotics

Hi, I've been trying to run the first steps tutorial, and after of days of trying to install sofa/other installations required in the right places, I finally managed to open the first steps tutorial yesterday. However, after editing, I saved and reloaded the page, but nothing happened. I shut it down and for some reason everything glitched out. I've reinstalled sofa and the soft robotics plugin, and now when I right lick on DefaultVisualManagerLoop, a pop up appears for a split second then disappears. I've reinstalled python 2.7, I'm just completely lost on what to do next/ what's going wrong, is this something anyone has experienced before? Any help would be greatly appreciated, thanks!

Having problems loading the Tutorial of Tripod

Hi guys,

Recently I am trying to load the tutorial of Tripod in SOFA, while every files will have a problem like this:

[ERROR] [SofaPython3::SceneLoader] Unable to completely load the scene from file 'C:/Users/comid/SoftRobots-master/examples/tutorials/Tripod/myproject/step1.py'.
Python exception:
ModuleNotFoundError: No module named 'stlib3'

At:
C:\Users\comid\SoftRobots-master\examples\tutorials\Tripod\myproject\step1.py(8):
(219): _call_with_frames_removed
(848): exec_module
(6):

I have added the plugins of SoftRobot, SoftRobot_Inverse and STLIB. And I have added their path to the system variable SOFA_EXTERNAL_DIRECTORIES.

I think the reason why I can't compile the scene might be I missed some steps in loading the plugins. Do you have any ideas?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.