Create Mouse motions or adding a camera


#1

Hi there,
I’m Florian and quite new here. I’m trying to create motions with the mouse_v2_model (similar to the on of the CDP1 experiments) because the cdp1_model doesn’t have cameras and I need sensor feedback.

1.) I read that the mouse_v1 has only one DOF (neck_joint) in another Poste here. Does the model_v2 have more?

2.) I tried to create some motions with the ‘forearm_L_joint’ and the ‘shoulder_L_joint’, but I couldn’t see anything in the simulation (it’s shaking in the room anyway). I set the message value in the TF manual and could observe changes in the “joint plot”. Is it really moving or did I just change and observe a not to the model connect parameter?

3.) I tried as well to add a camera to the cdp1_mouse by simply adding some code to the model.sdf from the mouse_v2, but it didn`t work out since I couldn’t load the experiment anymore. Is there an explanation somewhere how to add sensors or could someone explain it?

4.) It seems that the tail of the docked_mouse_v2 is moving no matter if there are Transfer Functions or not. Is it supposed to do that or is it a Bug? It looks smooth but might cause the shaking.

I’m working on a local installation created via a life USB-stick.

Greetings
Florian


#2

Hello, @FloAui!

The two first (mouse_v1 and mouse_v2) versions of the mouse models have originally been integrated into the platform by me, so I’ll try to answer your questions:
1.) The mouse_v2 model does have more DOF’s than the v1. In addition to the single DOF of the v1 model, it includes 3 joints per leg and some DOF’s along the spine. However, in the frontend you will only see one of the joints in the backend move in the (incomplete) version of the mouse_v2_model that is included in the platform.
2.) If “I couldn’t see anything in the simulation” refers to the browser-based visualization in the web frontend, then see 1.): Gazebo uses a different (SDF) model in the backend simulation than the frontend uses for visualization in the frontend. How the frontend model is moved according to the joint positions in the backend is defined by a mapping tag in the SDF file, and the (incomplete) mouse_v2_model as it is only maps one of the backend joints to its frontend equivalent.
3.) An explanation for adding a camera sensor to a Gazebo model is available e. g. here: http://gazebosim.org/tutorials?tut=ros_gzplugins#Camera ; basically, you need to add two tag groups (one defining the properties of the camera, the other the settings for the gazebo_ros plugin that publishes the camera image stream via ROS) to a SDF model, and take care that the camera_link property in the first tag group maps to an existing link in your model. If you need more detailed information, please don’t hesitate to ask.
4.) The movement of the tail is caused by the interaction of the collision geometries of the tail segments with the ground plane. This is a known problem with many physics engines (in this case ODE) that occurs with long kinematic chains (10 or more segments); it is certainly not intended, and also not controlled by any kind of external joint controller. A simple fix would be to remove the joint elements in the tail and make this part of the model “rigid”.

Thank you!
With best regards,
Fabian


#3

Hi Fabian, (@faichele)
thank you for answering my questions about the mouse models.
I tried to implement the cameras and the eyes into the CDP1_experiment. The stream of the cameras is working fine, but it seems there is still a problem with the parent (of the link) since the eyes and the cameras are falling down through the robot and the environment after a while (probably through gravity).

I tried to fix it by setting a parent and setting my eye as a child in the parent (joint) which was not done at the iCub before. Afterward, I tried it as well to set gravity to zero, but it didn’t help either.

Do you know what might cause it and or a way to fix it?

Best regards,
Florian


#4

Hello, @FloAui!

It sounds like the camera instances you added to the CDP1 experiment model are indeed not properly “attached” to the model itself. Could you paste or upload your modified SDF file content here so we can take a look at your model setup?

If you are using the original CDP1 model: This model’s SDF file only has separate links for one of the mouse forelegs, the rest of the skeleton is a single visual. Depending on what specific kind of motion behaviour you want to achieve, it might be better if you use a newer version of the model that has all four of the mouse’s legs kinematized. This newer version will be available shortly from the Bitbucket repository officially, but if you want to give it a try before then, we can provide it to you already now.

Thank you very much!
With best regards,
Fabian


#5

Hello @faichele,
Indeed the issue was that it was fixed wrong. I managed it on the weekend to fix the eyes by adding a joint for each. Is there any way to visualize the structure of a robot (joints and links)?

I tried as well to add some objects to my world.sdf by using the environment editor and downloading the world afterward. When I set the downloaded one as the new world, it didn’t work out (the Mouse appears ten times bigger) :smile:
Afterward, I tried to edit the world.sdf as I already did before. But all object are always spawning at (0x,0y,0z). Is there a better way/tool to adapt the environment?

I would be really thankful if you could give me access to the new model!

Thank you very much,
Best regards,
Florian


#6

Hello, @FloAui!

The newer version of the CDP1 mouse is available here:
https://github.com/DaWelter/cheesy-reborn/tree/platform1

For visualizing the structure of a robot and/or the environment, there are three options:

  • Using the robot inspector in the web frontend (select the mouse model, right-click -> “Inspect”) (robot only)
  • Using gzclient, e. g. started while an experiment is running from a separate command line window, then activating the visualization options in the “View” menu (both robot and environment)
  • The Robot Designer Blender plugin: https://github.com/HBPNeurorobotics/BlenderRobotDesigner (robot only)

There were scaling issues (with the CDP-1 mouse model) when you created/cloned an experiment? If you remember the exact steps you took, it would be extremely useful for us if you could describe what you did so we can address a possible bug or problem.

Thank you very much!
With best regards,
Fabian


#7

Hello @FloAui,
Unless you have specific sdf model that you need to put in the plateform, I will rather use the environment editors inside the NRP (when you launch your experiment) than creating my own model because it has a nice GUI which will help you to scale and position your model :wink:
In one of the latest version of the local install version of the NRP there is a robot helper which display a nice overview of the robots links and parts. Give it a try !
The new models of the mouse (skeleton and with a skin) are still under development for we have to add new feature to the robot designer. Fortunately, they will be soon implemented in the platform, thanks to our dev team work.

Hope I could answer your questions.
Best regards,

Dimitri


#8

Hello, @faichele

I downloaded the newer version of the Mouse and copied the model part into the model folder. When I started, I tried starting it I the error which is at the bottom.So I tried to skip the Nest problem and removed the TFs temporary and loaded it again but the in the loading screen (with the bars) the error “Some assets have not been found” appeared. Did I do anything wrong by adding it to the platform?

I already tried to load the CDP1_mouse as well as the Mouse_v2 to the robot designer, but both don’t work. Benedikt told me that the error of loading the CDP1_mouse into the Designer could be caused since the mouse is connected to the environment via the slide. Other Robots are working fine as well as the new mouse :smile:

The Problems with the environment editor are two:
1.) the added objects only appear (or are visible) after resetting the simulation after it was already started. Do you know why they didn’t get loaded in the first place?
2.) the objects have a wrong visual scaling (as well the Mouse which is also an object and not a robot in that experiment)


I’m going to write it down and report the bug in the evening.

Thank you very much!
Best regards,
Florian

Data:
“service [/ros_cle_simulation/create_new_simulation] responded with an error: error processing request: transferfunction_Robot2Neuron: “‘module’ object has no attribute ‘nest’” (TF Loading Exception)”
Stack track
“ClbError@http://localhost:9000/bower_components/angular-hbp-collaboratory/angular-hbp-collaboratory.js:2697:17
error@http://localhost:9000/bower_components/angular-hbp-collaboratory/angular-hbp-collaboratory.js:2738:14
controller@http://localhost:9000/bower_components/angular-hbp-collaboratory/angular-hbp-collaboratory.js:4434:20
invoke@http://localhost:9000/bower_components/angular/angular.js:4570:14
$ControllerProvider/this.$get</</instantiate<@http://localhost:9000/bower_components/angular/angular.js:9445:24
resolveSuccess@http://localhost:9000/bower_components/angular-bootstrap/ui-bootstrap-tpls.js:4154:34
processQueue@http://localhost:9000/bower_components/angular/angular.js:15122:28
scheduleProcessQueue/<@http://localhost:9000/bower_components/angular/angular.js:15138:27
$eval@http://localhost:9000/bower_components/angular/angular.js:16384:16
$digest@http://localhost:9000/bower_components/angular/angular.js:16200:15
$apply@http://localhost:9000/bower_components/angular/angular.js:16492:13
done@http://localhost:9000/bower_components/angular/angular.js:10872:36
completeRequest@http://localhost:9000/bower_components/angular/angular.js:11070:7
requestLoaded@http://localhost:9000/bower_components/angular/angular.js:11011:9


#9

Hello, @FloAui!

The mouse model you added into the platform uses a spinal cord model to control the muscle system that moves the foreleg. The spinal cord is implemented using NEST; if you want to completely remove the muscle system for your custom experiment, it is fine to remove the transfer functions. Otherwise, I strongly advise you keep the dependency to NEST. It is installed as part of the local installation of the NRP, so it might be the case you miss:
source $HBP/user-scripts/nrp_variables
source $HBP/user-scripts/nrp_aliases
in your .bashrc?
These scripts set up some environment variables like $PYTHONPATH to include the relevant directories in the NRP installation directory.
That is essentially what the error message you attached to your message is hinting: The NEST Python package prefix ($HOME/.local/lib/python2.7/dist-packages) doesn’t seem to be included in your Python module search path.

Regarding the import of the mouse models (“CDP1” and “Mouse_v2”) into the designer:

  • We didn’t test the mouse_v2 before. We can try ourselves to see what the problem(s) is/are and adapt the robot designer further, but if you are fine with the newest version of the CDP1 mouse, I’d recommend to use that instead of Mouse_v2.
  • Regarding the CDP1 mouse, I’d strongly recommend you stick to the newer version from the github repository.

I have added the scaling problem you have described as a bug report to the backlog of the NRP team.
If you like, you could just put an issue in the Bitbucket repository: https://bitbucket.org/hbpneurorobotics/neurorobotics-platform/issues?status=new&status=open
Then it will also be taken into account for planning the next development sprint (or the sprint after).


#10

Hello, @faichele !

I tried the code you sent me:
source $HBP/user-scripts/nrp_variables
source $HBP/user-scripts/nrp_aliases
and afterwards
source $HOME/.bashrc
But the error still appeared (as well if I do it in the virtualenv: platform_env). So I checked the path $HOME/.local/lib/python2.7 and there is no subfolder “dist-packages” only “site-packages”. Inside of “$HOME/.local/lib/python2.7/site-packages” is nest. I installed my local installation via a live USB-stick, so it’s strange that the path is called different.
I added the path “/hone/.local/lib/python2.7/site-packages” via sys.path.append() and it’s in the PYTHONPATH now, but still the same error.
Might it be that I have to change the path somewhere else too, to fix the issue?

Best regards,
Florian


#11

as we all know that in the world of digital era anything is possible and every day some new-new and intresting things are invented, I think this topic is quite intresting and I really want to know the full information about this. I have searched on Skype for business tech support but I have still some doubts. kindly clear it out.