Skip to content
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

Release with Bloom #6

Open
4 of 5 tasks
ymd-stella opened this issue Jan 30, 2021 · 24 comments
Open
4 of 5 tasks

Release with Bloom #6

ymd-stella opened this issue Jan 30, 2021 · 24 comments
Assignees
Labels
enhancement New feature or request

Comments

@ymd-stella
Copy link
Contributor

ymd-stella commented Jan 30, 2021

  • Create openvslam_ros
  • Make it possible to install dependent packages with submodule or rosdep.
  • Update the documentation for use with openvslam_ros
  • Update openvslam for release with Bloom
  • Update openvslam_ros for release with Bloom

ref. https://index.ros.org/doc/ros2/Tutorials/Releasing-a-ROS-2-package-with-bloom/

@ymd-stella ymd-stella added the enhancement New feature or request label Feb 12, 2021
@SteveMacenski
Copy link
Contributor

I can help with this too if you have questions

@ymd-stella
Copy link
Contributor Author

ymd-stella commented Feb 13, 2021

My plan is as follows.

@ymd-stella
Copy link
Contributor Author

ymd-stella commented Feb 13, 2021

@SteveMacenski
Copy link
Contributor

SteveMacenski commented Feb 13, 2021

Makes sense - sounds like you've worked with bloom before. Not everyone has and I know it can be a real pain to get up to speed on for your first few times.

In case its helpful, I'll just leave this here. This is my tl;dr Bloom guide as requested by others in the past that gives a plain-english step-by-step guide without all the options listed up front. Sometimes its useful just to have a "here's best practices, if you do this, things will be streamlined" https://gist.github.com/SteveMacenski/1c321d1c9edca096ae4d763d8327c2ee

Feel free to ask any questions of me if you run into issues

@ymd-stella
Copy link
Contributor Author

I' m considering how to resolve the dependency on the modified DBoW2.

@ymd-stella
Copy link
Contributor Author

It seems that in order to release it for Ubuntu 18.04 it needs to be modified to work with OpenCV 3.2.

@ymd-stella
Copy link
Contributor Author

ymd-stella commented Feb 21, 2021

I'm considering adding DBoW2 as a submodule like darknet_ros is doing for darknet.

@ymd-stella
Copy link
Contributor Author

It seems that in order to release it for Ubuntu 18.04 it needs to be modified to work with OpenCV 3.2.

In order to use the new versions of OpenCV and libg2o, I have decided to release openvslam for noetic/foxy.

@SteveMacenski
Copy link
Contributor

I'm not sure - anything openCV related if the wrong version is used turns into a complete nightmare

@ymd-stella
Copy link
Contributor Author

OpenVSLAM requires OpenCV 3.3.1 or later. (4 or later is also available.)
Ubuntu 18.04 does not meet this requirement as OpenCV 3.2 is used, but Ubuntu 20.04 meets this requirement as OpenCV 4.2 is used.

@SteveMacenski
Copy link
Contributor

SteveMacenski commented Feb 24, 2021

Ah ok, and you want 18.04 to support Melodic? My uses (for Nav2) is all in 20.04 (since all ROS2 distributions I believe are on 20.04 now as well as Noetic).

Maybe for Melodic docker is the right way to go to containerize OpenCV 3.3.1+ with openVSLAM so it doesn't contaminate the version shipping with 18.04

@ymd-stella ymd-stella self-assigned this Mar 2, 2021
@ymd-stella
Copy link
Contributor Author

ymd-stella commented Mar 14, 2021

@SteveMacenski May I ask you a question?
I have run bloom-release. The tags has been pushed to https://github.com/OpenVSLAM-Community/openvslam-release.

However, the automatic creation of the pull request failed.
Failed to open pull request: KeyError - 'url'

What is the pull request in the last step of bloom-release?
If I want to do this step manually, where and what kind of pull request should I create?
(Or should I modify some settings and let bloom handle it? Is there a problem with rerunning bloom-release?)

@SteveMacenski
Copy link
Contributor

SteveMacenski commented Mar 15, 2021

I haven't seen that particular error before, it really would depend when that error appeared in the process to know for sure. The last step is that it forks rosdistro and adds the entry with all of the information (and a few more questions about PR testing and documentation statuses) to a branch submitted against rosdistro which will trigger the build farm binary building process on the release repo / versions (amongst other stuff)

For example: ros/rosdistro#28524

I would recommend rerunning bloom until you get it to work - it will save you a ton of time if you learn it upfront + manually editing rosdistro is error prone

@ymd-stella
Copy link
Contributor Author

ros/rosdistro#28651

It worked. It seems that I tried to enter the document and source information halfway, which was a bad idea.

@SteveMacenski
Copy link
Contributor

SteveMacenski commented Mar 15, 2021

Once it gets in, make sure to check in on https://build.ros2.org/ for the build status so you can make sure it built correctly / fix any issues. Usually on a first release to a new distro, I expect there to be an issue or two. Like missing dependencies in your package.xml or what have you

@ymd-stella
Copy link
Contributor Author

ymd-stella commented Mar 15, 2021

Once it gets in, make sure to check in on https://build.ros2.org/ for the build status so you can make sure it built correctly / fix any issues.

I'm at a loss as to where to find related information.

I noticed that a search on openvslam seemed to be a good idea.

@SteveMacenski
Copy link
Contributor

Yes, I use search :-)

@ymd-stella
Copy link
Contributor Author

ymd-stella commented Mar 20, 2021

The build is currently failing. There are three reasons

  • fbow library file is not found in the second build.
  • Unable to build fbow with -DCMAKE_BUILD_TYPE=None
  • Unable to build fbow with aarch64

Items that have been fixed are checked.

@ymd-stella
Copy link
Contributor Author

ymd-stella commented Mar 20, 2021

build.ros2.org builds with -DCMAKE_BUILD_TYPE=None, which causes performance problems. There are four approaches to solve this problem. Which is best?

  • Add optimization options when -DCMAKE_BUILD_TYPE=None is specified.
  • Specify -DCMAKE_BUILD_TYPE=Release.
  • Overwrite CMAKE_BUILD_TYPE with Release if -DCMAKE_BUILD_TYPE=None.
  • Always put the optimization option on. (like nav2_smac_planner/CMakeLists.txt#L34)

@ymd-stella
Copy link
Contributor Author

ymd-stella commented Mar 20, 2021

I took the first approach.

The performance appears to be worse in the release build, and I'm investigating the cause.

@ymd-stella
Copy link
Contributor Author

The performance appears to be worse in the release build, and I'm investigating the cause.

It was caused by -ffast-math.

@SteveMacenski
Copy link
Contributor

The build farm should be using Release builds when none is specifically specified or overrided

@ymd-stella
Copy link
Contributor Author

There are four different build logs, but I don't know what each one does.

  • Fdev__openvslam__ubuntu_focal_amd64
  • Fsrc_uF__openvslam__ubuntu_focal__source
  • Fbin_uF64__openvslam__ubuntu_focal_amd64__binary
  • Fbin_ubv8_uFv8__openvslam__ubuntu_focal_arm64__binary

The following log was included, so it seems that the build type is set to None in Fbin*.

cd obj-aarch64-linux-gnu && cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_SYSCONFDIR=/etc -DCMAKE_INSTALL_LOCALSTATEDIR=/var -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON -DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON "-GUnix Makefiles" -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_AUTOGEN_VERBOSE=ON -DCMAKE_INSTALL_LIBDIR=lib/aarch64-linux-gnu -DCMAKE_INSTALL_PREFIX=/opt/ros/foxy -DCMAKE_PREFIX_PATH=/opt/ros/foxy ..

@SteveMacenski
Copy link
Contributor

dev is the master branch of your repo, source is the source build of the code for packaging, and the bin builds are the binary builds for deployment to apt

ymd-stella pushed a commit that referenced this issue May 25, 2021
* RGBD support process init, some fixes with deprecated header and methods.

Signed-off-by: ShivamPR21 <[email protected]>

* Reduce redundant code.

Signed-off-by: ShivamPR21 <[email protected]>

* Header fixes for sensor_msgs.

Signed-off-by: ShivamPR21 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants