Lorem ipsum dolor sit amet, consectetur adipisci elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur.

Lorem ipsum dolor sit amet, consectetur adipisci elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur.

e.DO People Learn Robotics Forums Software Correct e.DO Simulation in ROS

This topic contains 8 replies, has 4 voices, and was last updated by  Yoan Mollard 1 day, 9 hours ago.

Viewing 9 posts - 1 through 9 (of 9 total)
  • Author
  • #6364

    Stefan Profanter

    Dear all,
    I created a cleaned up and working version of the RViz and Gazebo simulation for the e.DO Robot.
    The original package which is provided by Comau did not start up and the model which is used there is completely broken (wrong axes, different length of joints, …).

    With my Version you can use RViz to plan a path and then control the e.DO robot in simulation. If someone wants to write a wrapper for the real robot, then you could even use RViz to control the real robot.

    The packages you need are on my github Account:

    Feel free to take my implementation and fork it to your repository.




    Hi Stefan,
    Thank you for your developments, we are really happy that the community is proactive. However, the Virtual e.DO is not internal to Comau but developed by an external contributor.

    Your passion is really appreciated.

    Best regards


    Hi Stefan,

    I’m trying to use your RViz simulation but am having difficulty getting it to work. When I load any of your configurations into RViz I get the error under RobotModel saying “Parameter [robot_description] does not exist, and was not found by searchParam()”. I’ve looked around for a solution to this problem and have spent a few hours trying to figure it out, but I can’t. Do you know how this problem can be solved?



    Stefan Profanter

    Hi Gabe,
    did you use all my packages I listed above?

    You can not use the ones from Comau since they are full of bugs and wrong annotations.


    mkdir edo_test && cd edo_test
    mkdir src
    cd src
    git clone
    git clone
    git clone
    cd ..

    Then open two terminals with the commands

    roslaunch edo_description edo_upload.launch
    roslaunch edo_description test.launch

    That gives you the image as shown here:

    Are these the steps you followed?

    Make sure that you start a clean rosmaster, otherwise the description sometimes fails.



    Hi Stefan,

    Your last message was very helpful. I am still running into troubles however. When I try “roslaunch eDO_description edo_upload.launch” I get the following error:

    RLException: [edo_upload.launch] is neither a launch file in package [eDO_description] nor is [eDO_description] a launch file name
    The traceback for the exception was written to the log file

    I double checked the package and file names and they are correct. I’m not sure what to do to fix this. Do you know what to do here?

    Thanks and best,


    Stefan Profanter

    Note the lowercase package name in my command and your version which uses “eDO”.
    Maybe that’s the issue?

    Also make sure that there isn’t any other package with the same name already in your ROS workspace, e.g. the original one from comau. You should only have the ones listed above.



    Hey Stefan,

    I’ve tried multiple combinations of eDo, edo, eDO etc… I’m still getting the same error.

    When I search the options available in the roslaunch command I see all of the other packages that I already had installed in addition to the packages I got from your Github. The only difference is that all of the packages that I’ve tried to load from you Github have a / trailing them (e.g. eDO_description/), whereas the other packages don’t have the / (e.g. catkin).

    This makes me think that when I ran catkin_make, packages available to ros were not created from the Github repositories. Perhaps I’m missing something big or not understanding an important concept. Do you understand whats going on here?

    Thanks and best,


    Stefan Profanter

    I guess that you are mixing multiple ROS environments. Try to start a clean ROS environment by removing all the source /opt/ros.../setup.bash and source /home/..../devel/setup.bash from your .bashrc

    Then open a new terminal and only source /opt/ros/melodic/setup.bash. After that roslaunch shouldn’t show any packages.

    Then create a new ros workspace as shown above and source /home/.../my_fancy_workspace/devel/setup.bash

    Hope that helps.

    Otherwise you will need to do more googling.



    Yoan Mollard

    Hey Stephan,

    Thank you for this improvement! I’m on the way to complete the MoveIt package so that it can take control over an actual (real) robot.
    Unless I missed something, Comau has not documented the ROS interface. Here are the nodes running on all e.DO robots:
    ROS nodes

    We need 2 things to take over control from MoveIt: 1. the /joint_states publisher and 2. the /follow_joint_trajectory controller:

    1. Getting /joint_states is easy from the /usb_jnt_state topic. I sketched a joint state publisher there.

    2. Sending robot trajectories is a little bit more touchy without documentation. I assume /algo_jnt_ctrl is a good basis to send joint commands. It’s published at 100Hz by the algorithm-something node that looks like a place that stores motions you can replay (I’m unsure). So I disabled this thing in a first step (rosservice call /algo_control_switch_srv "mode: 1" Mode 0 means “take control”, mode 1 means “release control”), by trying to publish on /algo_jnt_ctrl by myself. That gave no motion, probably because joints were not powered. This is managed by the “state machine”, which has the following states (translated from italian code comments):

    INIT = 0, /* Initial State */
    NOT_CALIBRATE = 1, /* Not calibrated */
    CALIBRATE = 2, /* Calibrated */
    MOVE = 3, /* Move execution in progress */
    JOG = 4, /* Jog execution in progress */
    MACHINE_ERROR = 5, /* Error state, needing a reboot */
    BRAKED = 6 /* brake active, no motor power supply */ 
    COMMAND_STATE = 255 /* Temporary state when a command is executed */

    At first boot, rostopic echo /machine_state -n1 returns state 0 (INIT). I don’t know yet how to commute the machine state, but I assume it has to be CALIBRATE in order to accept joint commands, re-using the last calibration data.

    Also I haven’t differentiated topic /machine_algo_jnt_state from /usb_jnt_state. Could it be uncalibrated vs calibrated states? The “USB” term does not suggest that difference, though.

    Any input is appreciated!

    • This reply was modified 1 day, 9 hours ago by  Yoan Mollard.
Viewing 9 posts - 1 through 9 (of 9 total)

You must be logged in to reply to this topic.