Git Product home page Git Product logo

srdfdom's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

srdfdom's Issues

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.

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

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.

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

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

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.

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.

[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

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

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][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

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 ?

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,

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

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.