-
Notifications
You must be signed in to change notification settings - Fork 222
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make moveit_config compatible to moveit_configs_builder #998
Conversation
Unorthodox perhaps, but what about not using the config builder at all and creating a more ROS-1-like MoveIt config pkg? Tyler made a nice example showing how to do this, right around the time I was also looking into it. See ROSCON 2023 - Retro ROS 2 Launch (and the package itself). I'm wondering whether hiding what goes on in a launch file -- by encapsulating its 'insides' in a separate library -- and making it harder to customise a MoveIt configuration isn't actually doing a disservice to users. Whenever we feel the need to start creating a reusable Python package because it feels like things are getting more verbose than XML, we may have a bit of a problem .. |
Thank you for the feedback @gavanderhoorn! We have considered for quite a while now whether we want to migrate our config package or not. Personally, I am also not the greatest fan of the way the configs builder hides the required config files away. Though once looking at its source code it became less hidden for me, so a better documentation could potentially improve things here. In my opinion there are a couple of arguments that justify making this step:
|
6dbccd6
to
fa8e7cb
Compare
I decided against an upstream issue regarding the description topic as it seems intentional to have a default of 10 seconds timeout. |
fa8e7cb
to
824b5ac
Compare
- Make sure it can be used in conjunction with the configs builder - Still use a parametrized srdf - Re-use the description from the robot state publisher
Since we built our moveit config around receiving the description via topic, we also add a script that waits for the robot description to be published. This helps when components support subscribing to the description, but crash if it is not present.
824b5ac
to
18472cc
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Works nicely and looks good to me, I only have some small suggestions.
<author email="[email protected]">Lovro Ivanov</author> | ||
<author email="[email protected]">Andy Zelenak</author> | ||
|
||
<buildtool_depend>ament_cmake</buildtool_depend> | ||
<buildtool_depend>ament_cmake_python</buildtool_depend> | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
<buildtool_depend>ament_cmake_python</buildtool_depend> | |
<exec_depend>launch</exec_depend> | |
<exec_depend>launch_ros</exec_depend> |
ur_moveit_config/CMakeLists.txt
Outdated
ament_python_install_module(${PROJECT_NAME}/launch_common.py) | ||
|
||
ament_package() | ||
install(DIRECTORY config DESTINATION share/${PROJECT_NAME}) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
install(DIRECTORY config DESTINATION share/${PROJECT_NAME}) |
As mentioned in #917 our current config is not compatible to the moveit_configs_builder.
This PR aims at making our config compatible with it.
The current state is a working version which allows loading the description from the robot_state_publisher's topic and can be used in the moveit_configs_builder
Things still need to be done
[ ] Add upstream issue about the crash when no description topic is providedThings that significantly change in this PR:
tf_prefix
has been removed. It didn't work correctly, anyway. Since there are joints inside config files such as thejoint_limits.yaml
and they to my knowledge cannot handle argument substitution during loading inside the configs builder, this doesn't work.Things suggested in #917 (comment) I did not implement