Git Product home page Git Product logo

srdfdom's Issues

Use common FindTinyXML.cmake module

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.

Move SRDFWriter functionality into srdf::Model

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.

SRDF Python parser

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 ?

Do we want srdfdom to be standalone (no-ROS) package?

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.

error: ‘const class srdf::Model’ has no member named ‘getNoDefaultCollisionLinks

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,

Change joint_properties_ from std::vector to std::map

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).

build.ros.org Webhook?

@rhaschke why do we have webhooks setup for this repo to the ROS buildfarm? They seem to be failing like in #63

image

Also there are no branch protection rules setup, I'll do that now...

Delete master branch

I'm going to delete the master branch if someone gives me a +1. indigo-devel should be the only one we need

ROS-M: Use std::shared_ptr

Currently this repo has:

typedef boost::shared_ptr<Model> ModelSharedPtr;
typedef boost::shared_ptr<const Model> ModelConstSharedPtr;

Unlike the rest of moveit

Release for ROS2 Rolling

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!

release indigo 0.2.7

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.

[ROS2][Ubuntu 20.04] Unit Tests do not run

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

Use new urdf SharedPtr typedefs

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 breaks foxy builds

#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.

[ROS2][Windows] ROS Tests fail to build

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

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.