moveit / srdfdom Goto Github PK
View Code? Open in Web Editor NEWSemantic Robot Description Format
License: BSD 3-Clause "New" or "Revised" License
Semantic Robot Description Format
License: BSD 3-Clause "New" or "Revised" License
There is a new package called cmake_modules, which we just created:
https://github.com/ros/cmake_modules
It provides a common FindTinyXML.cmake CMake module, which we should all try to use in order to prevent issues when doing things like cross-compiling.
This is a low priority, but a good idea. The package is available for Hydro and Groovy, it will be in public on the next sync.
Add methods to srdf::Model for writing to an SRDF file (copy and paste from SRDFWriter), and then remove the SRDFWriter class from the setup_assistant package.
This is a low priority task tracking ticket.
Dear developers,
I needed a SRDF python parser, to loop over the groups and joints and such (this is useful to generate new moveit config files from existing ones)
I could not find an existing SRDF python parser, so the fastest and easiest solution was to derive from urdf_parser_py and and depend on its xml_reflection lib.
The parser can be found there https://github.com/ubi-agni/srdf_parser_py
It also integrates a full srdf parsing test
Would it make sense to create a srdfdom_py similar to urdfdom_py integrating such a parser ?
Currently blocking moveit release
Looking at package.xml, it looks like srdfdom
is not and has not been depending on ROS, but searching the code lets me spot a line in a method that depends on rospy
, and the method is used by scripts/display_srdf
.
I can't think of much benefit wrt to the effort of making it standlone, since srdf
is primarily used only in MoveIt! (correct if wrong) and MoveIt! is ROS-based.
Hello,
Im trying to follow the steps on https://ros-planning.github.io/moveit_tutorials/doc/ikfast/ikfast_tutorial.html to use IKFast for my custom built 6DOF robotic arm.
I have Ubuntu Noetic (Ubuntu 20.04.3 LTS).
I followed all steps until "Source" (right after "Binary Install"). In the Source section, i did the first 2 lines with no problem ( git clone ... and rosdep install ...), but when i want to catkin_make the workspace it gives me the following error:
...
[ 5%] Building CXX object moveit/moveit_core/collision_detection/CMakeFiles/moveit_collision_detection.dir/src/collision_plugin_cache.cpp.o
**/home/mhmiri/wwrobot_ws_6DOF_moveit/src/moveit/moveit_core/collision_detection/src/collision_matrix.cpp: In constructor ‘collision_detection::AllowedCollisionMatrix::AllowedCollisionMatrix(const srdf::Model&)’:
/home/mhmiri/wwrobot_ws_6DOF_moveit/src/moveit/moveit_core/collision_detection/src/collision_matrix.cpp:57:39: error: ‘const class srdf::Model’ has no member named ‘getNoDefaultCollisionLinks’
57 | for (const std::string& name : srdf.getNoDefaultCollisionLinks())
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
/home/mhmiri/wwrobot_ws_6DOF_moveit/src/moveit/moveit_core/collision_detection/src/collision_matrix.cpp:60:37: error: ‘const class srdf::Model’ has no member named ‘getEnabledCollisionPairs’; did you mean ‘getDisabledCollisionPairs’?
60 | for (auto const& collision : srdf.getEnabledCollisionPairs())
| ^~~~~~~~~~~~~~~~~~~~~~~~
| getDisabledCollisionPairs
make[2]: *** [moveit/moveit_core/collision_detection/CMakeFiles/moveit_collision_detection.dir/build.make:89: moveit/moveit_core/collision_detection/CMakeFiles/moveit_collision_detection.dir/src/collision_matrix.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....**
[ 6%] Linking CXX shared library /home/mhmiri/wwrobot_ws_6DOF_moveit/devel/lib/libmoveit_dynamics_solver.so
...
Appearently it does not recognize srdf.getNoDefaultCollisionLinks()
and srdf.getEnabledCollisionPairs()
from srdf::Model
.
I have tried to follow all the steps as mentioned, am I doing something wrong?
I would appreciate your kind help.
Thank you,
https://github.com/ros-planning/srdfdom/blob/04c7726f2437d5b09bdc790b64d116057b81a90b/include/srdfdom/model.h#L317
To better reflect actual semantics, this should be changed as follows:
-std::map<std::string, std::vector<JointProperty>> joint_properties_;
+std::map<std::string, std::map<std::string, std::string>> joint_properties_; // joint name -> (property name -> property value)
@scchow, it would be great if you could tackle this (and file a corresponding PR to the ROS2 branch as well).
We just branch SRDFDom for Kinetic, so it needs to be updated in bloom
see #18
There is a rospy
import and usage of it in the ros2 branch.
Would you mind releasing srdfdom
to ROS Noetic? It looks like all of its dependencies have been released, and recursively 40 repos need it.
I'm not sure how much work it will need. The Noetic Migration Guide or the guide about transitioning ROS packages to Python 3 may be useful.
I'm going to delete the master branch if someone gives me a +1. indigo-devel should be the only one we need
Xenial seems to be fine. Admittedly I ran prerelease test only for Xenial before making a release.
This is a friendly reminder that the Melodic buildfarm is now available. It would be great to have a release of srdfdom
into Melodic, as it is currently directly blocking 1 package and indirectly blocking 5 packages (http://repositories.ros.org/status_page/blocked_releases_melodic.html). Thank you!
Currently this repo has:
typedef boost::shared_ptr<Model> ModelSharedPtr;
typedef boost::shared_ptr<const Model> ModelConstSharedPtr;
Unlike the rest of moveit
Could one of the maintainers make a release for ROS2 rolling due to the API breaking changes that were made in #101? This seems like one of the things (if not the only thing) preventing moveit2 from being released on ROS2 Rolling. Thanks!
This would help cleanup moveit's rosinstall file
I've created an indigo-devel branch with the correct dependencies on console_bridge and urdfdom_headers for Saucy and Trusty. RE: ros/rosdistro#4633
This needs to be released into indigo.
When running colcon test --event-handlers console_direct+
, test_parser outputs that zero tests have been run:
1: Test command: /usr/bin/python3 "-u" "/opt/ros/foxy/share/ament_cmake_test/cmake/run_test.py" "/home/ooeygui/ws/moveit2_ws/build/srdfdom/test_results/srdfdom/test_parser.gtest.xml" "--package-name" "srdfdom" "--output-file" "/home/ooeygui/ws/moveit2_ws/build/srdfdom/ament_cmake_gtest/test_parser.txt" "--command" "/home/ooeygui/ws/moveit2_ws/build/srdfdom/test_parser" "--gtest_output=xml:/home/ooeygui/ws/moveit2_ws/build/srdfdom/test_results/srdfdom/test_parser.gtest.xml"
1: Test timeout computed to be: 60
1: -- run_test.py: invoking following command in '/home/ooeygui/ws/moveit2_ws/build/srdfdom':
1: - /home/ooeygui/ws/moveit2_ws/build/srdfdom/test_parser --gtest_output=xml:/home/ooeygui/ws/moveit2_ws/build/srdfdom/test_results/srdfdom/test_parser.gtest.xml
1: Running main() from /opt/ros/foxy/src/gtest_vendor/src/gtest_main.cc
1: [==========] Running 0 tests from 0 test cases.
1: [==========] 0 tests from 0 test cases ran. (0 ms total)
1: [ PASSED ] 0 tests.
1: -- run_test.py: return code 0
1: -- run_test.py: verify result file '/home/ooeygui/ws/moveit2_ws/build/srdfdom/test_results/srdfdom/test_parser.gtest.xml'
1/2 Test #1: test_parser ...................... Passed 0.09 sec
test 2
Start 2: test_cpp
Urdf has moved to a new SharedPtr type which results in a compile error:
/opt/ros/ros_catkin_ws/src/srdfdom/src/model.cpp: In member function 'void srdf::Model::loadGroups(const urdf::ModelInterface&, TiXmlElement*)':
/opt/ros/ros_catkin_ws/src/srdfdom/src/model.cpp:182:43: error: variable 'boost::shared_ptr<const urdf::Link> l' has initializer but incomplete type
boost::shared_ptr<const urdf::Link> l = urdf_model.getLink(tip_str);
Replacing
boost::shared_ptr<const urdf::Link> l
with
urdf::LinkConstSharedPtr l
fixes this error.
#101 is a breaking change since it renames DisabledCollision
and since there aren't any distro branches, foxy builds using ros2
branch.
I think the easiest solution would be to create a foxy
branch without this change.
Pinging @henningkayser and @Abishalini since they were involved in #101.
When running ROS tests using colcon test --event-handlers console_direct+
on the Windows build (#91),
I believe this is related to ROS2 tests not working on Ubuntu (#92).
test 1
Start 1: test_parser
1: Test command: C:\opt\ros\foxy\x64\python.exe "-u" "C:/opt/ros/foxy/x64/share/ament_cmake_test/cmake/run_test.py" "C:/ws/moveit2_ws/build/srdfdom/test_results/srdfdom/test_parser.xunit.xml" "--package-name" "srdfdom" "--output-file" "C:/ws/moveit2_ws/build/srdfdom/ament_cmake_pytest/test_parser.txt" "--command" "C:/opt/ros/foxy/x64/python.exe" "-u" "-m" "pytest" "C:/ws/moveit2_ws/src/srdfdom/test/test.py" "-o" "cache_dir=C:/ws/moveit2_ws/build/srdfdom/ament_cmake_pytest/test_parser/.cache" "--junit-xml=C:/ws/moveit2_ws/build/srdfdom/test_results/srdfdom/test_parser.xunit.xml" "--junit-prefix=srdfdom"
1: Test timeout computed to be: 60
1: -- run_test.py: invoking following command in 'C:\ws\moveit2_ws\build\srdfdom':
1: - C:/opt/ros/foxy/x64/python.exe -u -m pytest C:/ws/moveit2_ws/src/srdfdom/test/test.py -o cache_dir=C:/ws/moveit2_ws/build/srdfdom/ament_cmake_pytest/test_parser/.cache --junit-xml=C:/ws/moveit2_ws/build/srdfdom/test_results/srdfdom/test_parser.xunit.xml --junit-prefix=srdfdom
1: ============================= test session starts =============================
1: platform win32 -- Python 3.8.3, pytest-6.0.1, py-1.9.0, pluggy-0.13.1
1: cachedir: C:\ws\moveit2_ws\build\srdfdom\ament_cmake_pytest\test_parser\.cache
1: rootdir: C:\ws\moveit2_ws\src\srdfdom
1: plugins: ament-copyright-0.9.5, ament-flake8-0.9.5, ament-lint-0.9.5, ament-mypy-0.9.5, ament-pep257-0.9.5, ament-xmllint-0.9.5, colcon-core-0.6.0, launch-testing-0.10.3, launch-testing-ros-0.10.3, cov-2.10.1, mock-3.3.1, repeat-0.8.0, rerunfailures-9.1
1: collected 0 items / 1 error
1:
1: =================================== ERRORS ====================================
1: ________________________ ERROR collecting test session ________________________
1: C:\opt\ros\foxy\x64\lib\site-packages\pluggy\hooks.py:286: in __call__
1: return self._hookexec(self, self.get_hookimpls(), kwargs)
1: C:\opt\ros\foxy\x64\lib\site-packages\pluggy\manager.py:93: in _hookexec
1: return self._inner_hookexec(hook, methods, kwargs)
1: C:\opt\ros\foxy\x64\lib\site-packages\pluggy\manager.py:84: in <lambda>
1: self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
1: C:\opt\ros\foxy\x64\lib\site-packages\_pytest\python.py:195: in pytest_collect_file
1: module = ihook.pytest_pycollect_makemodule(
1: C:\opt\ros\foxy\x64\lib\site-packages\pluggy\hooks.py:286: in __call__
1: return self._hookexec(self, self.get_hookimpls(), kwargs)
1: C:\opt\ros\foxy\x64\lib\site-packages\pluggy\manager.py:93: in _hookexec
1: return self._inner_hookexec(hook, methods, kwargs)
1: C:\opt\ros\foxy\x64\lib\site-packages\pluggy\manager.py:84: in <lambda>
1: self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
1: C:\opt\ros\foxy\x64\lib\site-packages\launch_testing\pytest\hooks.py:160: in pytest_pycollect_makemodule
1: entrypoint = find_launch_test_entrypoint(path)
1: C:\opt\ros\foxy\x64\lib\site-packages\launch_testing\pytest\hooks.py:154: in find_launch_test_entrypoint
1: return getattr(path.pyimport(), 'generate_test_description', None)
1: C:\opt\ros\foxy\x64\lib\site-packages\py\_path\local.py:704: in pyimport
1: __import__(modname)
1: C:\opt\ros\foxy\x64\lib\site-packages\_pytest\assertion\rewrite.py:170: in exec_module
1: exec(co, module.__dict__)
1: ..\..\src\srdfdom\test\test.py:7: in <module>
1: from srdfdom.srdf import SRDF
1: E ModuleNotFoundError: No module named 'srdfdom'
1: ============================== warnings summary ===============================
1: C:\opt\ros\foxy\x64\lib\site-packages\_pytest\junitxml.py:446
1: Warning: The 'junit_family' default value will change to 'xunit2' in pytest 6.0. See:
1: https://docs.pytest.org/en/stable/deprecations.html#junit-family-default-value-change-to-xunit2
1: for more information.
1:
1: -- Docs: https://docs.pytest.org/en/stable/warnings.html
1: - generated xml file: C:\ws\moveit2_ws\build\srdfdom\test_results\srdfdom\test_parser.xunit.xml -
1: =========================== short test summary info ===========================
1: ERROR ..\..\src\srdfdom - ModuleNotFoundError: No module named 'srdfdom'
1: !!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!!
1: ========================= 1 warning, 1 error in 0.30s =========================
1: -- run_test.py: return code 2
Can any admin of this repo help to enable the pull request testing by only a few clicks? Please follow this instruction ("Recommended" section).
Other chores is already taken care of (e.g. in ros/rosdistro#14530).
Once it's done, then pull request testing powered-by ROS buildfarm will become available.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.