Open lucasw opened 2 years ago
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
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.
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`):
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/
------------------------------------------------------------
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
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")
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
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
catkin_lint .
catkin_lint: neither ROS_DISTRO environment variable nor --rosdistro option set
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
~/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
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(
| ^~~~~~~~~~~~~~~~~~~~
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?
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: https://github.com/ros-controls/control_toolbox/pull/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
https://github.com/lucasw/ros_controllers/commit/d65edb45f96bd9b881a8086ec24ff0805bf620ef
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
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 kindr_ros cpp17
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
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
Try out rosconsole concise_output_roso in 20.04
Also rviz_lighting cpp17 in 20.04
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)
Had an unaltered image_common checked out for no reason, CATKIN_IGNORE for now, delete it later
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 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);
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
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
ffmpeg_image_transport
In file included from /home/lucasw/catkin_ws/src/other/ffmpeg_image_transport/include/ffmpeg_image_transport/ffmpeg_publisher.h:11,
from /home/lucasw/catkin_ws/src/other/ffmpeg_image_transport/src/ffmpeg_publisher.cpp:4:
/opt/ros/noetic/include/image_transport/simple_publisher_plugin.h: In member function ‘image_transport::SimplePublisherPlugin<M>::PublishFn image_transport::SimplePublisherPlugin<M>::bindInternalPublisher(const PubT&) const’:
/opt/ros/noetic/include/image_transport/simple_publisher_plugin.h:234:51: error: ‘_1’ was not declared in this scope
image_common would need to release a new version (maybe 0.13) in order to get changes out that would allow dependent packages to not have to do things like the following to work around this:
https://github.com/lucasw/ffmpeg_image_transport/commit/aaeb120d801251b64dc69d4455d546d0644b69ed
Probably many packages were silently depending on _1 and _2 in the global namespace and are going to break like this (which is the whole reason global namespacing is bad), so moving forward to releasing a new image_common (or any other package that has the upstreamed placeholders changes) into noetic may be difficult.
Maybe should just require building image_common locally until that is sorted out, don't want the include hack polluting everything.
image_pipeline image_publisher has same issue
https://github.com/ros/filters
Warnings << filters:make /home/lucasw/catkin_ws/logs/filters/build.make.000.log
In file included from /home/lucasw/catkin_ws/src/ros/filters/src/median.cpp:31:
/home/lucasw/catkin_ws/src/ros/filters/include/filters/median.h: In function ‘elem_type filters::kth_smallest(elem_type*, int, int)’:
/home/lucasw/catkin_ws/src/ros/filters/include/filters/median.h:69:16: warning: ISO C++17 does not allow ‘register’ storage class specifier [-Wregister]
69 | register int i,j,l,m ;
-> need to use noetic-devel
, defaults to a ros2 branch (but still has warnings)
rviz
rviz
[ INFO] [1652032952.315436463 ${node} ${shortfile}:114]: rviz version 1.14.14
[ INFO] [1652032952.315488922 ${node} ${shortfile}:115]: compiled against Qt version 5.15.2
[ INFO] [1652032952.315495671 ${node} ${shortfile}:116]: compiled against OGRE version 1.12.10 (Rhagorthua)
[ INFO] [1652032952.321103157 /rviz_1652032952315526696 ${shortfile}:88]: Forcing OpenGl version 0.
[ INFO] [1652032952.642445513 /rviz_1652032952315526696 ${shortfile}:475]: Stereo is NOT SUPPORTED
[ INFO] [1652032952.642480938 /rviz_1652032952315526696 ${shortfile}:185]: OpenGL device: NVIDIA GeForce GTX 1660 Ti/PCIe/SSE2
[ INFO] [1652032952.642523693 /rviz_1652032952315526696 ${shortfile}:236]: OpenGl version: 4.6 (GLSL 4.6).
[rospack] Error: no such package media_export
[librospack]: error while executing command
(rosconsole + ros_comm and ROSCONSOLE_FORMAT don't look to be working either)
Can't load rviz_camera_stream plugin (though it may be broken https://github.com/lucasw/rviz_camera_stream/issues/47)
Do a src build of rviz
ros_comm - odd that this _7 was missed in https://github.com/ros/ros_comm/commit/3d137ca91109a9f229d0701e618758ef7f817218
/home/lucasw/catkin_ws/src/ros/ros_comm/utilities/message_filters/include/message_filters/signal9.h:281:213: error: ‘_7’ was not declared in this scope
281 | const M8ConstPtr&>(boost::bind(callback, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3, boost::placeholders::_4, boost::placeholders::_5, boost::placeholders::_6, _7, boost::placeholders::_8, boost::placeholders::_9));
PR this
https://github.com/lucasw/ros_comm/tree/boost_placeholders_7
catkin_virtualenv$ touch test_catkin_virtualenv/CATKIN_IGNORE
mavros$ touch libmavconn/CATKIN_IGNORE
touch mavros_extras/CATKIN_IGNORE
https://github.com/lucasw/jsk_common_msgs/tree/boost_placeholders -> merged https://github.com/jsk-ros-pkg/jsk_common_msgs/pull/31 https://github.com/lucasw/jsk_common/tree/cpp17 https://github.com/lucasw/joystick_drivers/tree/cpp17 https://github.com/lucasw/ros_control_boilerplate/tree/cpp17 https://github.com/lucasw/find-object/tree/boost_placeholders -> merged https://github.com/introlab/find-object/pull/120
https://github.com/lucasw/web_video_server/tree/boost_placeholders https://github.com/lucasw/async_web_server_cpp/tree/boost_placeholders
https://github.com/lucasw/pluginlib/tree/cpp17_test
ros_comm has _7
ffmpeg works_with_dr_init_default_values -> it's now in noetic_aggregated
https://github.com/lucasw/grid_map/tree/cpp17
grid_map/grid_map_filters/src/NormalVectorsFilter.cpp:15:10: fatal error: tbb/task_scheduler_init.h: No such file or directory
15 | #include <tbb/task_scheduler_init.h>
https://github.com/DrTimothyAldenDavis/SuiteSparse/issues/72
CATKIN_IGNORE grid_map_filters, elevation_mapping for now
rtabmap
CMake Error at CMakeLists.txt:452 (include):
include could not find requested file:
/core/rosbuild/FindPkgConfig.cmake
cmake-data
provides the file but it isn't getting found:
/usr/share/cmake-3.22/Modules/FindPkgConfig.cmake
Probably can remove this -> made it used only if the file exists:
CMakeLists.txt: include($ENV{ROS_ROOT}/core/rosbuild/FindPkgConfig.cmake)
/usr/share/ros/core/rosbuild/FindPkgConfig.cmake does exist as provided by rosbuild
, if ROS_ROOT were set to /usr/share/ros the original line would have worked.
-> https://github.com/lucasw/rtabmap_ros/tree/boost_placeholders
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)
$ 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
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
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
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:
Try out pluginlib, class_loader, and controller_manager tests
Use catkin_make run_tests
because it is better supported than catkin tools
[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.
(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
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?
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?
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
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
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
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?
Build all the dependencies here: https://github.com/lucasw/ros_from_src/issues/2#issuecomment-1047108920
Try this within a 22.04 docker image as well as a real 22.04 system