-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Description
@liesrock @DavideAntonucci @EdoardoRomiti
Hi all,
I am doing some work to improve our workflow concerning robot URDF/SRDF/capsules generation, and simulation, too.
Why
The weak points of our previous infrastructure, in my opinion, are the following:
- one single big bash script doing everything and every time it is invoked
- generate urdf and srdf for all existing config files (from
urdf/config/*.urdf.xacro) - generate capsule models
- generate urdf and srdf for all existing config files (from
- does not report errors (or exit on error)
- does the generation even though no file has actually changed
- generates intermediate files inside the source tree (thus polluting it)
- unclear which files are generated (byproducts of generation) and which are actual source files
- no unit tests and continuous integration
- no debian generation
- issues with gazebo11 due to unsupported floating joint
How
I implemented some solutions inside a refactor branch. Key points are:
- basic structure does not change (all xacros stay where they are)
- main xacro must support an additional argument
configwith a default value pointing to a default configuration file - cmake-based xacro generation with single targets for every config file; benefits are:
- generation skipped if source files haven't changed
- files are generated inside the build tree and published to the source tree with an explicit command
- errors causes early exit
- dropped support for drag-and-drop simulation in gazebo
- perception simulation with additional arguments to be provided to the launch file (
realsense:=true velodyne:=true) - a basic integration test demonstrating that simulation is spawned successfully and xbot2 can start correctly
- Travis CI
- cpack based deb generation (example here)
- conditional inclusion of a floating joint (just for control)
Usage
- cloning the repository yields a ready-to-use package, generation is not required
make installsupport in case the source folder is not part ofROS_PACKAGE_PATH- from a developer's perspective, generation must be performed with a
make <target-name>from the build folder, such asmake generate_urdf_<config_name>make generate_urdf_<config_name>_capsulemake publish_urdf_<config_name>(copy to source tree)
make packageproduces a deb package
Feedback
I'd like to hear some feedback from you before going further ahead with this project.
Do you see a better way to accomplish some of the goals?
Do you see further shortcomings of the current architecture that can be solved?
@EdoardoRomiti I am not sure how and if this affects you work (generation not from xacros but from discovered topology)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels