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
Merge together the indigo, jade, and kinetic branches #443
Merge together the indigo, jade, and kinetic branches #443
Conversation
The gps_common package was removed in ROS Jade, so a different message type is needed for the local XY origin message. (Issue swri-robotics#246). This replaces the gps_common/GPSFix message with a geometry_msgs/PoseStamped message. The latitude is stored in pose.position.y, the longitude is stored in pose.position.x, and the altitude is stored in pose.position.z. As before, the local xy frame is fixed in rotation such that the Z axis points away from the center of the Earth and the Y axis points north. However, the choice of geometry_msgs/PoseStamped allows for headings to be added in the future.
Mark single argument constructor explicit.
…ndigo Full normalization indigo
Adding swri_roscpp interfaces.
Merge in recent changes from Indigo
The main problem was that reshape was being incorrectly, causing the points to get shuffled around. Once that was fixed, it was clear that the rotation should not be inverted. Also added a comment to clarify the significance of the returned transform.
… stretch processing.
* The reference heading has been renamed to reference angle. * It's not recommended to set a non-zero reference angle. * A parameter is provided to ignore the reference heading for backwards compatibility. Conflicts: swri_transform_util/src/local_xy_util.cpp
…o and from WGS84.
swri_geometry_util used OpenCV but didn't declare its dependency.
…y-kinetic Add OpenCV dependency (Kinetic)
* Enable blending with transparency mask Instead of blending an entire image, mask out portions that are a particular color (e.g., for a black-and-white top image, only blend the white portions, so the black portions don't darken the entire image). Adds three parameters to the swri_image_util blend_images_nodelet (mask red, green, and blue components). * Remove old debug code * Remove unnecessary include
I recommend we soak test this in SwRI-owned vehicles for a while before merging. A major change to marti_common affects a lot of projects. We should also verify that the kinetic packages still work as expected. I'm not aware of any projects using Jade, so I'm not too concerned about that. |
swri_yaml_util/CMakeLists.txt
Outdated
${YamlCpp_INCLUDE_DIR} | ||
${catkin_INCLUDE_DIRS} |
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.
As a rule, I prefer to include in the order:
- package-local
- catkin
- system
I do this on the principal that a catkin workspace overlay should take precedence over system packages.
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.
Good point. Both swri_yaml_util
and swri_transform_util
didn't have ${catkin_INCLUDE_DIRS}
second, so I fixed them.
I found one hitch on Indigo; Mapviz uses It's easy to make |
swri_image_util/package.xml
Outdated
@@ -20,6 +20,8 @@ | |||
<depend>geometry_msgs</depend> | |||
<depend>image_geometry</depend> | |||
<depend>image_transport</depend> | |||
<depend>libqt4-opengl-dev</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.
Will having both qt4 and qt5 as deps cause a conflict?
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.
They don't conflict at all, and in fact work fine when installed side-by-side. It's mostly just annoying that rosdep is guaranteed to install a version of Qt that you may not be using at all.
It was only being used to find the intersection of two polygons, and swri_geometry_util can be used for that instead.
Easier solution: remove Qt entirely. |
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 think this a great idea. We need a documented process on how to do future updates to avoid diverging again in the future.
I'm going to set a target to get the necessary tests in on this next week, with the goal to merge by June 2. |
What tests are needed? I would love to get this merged as soon as possible. |
This totally got pushed off my plate. Sorry about that. @pjreed tested it in Kinetic. I don't care about Jade, but it needs to be tested for Indigo. I'd hate to see a major government client 😉 have problems. |
Tested on vehicle, there seems to be an issue with initialize_origin.py in swri_transform_util. When it gets to line 118 it complains that global name '_gps_fix' is not defined. |
Initialize `_gps_fix` to `None` As reported by @nick-alton in swri-robotics#443, initialize_origin.py would crash with a `NameError` on line 118 because `_gps_fix` is undefined. `_gps_fix` was previously defined and initialized as `None`
Ok, @nick-alton, try it again now. |
Maintaining three different branches for different ROS distributions is a pain and also unnecessary, so I've merged all of them together. This branch builds and all tests pass on indigo, jade, kinetic, and lunar. Don't look too hard at that commit list, it's ugly.
This PR targets the
indigo-devel
branch, but after it is merged, we should rename that branch tomaster
, lock down all of the distro-specific branches, and then release a new version (0.3.0) to all distros.Not very much needed to be changed to make everything compatible, but some notable things are:
swri_geometry_util
,swri_image_util
,swri_opencv_util
, andswri_transform_util
) have a rosdep oncv_bridge
and don't specify a version when callingfind_package
in theirCMakeLists.txt
; this means they'll use OpenCV 2 on Indigo and Jade and OpenCV 3 on Kinetic and Lunar.swri_image_util
depends on Qt 5.swri_transform_util
previously used thegps_common/GPSFix
message on Indigo andsensor_msgs/NavSatFix
(or Pose, or GeoPose, or whatever else was appropriate) on Jade and later. Now they will all handle all of them. This is a little ugly ininitialize_origin.py
because it was basically completely rewritten for NavSatFix support. The right thing to do would be to rewrite it again to handle every case gracefully, but that's a bit beyond the scope of this PR, so instead it just detects whether your ${ROS_DISTRO} is "indigo" or not and changes behavior appropriately.