-
Notifications
You must be signed in to change notification settings - Fork 16
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
Build dependencies on 22.04 using debian base packages #6
Comments
After installing ros-robot-dev on 22.04, the catkin_tools from src, trying to catkin build something:
The cmake does exist:
But that directory probably isn't on the path for catkin to find, there doesn't seem to be a setup.bash to get all of those. There's a issue complicating the above, my system is still using the staging3 completely from source paths... once that is cleaned out can't even
-> So can clone |
|
Try rosdep init and update- no that didn't help is it using the right distro yaml files?
|
Trying to use catkin tools in a relatively fresh environment:
Forgot PYTHONPATH
|
Need to source a ros setup.sh? No everything should already be on the path, catkin needs updating to realize that though. Can ignore that warning, builds still work |
ddynamic_reconfigure
Need gmock->
but then
-> use this version: https://github.com/ros-o/rosconsole/commits/obese-devel No still see it, that version is likely the same as what is released in 22.04 catkin build is using ->
|
diagnostic_updater
|
rviz is built against libogre-1.12, but libgazebo-dev is built against libogre-1.9?
|
|
can't pip install vcstool?
|
repos_2204.yaml.txt - though would probably also want all the ros-o versions of other packages too Try building with those dependencies in ubuntu 20.04 also- set up a github action for that |
No rqt in the above, try that next
|
Need to fix this in rqt_dr_single -> cast to int Regular rqt_reconfigure runs but is blank- something broken in qt? |
boost::bind vs. std::bind and std::placeholders- can I use std:: everywhere? Try it in robot_localization https://stackoverflow.com/questions/10555566/difference-between-c11-stdbind-and-boostbind |
Could use this version of control_toolbox instead of mine: ros-controls/control_toolbox#117 |
Also sorting out some changes in ros_controllers- there were instances of _1 and _2 even after a merged PR that removed most of them, see if those are needed |
Make locus fuse compile https://github.com/locusrobotics/fuse
This needs fixing in rviz (maybe newer ros-o rviz already did?)
|
Make a PR for this in ros_comm
|
lucasw kindr_ros cpp17 |
|
rviz vs. system qt version mismatch?
|
Try out rosconsole concise_output_roso in 20.04 Also rviz_lighting cpp17 in 20.04 |
CATKIN_IGNORE this
|
Had an unaltered image_common checked out for no reason, CATKIN_IGNORE for now, delete it later |
apt installs
|
lucasw graph_rviz_plugin cpp17 Also lots of deprecation warnings
|
Fix navigation next:
-> need to PR this https://github.com/lucasw/navigation/tree/boost_placeholders |
Can both log4cxx 0.10.0 and 0.12.0 be supported in same version?
https://logging.apache.org/log4cxx/latest_stable/changelog.html |
base_catkin_ws repos - there isn't a clean distinction between repos in Some can be pointed back at official upstream repos as PRs are merged (many PRs have not yet been made) |
solution ->
|
rosout ERROR messages aren't appearing in stdout from roslaunch, though can see them in rqt console- not sure if that is true for C++ and rospy nodes or just C++. A test C++ node works fine via rosrun and roslaunch- there's something messed up with the particular node I'm trying to run (which works fine in noetic)- could be because it is a ros_control node? the problem seems to be in
Correlated with roscore
I think that's all indicative of the crash of the node |
Do joint_trajectory_controller tests run?
(do any tests run?) --> need to build tests, catkin enable testing
In
Try using the most recent versions of class_loader and pluginlib-> still works in noetic |
Looks like this show the problem (there's some additional debug output there I added in)
|
Try out pluginlib, class_loader, and controller_manager tests Use
That may have to do with rospack not finding the current ws version of pluginlib:
catkin_make -> Go back to using catkin tools, and put [email protected]:ros/rospack into src, then rospack find works ... but it only works for finding packages in the workspace, it doesn't find the apt installed ros packages- only the apt install rospack finds those. |
(back in catkin tools build)
-> use https://github.com/ros-o/control_toolbox My ros_comm modifications look to be an issue also
|
ros_comm at this version has the above issue
if I catkin ignore it and rebuild then the joint test works- so whatever ros_comm is released into debian is older, and fine? Probably my Ubuntu 22.04 version is even older? No https://packages.ubuntu.com/jammy/python3-rosmaster Are there patches on it in https://tracker.debian.org/pkg/ros-ros-comm? |
Make a clean base_catkin_ws with no ros_comm or rosconsole in it, then make sure ROS_INFO/ERROR etc. work with test nodes built on top of that, and others already in /usr Then when testing ability to build overlaying ros_comm/console use a new ros_base_catkin_ws See what ldd says about built binaries, what ros core libraries are linked in, compare to similar in 20.04- does one dynamically point at the overlaying core libraries, but in 22.04 it's pointed at the /usr libs, or some broken mix of the two? Does the debian build system result in binaries that are less 'native' than the 20.04 osrf ubuntu ones, which had abi compatibility that allowed the ros_comm overlay to work at all? Could it be a matter of so paths to absolute locations? |
rospack findROS_PACKAGE_PATH is empty when not sourcing a workspace, but rospack finds all the ws packages (and naturally not the ws ones). ws rospack can't find any of the /usr/share packages (causing things like roslint to fail on package dependes) If I add /usr/share/rospack to ROS_PACKAGE_PATH the ws rospack will find the /usr/share rospack does the apt rospack not even look at ROS_PACKAGE_PATH?
https://salsa.debian.org/science-team/ros-rospack/-/tree/master/debian/patches Try applying all those patches and build in base_catkin_ws, then modify so it searches /usr/share and looks at every entry in ROS_PACKAGE_PATH (Also make a ros_comm branch that applies all of https://salsa.debian.org/science-team/ros-ros-comm/-/tree/master/debian/patches) -> https://github.com/lucasw/rospack/tree/salsa fixes this, the /usr/share needs to go last for the right priority even with rospack fixed catkin_lint isn't finding the packages- it isn't even using rospack?
solved with https://github.com/lucasw/catkin_lint/tree/append_usr_share_package_path |
->
https://stackoverflow.com/questions/31172156/what-to-use-instead-of-qt5-use-modules |
Get rid of this- need to
https://github.com/catkin/catkin_tools/blob/main/catkin_tools/context.py#L506-L518 |
nmea_navsat_driver also wnts to do something with kdewallet in venv, strange -> CATKIN_IGNORE also
Is this something strange in the cmake of those, or something failing on my system?
Actually just need to build catkin_virtualenv first- it seems like it needs a build_depend on it, it has a test_depend conditional- but that isn't getting used? |
|
These look to be not crashing in overlay with the new rospack version that fixes overlaying, may not need any patches from the salsa debian gitlab repos- but should look at them
But https://salsa.debian.org/science-team/ros-rosconsole/-/tree/master/debian/patches ldd shows links to the system and parent catkin_ws so files- try same on noetic to see what it shows
at the very least putting ros_comm and rosconsole in base_catkin_ws will make everything built on top of them use them, just won't see them in apt installed nodes (which I wasn't using that much in noetic, so maybe there is no change in behavior here. Look at these and see if catkin is building things differently: https://salsa.debian.org/science-team/ros-catkin/-/tree/master/debian/patches |
jsk pluginsNeed to build [email protected]:jsk-ros-pkg/jsk_visualization.git and jsk dependencies
Despite jskeus-dev installed still get:
Going to CATKIN_IGNORE out of this for now face_detector wants boost_signals, I see only boost_signals2 on my system
giving up on jsk_pcl_ros_utils for now
|
rvizI think this is a similar ogre error as solved in rviz_camera_stream, where I needed distinct material names using a static counter- probably something in rviz dae loading needs tat
look in rviz/src/rviz/default_plugin/robot_model_display.cpp also src/rviz/robot/robot.cpp Maybe already fixed in ros2/rviz? ros2/rviz@4c8793b also noted here:
https://github.com/ros/media_export
|
Try loading this If it works modify it to load two instances of the same dae, then test that. Don't need to modify the xacro, can just load two instance of the same RobotModel- the first one works, the second crashes -> fixed https://github.com/lucasw/rviz/tree/unique_material_names Sometimes see this
->
but image common is already in debian, but it didn't get seen when rviz was built from source? |
Put all the above instructions that are still needed to configure a system into a ubuntu_2204 folder README.md file in this repo, along with the base_repos.yaml and ignore.sh -> https://github.com/lucasw/ros_from_src/tree/core/ubuntu_2204 |
Trying fresh 22.04 catkin_tools
-> git clone osrf pycommon and build and install it like vcstool and catkin_tools The reason I didn't see this before was because I was using osrf_pycommon left ofter from 20.04 install (and did a do-release-upgrade that didn't remove it because it didn't conflict with anything new) Look for more of these non-repo packages:
|
Try out overlaying a devel workspace over an install one- does rospack find still work? (I think I tried an install on top of a devel and that does not work) this seems to work fine, just tried it out
|
lucasw/rosconsole concise_output_roso + lucasw/ros_comm use_ros_time_inrosbag_name works fine, no -> rebasing lucasw/ros_common noetic_aggregated on the latest ros_comm noetic-devel seems to have fixed this, no double frees so far But ros_control plugin loading is broken- need to recompile pluginlib, class_loader? No, there's something wrong with just ros_comm and/or rosconsole- if I CATKIN_IGNORE those in minimal catkin_ws that has everything needed for joint_trajectory_controller the test works (because the plugin loads)
do the bisecting again, see where ros_comm makes plugin loading fail Try applying https://salsa.debian.org/science-team/ros-ros-comm/-/tree/master/debian patches, especiially (but it look likes the base repo is divergent from ros/ros_comm, and there is no ros-o/ros_comm
-> this looks to solve the plugin loading https://github.com/lucasw/ros_comm/tree/salsa_noetic_aggregated rosconsole still needs looking at https://salsa.debian.org/science-team/ros-rosconsole/-/tree/master/debian/patches -> This has the debian soname patch: https://github.com/lucasw/rosconsole/tree/concise_output_roso |
Probably should put rtabmap and rtabmap_ros into ignore.sh because it takes so long to build |
-> Use std::make_unique |
Still seeing problems using custom ros_comm and rosconsole, this is out of github action despite using the debian patches:
But the test still passes |
This fully works, but bigger base_catkin_ws doesn't pass joint_trajectory_controller test
-> Also need rospack |
Plotjuggler has a dependency on libzmq-dev, but 22.04 only has libzmq3-dev
Find the minimal set of packages to build plotjuggler with
See the same issue with that Looks like this change introduced it: facontidavide/PlotJuggler@8e4e972 |
Add ackermann_msgs https://github.com/ros-drivers/ackermann_msgs |
Build all the dependencies here: #2 (comment)
Try this within a 22.04 docker image as well as a real 22.04 system
The text was updated successfully, but these errors were encountered: