-
Notifications
You must be signed in to change notification settings - Fork 492
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
small compilation fixes for macOS #271
Conversation
What is the error message you get if you don't do this? Is it really catkin having a problem, or is it some scripts inside MoveIt2? I originally did this until I update the shebangs on my various scripts (which, for ROS2, we should really be targeting Python3 anyways).
I've seen this even on Ubuntu 20.04 with latest debs. |
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.
This is really exciting, I'm gonna have to try this out.
@@ -149,7 +149,7 @@ bool MoveGroupCartesianPathService::computeService( | |||
constraint_fn = boost::bind( | |||
&isStateValid, | |||
req->avoid_collisions ? static_cast<const planning_scene::PlanningSceneConstPtr&>(*ls).get() : nullptr, | |||
kset->empty() ? nullptr : kset.get(), _1, _2, _3); | |||
kset->empty() ? nullptr : kset.get(), boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3); |
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.
broader question: why are we using boost::bind instead of std::bind? Is there a lower-level library requiring it? If not, seems like we should update MoveIt2 to reduce our boost usage (core ROS2 has done so).
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.
... or use lambda's.
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.
The only downside to lambdas is that I'm not sure they are as broadly understood - they seem a little more "advanced". In various discussions I've recently had with ROS/ROS2 package maintainers, I've noticed there is pretty decent evidence that the more advanced the codebase, the harder it is to get community help.
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.
I agree that we should switch to lambdas in cases where the function is trivial (i.e. log message and return of a result) or where another member function should be called but we need to preprocess the arguments. Otherwise,std::bind
is often much shorter and more readable.
I am pretty this is due to my PYTHON_PATH setting:
I hate that Home Brew and pip both install in /usr/local by default. Two package managers for potentially the same files (numpy, PyQt, etc.) seems like a terrible idea, so I configured pip to install in my user directory. Some python3 packages use |
Codecov Report
@@ Coverage Diff @@
## main #271 +/- ##
==========================================
- Coverage 47.87% 47.87% -0.01%
==========================================
Files 154 154
Lines 15748 15749 +1
==========================================
Hits 7540 7540
- Misses 8208 8209 +1
Continue to review full report at Codecov.
|
@mamoll changes look good to me. Can you confirm that the latest MGI port works on macOS as well? |
I merged in the latest changes from the main branch (specifically the merged MGI port) last Friday and everything still compiles. |
Can we merge this now @mamoll ? Feel free to do the honors, you have 2 approvals |
Description
Below are misc. small fixes to get MoveIt2 to compile on macOS 10.15.6. Everything ROS2-related is compiled from source.
I mostly followed the official ROS2 and MoveIt2 installation directions. A couple small hiccups:
The
--symlink-install
flag for colcon still causes issues. I had to run colcon like so:(See also https://www.robotandchisel.com/2020/08/10/rviz2-on-mac/.) After many hours this errors out, but after
source install/setup.bash
running colcon again succeeds.The Ogre include path fix seems ugly. I don't know what the proper fix is. If you look at
install/rviz_ogre_vendor/opt/rviz_ogre_vendor/CMake/OGREConfig.cmake
you see:Note that
/OGRE
part. If that wasn't there, the include path fixes wouldn't be needed.Checklist