- How do I use OpenRAVE with ROS?
- Install the rospackages openrave, collada_robots, and soqt found on the ROS website. Also make sure you have python-sympy from your OS repo. Now, whenever you want to use openrave, just update your manifest.xml with a
<depend package="openrave" />
- You also have another option, download openrave from source. Compile and install it. To add it to your ROS_PATH, you need a manifest.xml in an "openrave" folder inside your ROS_PACKAGE_PATH. I need to update this and add a manifest.xml you can use. (just the same one from the ros repo install)
Physics and OpenRAVE
- When I turned physics on, my robot fell apart.
- This is because the time step of your simulation is too large. Try setting a smaller timestep (<= 0.001).
- In python:
- In C++:
EnvironmentBasePtr env = RaveCreateEnvironment;
- Is there a parallel/modified ODE plugin? What about setting contact joints?
- The ode engine from ROS (opende) employs a few patches, as well as a parallelization patch. You can rosmake the opende package. HOWEVER, then you must recompile the odeplugin (OpenRAVE plugin) and force OpenRAVE to use the sources and shared libraries from the modified ODE engine. Lucky for you, the opende package has an odeconfig tool which spits out the correct flags for you.
- There is also a plugin developed by CSIRO ASL. Among the things they changed is allowing the individual parameter setting of contact joints in the xml. Here is the repo. You need openrave in your ROS_PACKAGE_PATH to use its CMake. It may be possible to modify the CMake file using openrave-config to get all the flags.
- My physics is unstable what can I do?
- The first most important thing you should do, is lower the timestep as stated above.
- The second most important thing to do, is set your erp and cfm. The OpenRAVE ODE plugin by default sets them extremely low. An explanation can be found here.
- Just setting the <erp>0.4</erp> drastically stabilized my simulations.