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

[Feature Request] Workflow for cross compiling custom ROS packages #22

Open
KannebTo opened this issue Mar 7, 2019 · 2 comments
Open

Comments

@KannebTo
Copy link

KannebTo commented Mar 7, 2019

After successfully compiling and running ROS on Pepper (thanks to this great repository), i like to cross compile my own packages. This seems simple at first. I just need to copy the package folder to pepper_ros1_ws/src/ and run build_ros1.sh again. But this takes a while, because of scanning for changes in more than 90 packages. I need a fast way to compile and recompile custom packages.

So i renamed the src directory and created a new one, which contains my packages only. And i created a modified version of build_ros1.sh, which gets rid of unnecessary commands such as creation of directories, copying files which are already there and the vcs import.
The last step is to fix the ICU linking errors by changing the pepper_ros1_ws/ctc-cmake-toolchain.cmake. The packages compile if the link flags -licudata, -licui18n and -licuuc are applied.

# pepper_ros1_ws/ctc-cmake-toolchain.cmake

# ...
# on line 267
set(_link_flags "-licudata -licui18n -licuuc")
# ...

or by adding the project names to the following if-statement. Now everything works and i pushed the new files in the installation directory to the robot using rsync.

Is there a better way? Maybe a new workspace and some scripts? Also it would be nice to separate the base ROS packages for Pepper from the custom ones in the installation directory. So you can simply reset the ROS installation on the Robot by deleting the directory of custom packages.

Thanks

@fmrico
Copy link
Contributor

fmrico commented Mar 9, 2019

Hi @KannebTo ,

I have to finish #18 to do another PR with the functionality that you are asking for.

You can build several workspaces separately: ROS base workspace, another specific package in another workspace and your application in another workspace. Each workspace could have a *_ctc.cmake, startup scripts...

As a guide, you can follow this gist that we are using in RoboCup SSPL@Home as an example to create your build in a separate workspace:

https://gist.github.com/fmrico/f90352bb48856dd78ca0c79ccb810ece

Hope it helps!!

@KannebTo
Copy link
Author

Hi @fmrico,
thank you. That's useful!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants