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

Build dependencies on 22.04 using debian base packages #6

Open
lucasw opened this issue Feb 26, 2022 · 66 comments
Open

Build dependencies on 22.04 using debian base packages #6

lucasw opened this issue Feb 26, 2022 · 66 comments

Comments

@lucasw
Copy link
Owner

lucasw commented Feb 26, 2022

Build all the dependencies here: #2 (comment)

Try this within a 22.04 docker image as well as a real 22.04 system

@lucasw
Copy link
Owner Author

lucasw commented Feb 26, 2022

After installing ros-robot-dev on 22.04, the catkin_tools from src, trying to catkin build something:

CMake Error at /home/lucasw/own/ros/staging3/ros/share/catkin/cmake/catkinConfig.cmake:83 (find_package):
  Could not find a package configuration file provided by
  "joint_state_publisher" with any of the following names:

    joint_state_publisherConfig.cmake
    joint_state_publisher-config.cmake

  Add the installation prefix of "joint_state_publisher" to CMAKE_PREFIX_PATH
  or set "joint_state_publisher_DIR" to a directory containing one of the
  above files.  If "joint_state_publisher" provides a separate development
  package or SDK, be sure it has been installed.

The cmake does exist:

/usr/share/joint_state_publisher/cmake/joint_state_publisherConfig.cmake

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 catkin config

WARNING: Your workspace is not extending any other result space, but
it is set to use a `linked` devel space layout. This requires the
`catkin` CMake package in your source space in order to be built.

-> So can clone catkin into catkin_ws/src, cmake build and install it to $DEST/opt/ros or similar, then source $DEST/opt/ros/setup.bash, then catkin config and build

@lucasw
Copy link
Owner Author

lucasw commented Feb 26, 2022

CMake Error at /home/lucasw/catkin_ws/install/share/catkin/cmake/catkinConfig.cmake:83 (find_package):
  Could not find a package configuration file provided by
  "message_generation" with any of the following names:

    message_generationConfig.cmake
    message_generation-config.cmake

  Add the installation prefix of "message_generation" to CMAKE_PREFIX_PATH or
  set "message_generation_DIR" to a directory containing one of the above
  files.  If "message_generation" provides a separate development package or
  SDK, be sure it has been installed.

@lucasw
Copy link
Owner Author

lucasw commented Feb 26, 2022

Try rosdep init and update- no that didn't help is it using the right distro yaml files?

rosdep install --from-paths src --ignore-src -r -s  # do a dry-run first
ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies (ROS distro is not set. Make sure `ROS_DISTRO` environment variable is set, or use `--rosdistro` option to specify the distro, e.g. `--rosdistro indigo`):

@lucasw
Copy link
Owner Author

lucasw commented May 2, 2022

Trying to use catkin tools in a relatively fresh environment:

export DEST=$HOME/catkin_ws/other/install
export PATH=$PATH:/$DEST/bin

git clone git@github.com:lucasw/catkin_tools --branch sanitize_cmake_prefix_path
cd catkin_tools
python3 setup.py install --prefix=$DEST --record install_manifest.txt --single-version-externally-managed
$ catkin build
Traceback (most recent call last):
  File "/home/lucasw/catkin_ws2/other/install/bin/catkin", line 33, in <module>
    sys.exit(load_entry_point('catkin-tools==0.8.5', 'console_scripts', 'catkin')())
  File "/home/lucasw/catkin_ws2/other/install/bin/catkin", line 22, in importlib_load_entry_point
    for entry_point in distribution(dist_name).entry_points
  File "/usr/lib/python3.10/importlib/metadata/__init__.py", line 957, in distribution
    return Distribution.from_name(distribution_name)
  File "/usr/lib/python3.10/importlib/metadata/__init__.py", line 548, in from_name
    raise PackageNotFoundError(name)
importlib.metadata.PackageNotFoundError: No package metadata was found for catkin-tools

Forgot PYTHONPATH

PYTHON_MAJOR_VERSION=`python --version | awk  '{print $2}' | cut -d'.' -f1`
PYTHON_MINOR_VERSION=`python --version | awk  '{print $2}' | cut -d'.' -f2`
export PYTHONPATH=$DEST/lib/python$PYTHON_MAJOR_VERSION.$PYTHON_MINOR_VERSION/site-packages/

@lucasw
Copy link
Owner Author

lucasw commented May 2, 2022

------------------------------------------------------------
WARNING: Your workspace is not extending any other result
space, but it is set to use a `linked` devel space layout.
This requires the `catkin` CMake package in your source
space in order to be built.
------------------------------------------------------------

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

@lucasw
Copy link
Owner Author

lucasw commented May 2, 2022

ddynamic_reconfigure

CMake Error at CMakeLists.txt:59 (target_link_libraries):
  Cannot specify link libraries for target "ddynamic_reconfigure-test" which
  is not built by this project.

Need gmock->

sudo apt install libgmock-dev

but then

Errors     << ddynamic_reconfigure:make /home/lucasw/catkin_ws2/logs/ddynamic_reconfigure/build.make.000.log                                                                                                            
In file included from /usr/include/log4cxx/log4cxx.h:45,
                 from /usr/include/log4cxx/logstring.h:28,
                 from /usr/include/log4cxx/level.h:22,
                 from /usr/include/ros/console.h:46,
                 from /usr/include/ros/assert.h:35,
                 from /usr/include/ros/common.h:36,
                 from /usr/include/ros/publisher.h:32,
                 from /usr/include/ros/node_handle.h:32,
                 from /usr/include/dynamic_reconfigure/server.h:50,
                 from /home/lucasw/catkin_ws2/src/other/ddynamic_reconfigure/include/ddynamic_reconfigure/ddynamic_reconfigure.h:34,
                 from /home/lucasw/catkin_ws2/src/other/ddynamic_reconfigure/src/ddynamic_reconfigure.cpp:1:
/usr/include/log4cxx/boost-std-configuration.h:10:18: error: ‘shared_mutex’ in namespace ‘std’ does not name a type
   10 |     typedef std::shared_mutex shared_mutex;
      |                  ^~~~~~~~~~~~
/usr/include/log4cxx/boost-std-configuration.h:10:13: note: ‘std::shared_mutex’ is only available from C++17 onwards
   10 |     typedef std::shared_mutex shared_mutex;
      |             ^~~
/usr/include/log4cxx/boost-std-configuration.h:12:30: error: ‘shared_lock’ in namespace ‘std’ does not name a template type
   12 |     using shared_lock = std::shared_lock<T>;
      |                              ^~~~~~~~~~~
/usr/include/log4cxx/boost-std-configuration.h:12:25: note: ‘std::shared_lock’ is only available from C++14 onwards
   12 |     using shared_lock = std::shared_lock<T>;
      |                         ^~~
make[2]: *** [CMakeFiles/ddynamic_reconfigure.dir/build.make:76: CMakeFiles/ddynamic_reconfigure.dir/src/ddynamic_reconfigure.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:583: CMakeFiles/ddynamic_reconfigure.dir/all] Error 2
make: *** [Makefile:146: all] Error 2

->

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 -std=c++0x, fix that

->

ddynamic_reconfigure/CMakeLists.txt:set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")

@lucasw
Copy link
Owner Author

lucasw commented May 3, 2022

diagnostic_updater

Warnings   << diagnostic_updater:cmake /home/lucasw/catkin_ws/logs/diagnostic_updater/build.cmake.000.log                                                                                             
/usr/share/catkin/cmake/interrogate_setup_dot_py.py:43: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives
  import distutils.core
Warnings   << rqt_controller_manager:cmake /home/lucasw/catkin_ws/logs/rqt_controller_manager/build.cmake.000.log                                                                                     
/usr/share/catkin/cmake/interrogate_setup_dot_py.py:43: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives
  import distutils.core

@lucasw
Copy link
Owner Author

lucasw commented May 3, 2022

rviz is built against libogre-1.12, but libgazebo-dev is built against libogre-1.9?

sudo apt install libgazebo-dev
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libogre-1.12-dev : Conflicts: libogre-1.9-dev but 1.9.0+dfsg1-12.1ubuntu1 is to be installed
 sudo apt remove libogre-1.12-dev
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
  gazebo-common libdart-utils6.12
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
  libogre-1.12-dev librviz-dev ros-desktop-dev ros-desktop-full-dev ros-viz-dev

@lucasw
Copy link
Owner Author

lucasw commented May 3, 2022

catkin_lint .
catkin_lint: neither ROS_DISTRO environment variable nor --rosdistro option set

@lucasw
Copy link
Owner Author

lucasw commented May 3, 2022

can't pip install vcstool?

git clone git@github.com:dirk-thomas/vcstool.git
cd vcstool
export DEST=$HOME/catkin_ws/other/install
export PATH=$PATH:$DEST/bin
python3 setup.py install --prefix=$DEST --record install_manifest.txt --single-version-externally-managed

@lucasw
Copy link
Owner Author

lucasw commented May 3, 2022

~/catkin_ws/src$ vcs export > repos_2204.yaml

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

@lucasw
Copy link
Owner Author

lucasw commented May 3, 2022

No rqt in the above, try that next

 sudo apt install cmake-qt-gui
git@github.com:ros-o/rqt.git
git@github.com:ros-o/qt_gui_core.git  
                 from /home/lucasw/catkin_ws/src/ros/rqt/rqt_gui_cpp/src/rqt_gui_cpp/nodelet_plugin_provider.h:36,
                 from /home/lucasw/catkin_ws/src/ros/rqt/rqt_gui_cpp/src/rqt_gui_cpp/nodelet_plugin_provider.cpp:33:
/usr/include/boost/bind.hpp:36:1: note: ‘#pragma message: The practice of declaring the Bind placeholders (_1, _2, ...) in the global namespace is deprecated. Please use <boost/bind/bind.hpp> + using namespace boost::placeholders, or define BOOST_BIND_GLOBAL_PLACEHOLDERS to retain the current behavior.’
   36 | BOOST_PRAGMA_MESSAGE(
      | ^~~~~~~~~~~~~~~~~~~~

@lucasw
Copy link
Owner Author

lucasw commented May 3, 2022

  File "/home/lucasw/catkin_ws/src/lucasw/dynamic_reconfigure_tools/rqt_dr_single/src/rqt_dr_single/dr_single.py", line 260, in update_description
    widget.setValue(slider_val)
TypeError: setValue(self, int): argument 1 has unexpected type 'float'

Need to fix this in rqt_dr_single -> cast to int

Regular rqt_reconfigure runs but is blank- something broken in qt?

@lucasw
Copy link
Owner Author

lucasw commented May 5, 2022

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

@lucasw
Copy link
Owner Author

lucasw commented May 5, 2022

Could use this version of control_toolbox instead of mine: ros-controls/control_toolbox#117

@lucasw
Copy link
Owner Author

lucasw commented May 5, 2022

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

lucasw/ros_controllers@d65edb4

@lucasw
Copy link
Owner Author

lucasw commented May 7, 2022

Make locus fuse compile https://github.com/locusrobotics/fuse

apt install libgoogle-glog-dev
find . -type f -name "*.*" -exec sed -i'' -e 's/CXX_STANDARD 14/CXX_STANDARD 17/g' {} +
Errors     << fuse_models:cmake /home/lucasw/catkin_ws/logs/fuse_models/build.cmake.000.log                                                                                                              
CMake Error at /usr/share/catkin/cmake/catkinConfig.cmake:82 (find_package):
  Could not find a package configuration file provided by "tf2_2d" with any
  of the following names:

    tf2_2dConfig.cmake
    tf2_2d-config.cmake
git clone git@github.com:locusrobotics/tf2_2d.git

This needs fixing in rviz (maybe newer ros-o rviz already did?)

Errors     << fuse_viz:make /home/lucasw/catkin_ws/logs/fuse_viz/build.make.005.log                                                                                                                      
In file included from /usr/include/rviz/ogre_helpers/shape.h:36,
                 from /home/lucasw/catkin_ws/src/fuse/fuse_viz/src/mapped_covariance_visual.cpp:32:
/usr/include/OGRE/OgreVector3.h:2:62: note: ‘#pragma message: /usr/include/OGRE/OgreVector3.h is deprecated, migrate to Ogre.h’
    2 | #pragma message( __FILE__ " is deprecated, migrate to Ogre.h")
      |                                                              ^
In file included from /usr/include/eigen3/Eigen/Core:337,
                 from /usr/include/eigen3/Eigen/Dense:1,
                 from /home/lucasw/catkin_ws/src/fuse/fuse_viz/include/fuse_viz/mapped_covariance_visual.h:41,
                 from /home/lucasw/catkin_ws/src/fuse/fuse_viz/src/mapped_covariance_visual.cpp:30:
/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h: In function ‘static void Eigen::internal::selfadjoint_product_impl<Lhs, LhsMode, false, Rhs, 0, true>::run(Dest&, const Lhs&, const Rhs&, const Scalar&) [with Dest = Eigen::Block<Eigen::Matrix<double, 1, 1, 0, 1, 1>, -1, 1, false>; Lhs = Eigen::Block<Eigen::Matrix<double, 2, 2>, -1, -1, false>; int LhsMode = 17; Rhs = Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, const Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, const Eigen::Matrix<double, -1, 1, 0, 2, 1> >, const Eigen::Block<Eigen::Block<Eigen::Matrix<double, 2, 2>, 2, 1, true>, -1, 1, false> >]’:
/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h:229:7: error: ‘result’ may be used uninitialized [-Werror=maybe-uninitialized]
  227 |     internal::selfadjoint_matrix_vector_product<Scalar, Index, (internal::traits<ActualLhsTypeCleaned>::Flags&RowMajorBit) ? RowMajor : ColMajor,
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  228 |                                                 int(LhsUpLo), bool(LhsBlasTraits::NeedToConjugate), bool(RhsBlasTraits::NeedToConjugate)>::run
      |                                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  229 |       (
      |       ^
  230 |         lhs.rows(),                             // size
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  231 |         &lhs.coeffRef(0,0),  lhs.outerStride(), // lhs info
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  232 |         actualRhsPtr,                           // rhs info
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  233 |         actualDestPtr,                          // result info
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  234 |         actualAlpha                             // scale factor
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  235 |       );
      |       ~
/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h:41:6: note: by argument 3 of type ‘const double*’ to ‘static void Eigen::internal::selfadjoint_matrix_vector_product<Scalar, Index, StorageOrder, UpLo, ConjugateLhs, ConjugateRhs, Version>::run(Index, const Scalar*, Index, const Scalar*, Scalar*, Scalar) [with Scalar = double; Index = long int; int StorageOrder = 0; int UpLo = 1; bool ConjugateLhs = false; bool ConjugateRhs = false; int Version = 0]’ declared here
   41 | void selfadjoint_matrix_vector_product<Scalar,Index,StorageOrder,UpLo,ConjugateLhs,ConjugateRhs,Version>::run(
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1plus: all warnings being treated as errors

@lucasw
Copy link
Owner Author

lucasw commented May 8, 2022

Make a PR for this in ros_comm

commit ff1c90f8dd9b9d4e641e8ebe36909163be10504e (HEAD -> noetic_aggregated)
Author: Lucas Walter <wsacul@gmail.com>
Date:   Sat May 7 17:33:04 2022 -0700

    use boost/bind/bind.hpp instead of the deprecated boost/bind.hpp

@lucasw
Copy link
Owner Author

lucasw commented May 8, 2022

lucasw kindr_ros cpp17

@lucasw
Copy link
Owner Author

lucasw commented May 8, 2022

git clone git@github.com:ros-geographic-info/geographic_info.git
git clone git@github.com:ros-geographic-info/unique_identifier.git
git clone git@github.com:ros/xacro.git
git clone git@github.com:PickNikRobotics/rosparam_shortcuts.git

@lucasw
Copy link
Owner Author

lucasw commented May 8, 2022

rviz vs. system qt version mismatch?

Errors     << rviz_lighting:cmake /home/lucasw/catkin_ws/logs/rviz_lighting/build.cmake.000.log                                                                                                                  
CMake Error at CMakeLists.txt:22 (find_package):
  Could not find a configuration file for package "Qt5" that exactly matches
  requested version "5.15.2".

  The following configuration files were considered but not accepted:

    /usr/lib/x86_64-linux-gnu/cmake/Qt5/Qt5Config.cmake, version: 5.15.3
    /lib/x86_64-linux-gnu/cmake/Qt5/Qt5Config.cmake, version: 5.15.3

@lucasw
Copy link
Owner Author

lucasw commented May 8, 2022

Try out rosconsole concise_output_roso in 20.04

Also rviz_lighting cpp17 in 20.04

@lucasw
Copy link
Owner Author

lucasw commented May 8, 2022

CATKIN_IGNORE this

_________________________________________________________________________________________________________________________________________________________________________________________________________________
Errors     << virtual_force_publisher:cmake /home/lucasw/catkin_ws/logs/virtual_force_publisher/build.cmake.001.log                                                                                              
CMake Warning (dev) at /usr/share/catkin/cmake/all.cmake:73 (list):
  Policy CMP0007 is not set: list command no longer ignores empty elements.
  Run "cmake --help-policy CMP0007" for policy details.  Use the cmake_policy
  command to set the policy and suppress this warning.  List has value =
  [/home/lucasw/catkin_ws/devel;;/home/lucasw/other/install;/home/lucasw/other/install/lib/cmake].
Call Stack (most recent call first):
  /usr/share/catkin/cmake/catkinConfig.cmake:20 (include)
  CMakeLists.txt:5 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at /usr/share/catkin/cmake/all.cmake:75 (list):
  Policy CMP0007 is not set: list command no longer ignores empty elements.
  Run "cmake --help-policy CMP0007" for policy details.  Use the cmake_policy
  command to set the policy and suppress this warning.  List has value =
  [/home/lucasw/catkin_ws/devel;;/home/lucasw/other/install;/home/lucasw/other/install/lib/cmake].
Call Stack (most recent call first):
  /usr/share/catkin/cmake/catkinConfig.cmake:20 (include)
  CMakeLists.txt:5 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Error at /home/lucasw/catkin_ws/devel/share/kdl_conversions/cmake/kdl_conversionsConfig.cmake:109 (message):
  Project 'kdl_conversions' specifies
  '/home/lucasw/catkin_ws/src/ros/geometry/kdl_conversions/include' as an
  include dir, which is not found.  It does neither exist as an absolute
  directory nor in
  '/home/lucasw/catkin_ws/src/ros/geometry/kdl_conversions//home/lucasw/catkin_ws/src/ros/geometry/kdl_conversions/include'.
  Check the website 'http://ros.org/wiki/kdl_conversions' for information and
  consider reporting the problem.
Call Stack (most recent call first):
  /usr/lib/x86_64-linux-gnu/cmake/tf_conversions/tf_conversionsConfig.cmake:195 (find_package)
  /usr/share/catkin/cmake/catkinConfig.cmake:76 (find_package)
  CMakeLists.txt:5 (find_package)

@lucasw
Copy link
Owner Author

lucasw commented May 8, 2022

Had an unaltered image_common checked out for no reason, CATKIN_IGNORE for now, delete it later

@lucasw
Copy link
Owner Author

lucasw commented May 8, 2022

apt installs

sudo apt install ros-* libyaml-cpp-dev libgeographic-dev liburdfdom-dev python3-tf2-geometry-msgs libimage-view-dev vim python-is-python3

sudo apt install libpcl-ros-dev libqwt-qt5-dev libsdl-image1.2-dev libgstreamer1.0-dev libgst-dev libgstreamer-plugins-base1.0-dev libqt5svg5-dev libqt5websockets5-dev libqt5x11extras5-dev libapriltag-dev python3-venv libgmock-dev libgoogle-glog-dev libspnav-dev libv4l-dev libfrei0r-ocaml-dev liborocos-bfl-dev cython3

@lucasw
Copy link
Owner Author

lucasw commented May 8, 2022

lucasw graph_rviz_plugin cpp17

Also lots of deprecation warnings

/home/lucasw/catkin_ws/src/other/graph_rviz_plugin/src/qcustomplot.cpp: In member function ‘virtual QCPPainter* QCPPaintBufferPixmap::startPainting()’:
/home/lucasw/catkin_ws/src/other/graph_rviz_plugin/src/qcustomplot.cpp:670:35: warning: ‘QPainter::HighQualityAntialiasing’ is deprecated: Use Antialiasing instead [-Wdeprecated-declarations]
  670 |   result->setRenderHint(QPainter::HighQualityAntialiasing);

@lucasw
Copy link
Owner Author

lucasw commented May 8, 2022

Fix navigation next:

/home/lucasw/catkin_ws/src/roso/navigation/map_server/test/rtest.cpp:100:121: error: ‘_1’ was not declared in this scope

-> need to PR this https://github.com/lucasw/navigation/tree/boost_placeholders

@lucasw
Copy link
Owner Author

lucasw commented May 8, 2022

Can both log4cxx 0.10.0 and 0.12.0 be supported in same version?

 error: ‘log4cxx::LoggerPtr’ {aka ‘class log4cxx::helpers::ObjectPtrT<log4cxx::Logger>’} has no member named ‘get’

https://logging.apache.org/log4cxx/latest_stable/changelog.html

@lucasw
Copy link
Owner Author

lucasw commented May 9, 2022

base_catkin_ws repos - there isn't a clean distinction between repos in ros/ and roso/, originally intended the latter to only be repos hosted in ros-o, could clean that up later.

Some can be pointed back at official upstream repos as PRs are merged (many PRs have not yet been made)

@lucasw
Copy link
Owner Author

lucasw commented May 9, 2022

$ roswtf
Loaded plugin tf.tfwtf
Traceback (most recent call last):
  File "/home/lucasw/base_catkin_ws/devel/bin/roswtf", line 15, in <module>
    exec(compile(fh.read(), python_script, 'exec'), context)
  File "/home/lucasw/base_catkin_ws/src/ros/ros_comm/utilities/roswtf/scripts/roswtf", line 35, in <module>
    roswtf.roswtf_main()
  File "<string>", line 89, in roswtf_main
  File "<string>", line 143, in _roswtf_main
  File "/usr/lib/python3.10/os.py", line 679, in __getitem__
    raise KeyError(key) from None
KeyError: 'ROS_ROOT'

solution ->

export ROS_ROOT=/usr/share/ros

@lucasw
Copy link
Owner Author

lucasw commented May 9, 2022

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

    lowlevel_class_loader_.loadLibrary(library_path);

Correlated with roscore

couldn't resolve publisher host []

I think that's all indicative of the crash of the node

@lucasw
Copy link
Owner Author

lucasw commented May 10, 2022

Do joint_trajectory_controller tests run?

rostest joint_trajectory_controller joint_trajectory_controller_vel.test 
... logging to /home/lucasw/.ros/log/rostest-lucasw-XPS-8940-860345.log
[ROSUNIT] Outputting test results to /home/lucasw/.ros/test_results/joint_trajectory_controller/rostest-test_joint_trajectory_controller_vel.xml
[Testcase: testjoint_trajectory_controller_vel_test] ... FAILURE!
FAILURE: Test node [joint_trajectory_controller/joint_trajectory_controller_vel_test] does not exist or is not executable
  File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor
    yield
  File "/usr/lib/python3.10/unittest/case.py", line 591, in run
    self._callTestMethod(testMethod)
  File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod
    method()
  File "/home/lucasw/base_catkin_ws/src/ros/ros_comm/tools/rostest/src/rostest/runner.py", line 93, in fn
    self.fail(message)
--------------------------------------------------------------------------------

[ROSTEST]-----------------------------------------------------------------------

[testjoint_trajectory_controller_vel_test][failed]

SUMMARY
 * RESULT: FAIL
 * TESTS: 0
 * ERRORS: 0
 * FAILURES: 1

ERROR: The following tests failed to run:
 * testjoint_trajectory_controller_vel_test

rostest log file is in /home/lucasw/.ros/log/rostest-lucasw-XPS-8940-860345.log

(do any tests run?)

--> need to build tests, catkin enable testing

catkin build joint_trajectory_controller --no-deps --catkin-make-args tests

In noetic on 20.04 (using osrf ros packages):

 rostest joint_trajectory_controller joint_trajectory_controller.test
... logging to /home/lucasw/.ros/log/rostest-lucaswsys76-16381.log
[ROSUNIT] Outputting test results to /home/lucasw/.ros/test_results/joint_trajectory_controller/rostest-test_joint_trajectory_controller.xml
[I] [1652153887.459 /controller_spawner ...roller_manager/scripts/spawner: 121]: Controller Spawner: Waiting for service controller_manager/load_controller
[I] [1652153887.464 /controller_spawner ...roller_manager/scripts/spawner: 126]: Controller Spawner: Waiting for service controller_manager/switch_controller
[I] [1652153887.468 /controller_spawner ...roller_manager/scripts/spawner: 134]: Controller Spawner: Waiting for service controller_manager/unload_controller
[I] [1652153887.473 /controller_spawner ...roller_manager/scripts/spawner: 189]: Loading controller: rrbot_controller
[I] [1652153887.531 /controller_spawner ...roller_manager/scripts/spawner: 197]: Controller Spawner: Loaded controllers: rrbot_controller
[I] [1652153887.541 /controller_spawner ...roller_manager/scripts/spawner: 206]: Started controllers: rrbot_controller
[E] [1652153889.217 /rrbot ...t_trajectory_controller_impl.h:588]: Joints on incoming goal don't match the controller joints.
...
[W] [1652153963.412 /rrbot ...roller/init_joint_trajectory.h:357]: Dropping first 1 trajectory point(s) out of 3, as they occur before the current time.
First valid point will be reached in 2.000s.
[I] [1652154004.409 /controller_spawner ...roller_manager/scripts/spawner:  55]: Shutting down spawner. Stopping and unloading controllers...
[I] [1652154004.413 /controller_spawner ...roller_manager/scripts/spawner:  64]: Stopping all controllers...
[W] [1652154004.538 /controller_spawner ...roller_manager/scripts/spawner:  72]: Controller Spawner error while taking down controllers: unable to connect to service: connection from sender terminated before handshake header received. 0 bytes were received. Please check sender for additional details.
[Testcase: testjoint_trajectory_controller_test] ... ok

[ROSTEST]-----------------------------------------------------------------------

[joint_trajectory_controller.rosunit-joint_trajectory_controller_test/stateTopicConsistency][passed]
...
[joint_trajectory_controller.rosunit-joint_trajectory_controller_test/goalToleranceViolationSingleJoint][passed]

SUMMARY
 * RESULT: SUCCESS
 * TESTS: 27
 * ERRORS: 0
 * FAILURES: 0

rostest log file is in /home/lucasw/.ros/log/rostest-lucaswsys76-16381.log

Try using the most recent versions of class_loader and pluginlib-> still works in noetic

@lucasw
Copy link
Owner Author

lucasw commented May 10, 2022

Looks like this show the problem (there's some additional debug output there I added in)

roslaunch joint_trajectory_controller joint_trajectory_controller_vel.test 
...
[I] [1652147779.795 /controller_spawner ...roller_manager/scripts/spawner: 121]: Controller Spawner: Waiting for service controller_manager/load_controller
[I] [1652147779.801 /controller_spawner ...roller_manager/scripts/spawner: 126]: Controller Spawner: Waiting for service controller_manager/switch_controller
[I] [1652147779.807 /controller_spawner ...roller_manager/scripts/spawner: 134]: Controller Spawner: Waiting for service controller_manager/unload_controller
[I] [1652147779.813 /controller_spawner ...roller_manager/scripts/spawner: 189]: Loading controller: rrbot_controller
[W] [1652147779.821 /rrbot ...ger/src/controller_manager.cpp:243]: Will load controller 'rrbot_controller'
[W] [1652147779.825 /rrbot ...ger/src/controller_manager.cpp:295]: Constructing controller 'rrbot_controller' of type 'velocity_controllers/JointTrajectoryController'
[W] [1652147779.825 /rrbot ...uginlib/./class_loader_imp.hpp:170]: Attempting to create managed (unique) instance for class velocity_controllers/JointTrajectoryController.
[W] [1652147779.825 /rrbot ...uginlib/./class_loader_imp.hpp:175]: load library
[W] [1652147779.825 /rrbot ...uginlib/./class_loader_imp.hpp:620]: find available 'velocity_controllers/JointTrajectoryController'
[W] [1652147779.826 /rrbot ...uginlib/./class_loader_imp.hpp:629]: library path '/home/lucasw/catkin_ws/devel/lib//libjoint_trajectory_controller.so'
[W] [1652147779.826 /rrbot ...uginlib/./class_loader_imp.hpp:645]: imp load library









[E] [1652147780.839 /controller_spawner ...roller_manager/scripts/spawner: 195]: Failed to load rrbot_controller
[I] [1652147780.842 /controller_spawner ...roller_manager/scripts/spawner: 197]: Controller Spawner: Loaded controllers: 
[I] [1652147780.852 /controller_spawner ...roller_manager/scripts/spawner: 206]: Started controllers: 

@lucasw
Copy link
Owner Author

lucasw commented May 10, 2022

Try out pluginlib, class_loader, and controller_manager tests

Use catkin_make run_tests because it is better supported than catkin tools

github.com/lucasw/pluginlib

[ERROR] [1652189490.604182301 ...:262]: Skipped loading plugin with error: XML Document '/usr/share/pluginlib/test/test_plugins.xml' has no Root Element. This likely means the XML is malformed or missing..

That may have to do with rospack not finding the current ws version of pluginlib:

~/tmp/catkin_make_ws3$ find . | grep test_plugins_broken.xml
./src/pluginlib/pluginlib/test/test_plugins_broken.xml
~/tmp/catkin_make_ws3$ rospack find pluginlib
/usr/share/pluginlib

catkin_make devel/bin is empty, but works in catkin tools devel.

-> Go back to using catkin tools, and put git@github.com: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.

@lucasw
Copy link
Owner Author

lucasw commented May 10, 2022

(back in catkin tools build)

catkin build joint_trajectory_controller --no-deps --catkin-make-args run_tests
...
[W] [1652192598.330 /controller_spawner ...roller_manager/scripts/spawner:  72]: Controller Spawner error while taking down controllers: unable to connect to service: connection from sender terminated before handshake header received. 0 bytes were received. Please check sender for additional details.
free(): double free detected in tcache 2
[W] [1652192598.368 /controller_spawner ...roller_manager/scripts/spawner:  72]: Controller Spawner error while taking down controllers: unable to connect to service: connection from sender terminated before handshake header received. 0 bytes were received. Please check sender for additional details.
free(): double free detected in tcache 2
double free or corruption (fasttop)
double free or corruption (fasttop)
...

-> use https://github.com/ros-o/control_toolbox

My ros_comm modifications look to be an issue also

catkin build joint_trajectory_controller && source devel/setup.bash && catkin build joint_trajectory_controller --catkin-make-args tests && rostest joint_trajectory_controller joint_trajectory_controller.test

@lucasw
Copy link
Owner Author

lucasw commented May 10, 2022

ros_comm at this version has the above issue

commit 3f8eca4a1f13996b33c03a5c4ee3a69fb0db3668 (HEAD -> noetic-devel, origin/noetic-devel, origin/HEAD)
Author: Robert Haschke <rhaschke@users.noreply.github.com>
Date:   Tue Jan 25 02:12:55 2022 +0100

    Fix $(dirname) resolution in include tags (#2173)
    
    * roslaunch: Extend $(dirname) test
    
    * roslaunch include: Resolve substitution args w.r.t. parent's context to ensure that $(dirname) resolves to parent's dir

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?

Look at https://salsa.debian.org/science-team/ros-ros-comm

@lucasw
Copy link
Owner Author

lucasw commented May 12, 2022

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?

@lucasw
Copy link
Owner Author

lucasw commented May 14, 2022

rospack find

ROS_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)
unset ROS_PACKAGE_PATH with ws rospack does't cause it to find the /usr/share/packages

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?

~/tmp/ros-rospack$ grep -r "/usr/share" *
debian/patches/0002-Add-usr-share-as-default-ROS_PACKAGE_PATH.patch:+  sp.push_back("/usr/share/");
debian/patches/0004-Limit-search-depth-for-usr-share.patch:Subject: Limit search depth for /usr/share
debian/patches/0004-Limit-search-depth-for-usr-share.patch:+        if(name.size() == 0 || name[0] == '.' || (boost::starts_with(dit->path().string(), "/usr/share") && depth > 1))

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?

        for pkg in info.buildtool_dep | info.build_dep | info.export_dep | info.exec_dep | info.test_dep:
            if info.env.get_package_type(pkg) == PackageType.UNKNOWN:
                info.report(ERROR, "UNKNOWN_PACKAGE", pkg=pkg, file_location=("package.xml", 0))

solved with https://github.com/lucasw/catkin_lint/tree/append_usr_share_package_path

@lucasw
Copy link
Owner Author

lucasw commented May 15, 2022

Call Stack (most recent call first):
  /usr/lib/x86_64-linux-gnu/cmake/Qt5Core/Qt5CoreMacros.cmake:431 (_qt5_warn_deprecated)
  CMakeLists.txt:422 (QT5_USE_MODULES)
This warning is for project developers.  Use -Wno-dev to suppress it.

->

-        QT5_USE_MODULES(rtabmapviz Widgets Core Gui)
+        target_link_libraries(rtabmapviz Qt5::Widgets Qt5::Core Qt5::Widgets Qt5::Gui)

https://stackoverflow.com/questions/31172156/what-to-use-instead-of-qt5-use-modules

@lucasw
Copy link
Owner Author

lucasw commented May 15, 2022

Get rid of this- need to strip(":") and replace multiples like :: with : before comparison:

------------------------------------------------------------------------------------------------------------------------------
WARNING: Your current environment's CMAKE_PREFIX_PATH is different from the cached CMAKE_PREFIX_PATH used the last time this
workspace was built.

If you want to use a different CMAKE_PREFIX_PATH you should call `catkin clean` to remove all references to the previous
CMAKE_PREFIX_PATH.

Cached CMAKE_PREFIX_PATH:
	/home/lucasw/base_catkin_ws/devel:/home/lucasw/other/install:/home/lucasw/other/install/lib/cmake
Current CMAKE_PREFIX_PATH:
	/home/lucasw/base_catkin_ws/devel::/home/lucasw/other/install:/home/lucasw/other/install/lib/cmake

https://github.com/catkin/catkin_tools/blob/main/catkin_tools/context.py#L506-L518

@lucasw
Copy link
Owner Author

lucasw commented May 16, 2022

Warnings   << nmea_navsat_driver:make /home/lucasw/base_catkin_ws/logs/nmea_navsat_driver/build.make.000.log                                                                                                            
ERROR: Introspect error on :1.135:/modules/kwalletd5: dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NoReply: Message recipient disconnected from message bus without replying
ERROR: Introspect error on :1.140:/modules/kwalletd5: dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NoReply: Message recipient disconnected from message bus without replying
  ERROR: Introspect error on :1.145:/modules/kwalletd5: dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NoReply: Message recipient disconnected from message bus without replying

nmea_navsat_driver also wnts to do something with kdewallet in venv, strange -> CATKIN_IGNORE

also

Warnings   << test_catkin_virtualenv_inherited:make /home/lucasw/base_catkin_ws/logs/test_catkin_virtualenv_inherited/build.make.000.log                                                                                
ERROR: Introspect error on :1.220:/modules/kwalletd5: dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NoReply: Message recipient disconnected from message bus without replying
ERROR: Introspect error on :1.225:/modules/kwalletd5: dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NoReply: Message recipient disconnected from message bus without replying
  ERROR: Introspect error on :1.230:/modules/kwalletd5: dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NoReply: Message recipient disconnected from message bus without replying

Is this something strange in the cmake of those, or something failing on my system?

touch ./other/catkin_virtualenv/test_catkin_virtualenv/CATKIN_IGNORE
touch ./other/catkin_virtualenv/test_catkin_virtualenv_inherited/CATKIN_IGNORE
touch ./other/nmea_navsat_driver/CATKIN_IGNORE

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?

@lucasw
Copy link
Owner Author

lucasw commented May 16, 2022

base_repos.txt

./greenzie/boustrophedon_planner/CATKIN_IGNORE
./lucasw/simple_sim_ros/diffbot_control/CATKIN_IGNORE
./lucasw/screengrab_ros/screen_grab_ros2/CATKIN_IGNORE
./lucasw/dynamic_reconfigure_tools/rviz_dr_single/CATKIN_IGNORE
./ros/gazebo_ros_demos/CATKIN_IGNORE
./ros/joystick_drivers/wiimote/CATKIN_IGNORE
./ros/joystick_drivers/ps3joy/CATKIN_IGNORE
./ros/gazebo_ros_pkgs/CATKIN_IGNORE
./ros/grid_map/grid_map_demos/CATKIN_IGNORE
./ros/grid_map/grid_map_filters/CATKIN_IGNORE
./other/fiducials/aruco_detect/CATKIN_IGNORE
./other/fiducials/aruco_gazebo/CATKIN_IGNORE
./other/fiducials/fiducial_slam/CATKIN_IGNORE
./other/mavros/mavros/CATKIN_IGNORE
./other/mavros/test_mavros/CATKIN_IGNORE
./other/mavros/libmavconn/CATKIN_IGNORE
./other/mavros/mavros_extras/CATKIN_IGNORE
./other/jsk_recognition/CATKIN_IGNORE
./other/jsk_recognition/jsk_libfreenect2/CATKIN_IGNORE
./other/jsk_recognition/jsk_recognition_utils/CATKIN_IGNORE
./other/jsk_recognition/jsk_pcl_ros_utils/CATKIN_IGNORE
./other/jsk_recognition/jsk_pcl_ros/CATKIN_IGNORE
./other/jsk_recognition/jsk_perception/CATKIN_IGNORE
./other/openni2_camera/CATKIN_IGNORE
./other/catkin_virtualenv/test_catkin_virtualenv/CATKIN_IGNORE
./other/image_common/CATKIN_IGNORE
./other/depthai-ros-examples/CATKIN_IGNORE
./other/anybotics/elevation_mapping/CATKIN_IGNORE
./clearpath/moose_simulator/CATKIN_IGNORE
./clearpath/warthog_simulator/CATKIN_IGNORE
./clearpath/husky/CATKIN_IGNORE
./clearpath/husky/husky_gazebo/CATKIN_IGNORE

@lucasw
Copy link
Owner Author

lucasw commented May 16, 2022

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

repositories:
  ros_comm:
    type: git
    url: git@github.com:lucasw/ros_comm
    version: noetic_aggregated
  rosconsole:
    type: git
    url: git@github.com:lucasw/rosconsole
    version: concise_output_roso

But ${shortfile} isn't working with a binary in the parent ws

https://salsa.debian.org/science-team/ros-rosconsole/-/tree/master/debian/patches
https://salsa.debian.org/science-team/ros-ros-comm/-/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

	libroscpp.so.4d => /lib/x86_64-linux-gnu/libroscpp.so.4d (0x00007f1b964b8000)
	libroscpp_serialization.so => /home/lucasw/base_catkin_ws/devel/lib/libroscpp_serialization.so (0x00007f1b964b1000)
	librostime.so => /home/lucasw/base_catkin_ws/devel/lib/librostime.so (0x00007f1b96492000)
	libcpp_common.so => /home/lucasw/base_catkin_ws/devel/lib/libcpp_common.so (0x00007f1b96486000)
...
	libclass_loader.so.1d => /lib/x86_64-linux-gnu/libclass_loader.so.1d (0x00007f1b95f88000)
	libboost_thread.so.1.74.0 => /lib/x86_64-linux-gnu/libboost_thread.so.1.74.0 (0x00007f1b95f66000)
	libconsole_bridge.so.1.0 => /lib/x86_64-linux-gnu/libconsole_bridge.so.1.0 (0x00007f1b95f60000)
	libroslib.so.0d => /lib/x86_64-linux-gnu/libroslib.so.0d (0x00007f1b95f4d000)
	librosconsole.so.3d => /lib/x86_64-linux-gnu/librosconsole.so.3d (0x00007f1b95efa000)
	libroscpp_serialization.so.0d => /lib/x86_64-linux-gnu/libroscpp_serialization.so.0d (0x00007f1b95ef5000)
	libxmlrpcpp.so.3d => /lib/x86_64-linux-gnu/libxmlrpcpp.so.3d (0x00007f1b95ed3000)
...
	librospack.so.0d => /home/lucasw/base_catkin_ws/devel/lib/librospack.so.0d (0x00007f1b95bba000)
	librosconsole_log4cxx.so.3d => /lib/x86_64-linux-gnu/librosconsole_log4cxx.so.3d (0x00007f1b95b99000)
	librosconsole_backend_interface.so.3d => /lib/x86_64-linux-gnu/librosconsole_backend_interface.so.3d (0x00007f1b95b94000)
	liblog4cxx.so.12 => /lib/x86_64-linux-gnu/liblog4cxx.so.12 (0x00007f1b95a35000)
	libboost_regex.so.1.74.0 => /lib/x86_64-linux-gnu/libboost_regex.so.1.74.0 (0x00007f1b95942000)

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

@lucasw
Copy link
Owner Author

lucasw commented May 17, 2022

jsk plugins

Need to build git@github.com:jsk-ros-pkg/jsk_visualization.git and jsk dependencies

git clone git@github.com:jsk-ros-pkg/jsk_visualization.git 
git clone git@github.com:jsk-ros-pkg/jsk_roseus.git
git clone git@github.com:ros/common_tutorials.git
git clone git@github.com:jsk-ros-pkg/geneus.git
git clone git@github.com:tork-a/euslisp-release.git  # not as sure this is the right repo
git clone git@github.com:ros/ros_tutorials.git
git clone git@github.com:wg-perception/people.git
git clone git@github.com:ros-visualization/view_controller_msgs.git
sudo apt install libopencv-apps-dev jskeus-dev liborocos-bfl-dev

Despite jskeus-dev installed still get:

Errors     << roseus:cmake /home/lucasw/base_catkin_ws/logs/roseus/build.cmake.004.log                                                                                                                                  
-- set EUSDIR to /home/lucasw/base_catkin_ws/devel/share/euslisp/jskeus/eus
-- set ARCHDIR to Linux64
CMake Error at CMakeLists.txt:55 (find_package):
  By not providing "Findjskeus.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "jskeus", but
  CMake did not find one.

  Could not find a package configuration file provided by "jskeus" with any
  of the following names:

    jskeusConfig.cmake
    jskeus-config.cmake

  Add the installation prefix of "jskeus" to CMAKE_PREFIX_PATH or set
  "jskeus_DIR" to a directory containing one of the above files.  If "jskeus"
  provides a separate development package or SDK, be sure it has been
  installed.

Going to CATKIN_IGNORE out of this for now

face_detector wants boost_signals, I see only boost_signals2 on my system

/home/lucasw/base_catkin_ws/src/other/jsk_visualization/jsk_rviz_plugins/src/overlay_camera_display.cpp:209:55: error: cannot convert ‘const String’ {aka ‘const std::__cxx11::basic_string<char>’} to ‘const MaterialPtr&’ {aka ‘const Ogre::SharedPtr<Ogre::Material>&’}
  209 |     bg_screen_rect_->setMaterial(bg_material_->getName());
      |                                  ~~~~~~~~~~~~~~~~~~~~~^~
      |                                                       |
      |                                                       const String {aka const std::__cxx11::basic_string<char>}
In file included from /usr/include/OGRE/OgreRectangle2D.h:33,
                 from /home/lucasw/base_catkin_ws/src/other/jsk_visualization/jsk_rviz_plugins/src/overlay_camera_display.cpp:40:
/usr/include/OGRE/OgreSimpleRenderable.h:76:53: note:   initializing argument 1 of ‘virtual void Ogre::SimpleRenderable::setMaterial(const MaterialPtr&)’
   76 |         virtual void setMaterial(const MaterialPtr& mat);
      |                                  ~~~~~~~~~~~~~~~~~~~^~~
/home/lucasw/base_catkin_ws/src/other/jsk_visualization/jsk_rviz_plugins/src/overlay_camera_display.cpp:220:55: error: cannot convert ‘const String’ {aka ‘const std::__cxx11::basic_string<char>’} to ‘const MaterialPtr&’ {aka ‘const Ogre::SharedPtr<Ogre::Material>&’}
  220 |     fg_screen_rect_->setMaterial(fg_material_->getName());
      |                                  ~~~~~~~~~~~~~~~~~~~~~^~
      |                                                       |
      |                                                       const String {aka const std::__cxx11::basic_string<char>}

giving up on jsk_pcl_ros_utils for now

/home/lucasw/base_catkin_ws/src/other/jsk_recognition/jsk_pcl_ros_utils/src/pointcloud_to_pcd_nodelet.cpp:55:75: error: no match for ‘operator=’ (operand types are ‘pcl::PCLPointCloud2::ConstPtr’ {aka ‘std::shared_ptr<const pcl::PCLPointCloud2>’} and ‘boost::shared_ptr<const pcl::PCLPointCloud2>’)

@lucasw
Copy link
Owner Author

lucasw commented May 17, 2022

@lucasw
Copy link
Owner Author

lucasw commented May 17, 2022

rviz

I 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

terminate called after throwing an instance of 'Ogre::ItemIdentityException'
  what():  ItemIdentityException: Material with the name package://foo/bar.daeMaterial0_original already exists. in ResourceManager::add at ./OgreMain/src/OgreResourceManager.cpp (line 148)

look in rviz/src/rviz/default_plugin/robot_model_display.cpp void RobotModelDisplay::load()

also src/rviz/robot/robot.cpp void Robot::load(const urdf::ModelInterface& urdf, bool visual, bool collision)
-> robot_link.cpp

Maybe already fixed in ros2/rviz? ros2/rviz@4c8793b

also noted here:

ros-visualization/rviz#1330


[rospack] Error: no such package media_export
[librospack]: error while executing command

https://github.com/ros/media_export


[ERROR] [1652828623.528481534 /system_rviz_lucasw_XPS_8940_716577_8729550478975508344 ${shortfile}:58]: Error: ScriptCompiler - unexpected token in ogre1.9.fontdef(1): 'Liberation'. If this is a legacy script you must prepend the type (e.g. font, overlay).

@lucasw
Copy link
Owner Author

lucasw commented May 19, 2022

Try loading this

https://github.com/ros-simulation/gazebo_ros_demos/blob/kinetic-devel/rrbot_description/launch/rrbot_rviz.launch

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

terminate called after throwing an instance of 'image_transport::TransportLoadException'
  what():  Unable to load plugin for transport 'raw', error string:
Could not find library corresponding to plugin image_transport/raw_sub. Make sure the plugin description XML file has the correct name of the library and that the library actually exists.

->

git clone git@github.com:ros-perception/image_common.git

but image common is already in debian, but it didn't get seen when rviz was built from source?

@lucasw
Copy link
Owner Author

lucasw commented May 22, 2022

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

@lucasw
Copy link
Owner Author

lucasw commented May 22, 2022

Trying fresh 22.04 catkin_tools

/usr/lib/python3/dist-packages/pkg_resources/__init__.py:116: PkgResourcesDeprecationWarning: 1.16.0-unknown is an invalid version and will not be supported in a future release
  warnings.warn(
/usr/lib/python3/dist-packages/pkg_resources/__init__.py:116: PkgResourcesDeprecationWarning: 0.1.43ubuntu1 is an invalid version and will not be supported in a future release
  warnings.warn(
/usr/lib/python3/dist-packages/pkg_resources/__init__.py:116: PkgResourcesDeprecationWarning: 1.1build1 is an invalid version and will not be supported in a future release
  warnings.warn(
Traceback (most recent call last):
  File "/home/lucasw/other/install/bin/catkin", line 33, in <module>
    sys.exit(load_entry_point('catkin-tools==0.8.5', 'console_scripts', 'catkin')())
  File "/home/lucasw/other/install/bin/catkin", line 25, in importlib_load_entry_point
    return next(matches).load()
  File "/usr/lib/python3.10/importlib/metadata/__init__.py", line 171, in load
    module = import_module(match.group('module'))
  File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/home/lucasw/other/install/lib/python3.10/site-packages/catkin_tools/commands/catkin.py", line 21, in <module>
    import pkg_resources
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 3267, in <module>
    def _initialize_master_working_set():
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 3241, in _call_aside
    f(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 3279, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 573, in _build_master
    ws.require(__requires__)
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 891, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 777, in resolve
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'osrf-pycommon>0.1.1' distribution was not found and is required by 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:

apt list ?obsolete

@lucasw
Copy link
Owner Author

lucasw commented Jun 8, 2022

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

~/tmp/devel_over_install_ws$ rospack find sdl2_ros
/home/lucasw/tmp/devel_over_install_ws/src/sdl2_ros
~/tmp/devel_over_install_ws$ rospack find fiducial_slam
/home/lucasw/install_base_catkin_ws/install/share/fiducial_slam

@lucasw
Copy link
Owner Author

lucasw commented Jun 11, 2022

lucasw/rosconsole concise_output_roso + lucasw/ros_comm use_ros_time_inrosbag_name works fine, no double free issues- start bisecting my ros_comm noetic_aggregated to see where problems arise

-> 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)

repositories:
  control_msgs:
    type: git
    url: git@github.com:ros-controls/control_msgs
    version: kinetic-devel
  control_toolbox:
    type: git
    url: git@github.com:ros-o/control_toolbox
    version: obese-devel
  realtime_tools:
    type: git
    url: git@github.com:ros-controls/realtime_tools.git
    version: noetic-devel
  ros_comm:
    type: git
    url: git@github.com:lucasw/ros_comm
    version: use_ros_time_inrosbag_name
  ros_control:
    type: git
    url: git@github.com:lucasw/ros_control
    version: acceleration_limits
  ros_controllers:
    type: git
    url: git@github.com:lucasw/ros_controllers
    version: avoid_no_trajectory_defined
  rosconsole:
    type: git
    url: git@github.com:ros-o/rosconsole
    version: obese-devel
  roslint:
    type: git
    url: git@github.com:lucasw/roslint
    version: add_headers_to_valid_extensions
  xacro:
    type: git
    url: git@github.com:lucasw/xacro
    version: cleanup_roslint
catkin build joint_trajectory_controller --no-deps --catkin-make-args tests
rostest joint_trajectory_controller joint_trajectory_controller.test
... logging to /home/lucasw/.ros/log/rostest-lucasw-XPS-8940-373797.log
[ROSUNIT] Outputting test results to /home/lucasw/.ros/test_results/joint_trajectory_controller/rostest-test_joint_trajectory_controller.xml
[INFO] [1654967799.547189 /controller_spawner ${shortfile}:121]: Controller Spawner: Waiting for service controller_manager/load_controller
[INFO] [1654967799.548514 /controller_spawner ${shortfile}:126]: Controller Spawner: Waiting for service controller_manager/switch_controller
[INFO] [1654967799.550024 /controller_spawner ${shortfile}:134]: Controller Spawner: Waiting for service controller_manager/unload_controller
[INFO] [1654967799.551440 /controller_spawner ${shortfile}:189]: Loading controller: rrbot_controller
[INFO] [1654967799.567225 /controller_spawner ${shortfile}:197]: Controller Spawner: Loaded controllers: rrbot_controller
[INFO] [1654967799.577282 /controller_spawner ${shortfile}:206]: Started controllers: rrbot_controller
[ERROR] [1654967801.147427651 /rrbot ${shortfile}:588]: Joints on incoming goal don't match the controller joints.
[ERROR] [1654967801.149022414 /rrbot ${shortfile}:602]: Joints on incoming goal don't match the controller joints.
[ERROR] [1654967801.150921755 /rrbot ${shortfile}:552]: Size mismatch in trajectory point position, velocity or acceleration data.
[ERROR] [1654967801.152329646 /rrbot ${shortfile}:552]: Size mismatch in trajectory point position, velocity or acceleration data.
[ERROR] [1654967801.153540907 /rrbot ${shortfile}:236]: Trajectory message contains waypoints that are not strictly increasing in time.
[ERROR] [1654967801.154748918 /rrbot ${shortfile}:588]: Joints on incoming goal don't match the controller joints.
...
[joint_trajectory_controller.rosunit-joint_trajectory_controller_test/goalToleranceViolationSingleJoint][passed]

SUMMARY
 * RESULT: SUCCESS
 * TESTS: 27
 * ERRORS: 0
 * FAILURES: 0

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

0002-Add-Debian-specific-SONAMEs.patch
0006-Use-system-libb64.patch

-> 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

@lucasw
Copy link
Owner Author

lucasw commented Jun 12, 2022

Probably should put rtabmap and rtabmap_ros into ignore.sh because it takes so long to build

@lucasw
Copy link
Owner Author

lucasw commented Jun 12, 2022

Errors     << fiducial_slam:make /home/lucasw/base_catkin_ws/logs/fiducial_slam/build.make.000.log                                                                                                                   
/home/lucasw/base_catkin_ws/src/other/fiducials/fiducial_slam/src/fiducial_slam.cpp: In function ‘int main(int, char**)’:
/home/lucasw/base_catkin_ws/src/other/fiducials/fiducial_slam/src/fiducial_slam.cpp:135:37: error: call of overloaded ‘make_unique<FiducialSlam>(ros::NodeHandle&)’ is ambiguous
  135 |     node = make_unique<FiducialSlam>(nh);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
In file included from /home/lucasw/base_catkin_ws/src/other/fiducials/fiducial_slam/src/fiducial_slam.cpp:32:
/home/lucasw/base_catkin_ws/src/other/fiducials/fiducial_slam/include/fiducial_slam/helpers.h:6:20: note: candidate: ‘std::unique_ptr<_Tp> make_unique(Args&& ...) [with T = FiducialSlam; Args = {ros::NodeHandle&}]’
    6 | std::unique_ptr<T> make_unique(Args&&... args) {
      |                    ^~~~~~~~~~~
In file included from /usr/include/c++/11/memory:76,
                 from /home/lucasw/base_catkin_ws/src/other/fiducials/fiducial_slam/include/fiducial_slam/helpers.h:2,
                 from /home/lucasw/base_catkin_ws/src/other/fiducials/fiducial_slam/src/fiducial_slam.cpp:32:
/usr/include/c++/11/bits/unique_ptr.h:961:5: note: candidate: ‘typename std::_MakeUniq<_Tp>::__single_object std::make_unique(_Args&& ...) [with _Tp = FiducialSlam; _Args = {ros::NodeHandle&}; typename std::_MakeUniq<_Tp>::__single_object = std::unique_ptr<FiducialSlam>]’
  961 |     make_unique(_Args&&... __args)
      |     ^~~~~~~~~~~

-> Use std::make_unique

@lucasw
Copy link
Owner Author

lucasw commented Jun 20, 2022

Still seeing problems using custom ros_comm and rosconsole, this is out of github action despite using the debian patches:



free(): double free detected in tcache 2
[W] [1[65](https://github.com/lucasw/ros_from_src/runs/6969365255?check_suite_focus=true#step:26:66)5737[66](https://github.com/lucasw/ros_from_src/runs/6969365255?check_suite_focus=true#step:26:67)9.111]: Controller Spawner error while taking down controllers: unable to connect to service: connection from sender terminated before handshake header received. 0 bytes were received. Please check sender for additional details.
free(): double free detected in tcache 2

But the test still passes

@lucasw
Copy link
Owner Author

lucasw commented Jun 20, 2022

This fully works, but bigger base_catkin_ws doesn't pass joint_trajectory_controller test

repositories:
  control_msgs:
    type: git
    url: git@github.com:ros-controls/control_msgs
    version: kinetic-devel
  control_toolbox:
    type: git
    url: git@github.com:ros-o/control_toolbox
    version: obese-devel
  realtime_tools:
    type: git
    url: git@github.com:ros-controls/realtime_tools.git
    version: noetic-devel
  ros_comm:
    type: git
    url: git@github.com:lucasw/ros_comm
    version: salsa_noetic_aggregated
  ros_control:
    type: git
    url: git@github.com:lucasw/ros_control
    version: acceleration_limits
  ros_controllers:
    type: git
    url: git@github.com:lucasw/ros_controllers
    version: avoid_no_trajectory_defined
  rosconsole:
    type: git
    url: git@github.com:lucasw/rosconsole
    version: concise_output_roso
  roslint:
    type: git
    url: git@github.com:lucasw/roslint
    version: add_headers_to_valid_extensions
  xacro:
    type: git
    url: git@github.com:lucasw/xacro
    version: cleanup_roslint

-> Also need rospack salsa

@lucasw
Copy link
Owner Author

lucasw commented Jun 20, 2022

Plotjuggler has a dependency on libzmq-dev, but 22.04 only has libzmq3-dev

Warnings   << plotjuggler:cmake /home/lucasw/base_catkin_ws/logs/plotjuggler/build.cmake.000.log                                                                                                                       
[libparquet-dev] not found. Skipping plugin DataLoadParquet.
[libosquittopp-dev] not found. Skipping plugin DataStreamMQTT.
[libzmq-dev] not found. Skipping plugin DataStreamZMQ.
QtAV_FOUND                 = TRUE
QTAV_INCLUDE_DIRS          = /usr/include/x86_64-linux-gnu/qt5/QtAV;/usr/include/x86_64-linux-gnu/qt5/QtAV/..
QTAV_LIBRARIES             = /usr/lib/x86_64-linux-gnu/libQtAV.so
QTAVWIDGETS_INCLUDE_DIRS   = /usr/include/x86_64-linux-gnu/qt5/QtAVWidgets;/usr/include/x86_64-linux-gnu/qt5/QtAVWidgets/..;/usr/include/x86_64-linux-gnu/qt5/QtAV;/usr/include/x86_64-linux-gnu/qt5/QtAV/..
QTAVWIDGETS_LIBRARIES      = /usr/lib/x86_64-linux-gnu/libQtAVWidgets.so;/usr/lib/x86_64-linux-gnu/libQtAV.so
QtAV FOUND. Building VideoPlayer plugin

Find the minimal set of packages to build plotjuggler with

repositories:
  PlotJuggler:
    type: git
    url: git@github.com:facontidavide/PlotJuggler.git
    version: main
  plotjuggler-ros-plugins:
    type: git
    url: git@github.com:PlotJuggler/plotjuggler-ros-plugins.git
    version: development
  plotjuggler_msgs:
    type: git
    url: git@github.com:PlotJuggler/plotjuggler_msgs.git
    version: main

See the same issue with that

Looks like this change introduced it: facontidavide/PlotJuggler@8e4e972

facontidavide/PlotJuggler#671

@lucasw
Copy link
Owner Author

lucasw commented Jul 21, 2022

Add ackermann_msgs https://github.com/ros-drivers/ackermann_msgs git@github.com:ros-drivers/ackermann_msgs.git to base repos

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

1 participant