stonier / ecl_core Goto Github PK
View Code? Open in Web Editor NEWA set of tools and interfaces extending the capabilities of c++ to provide a lightweight, consistent interface with a focus for control programming.
License: Other
A set of tools and interfaces extending the capabilities of c++ to provide a lightweight, consistent interface with a focus for control programming.
License: Other
This has been added to tension spline interpolation, but not yet to smooth linear interpolation.
Hello,
I'm trying to follow this guide to compile/run the kobuki_driver C++ library without ROS on Ubuntu 18.04.2 LTS and I've run into an issue with catkin_make_isolated --install
when trying to prepare the catkin workspace.
Here's the error that I'm getting when I run the command above:
Base path: /home/josephkim/Desktop/csci370/swig_test/kobuki_core
Source space: /home/josephkim/Desktop/csci370/swig_test/kobuki_core/src
Build space: /home/josephkim/Desktop/csci370/swig_test/kobuki_core/build_isolated
Devel space: /home/josephkim/Desktop/csci370/swig_test/kobuki_core/devel_isolated
Install space: /home/josephkim/Desktop/csci370/swig_test/kobuki_core/install_isolated
WARNING: Metapackage "kobuki_core" must buildtool_depend on catkin.
WARNING: Metapackage "kobuki_core" should not have other dependencies besides a buildtool_depend on catkin and exec_depends.
Traceback (most recent call last):
File "/home/josephkim/Desktop/csci370/swig_test/kobuki_core/src/catkin/bin/catkin_make_isolated", line 160, in <module>
main()
File "/home/josephkim/Desktop/csci370/swig_test/kobuki_core/src/catkin/bin/catkin_make_isolated", line 156, in main
override_build_tool_check=opts.override_build_tool_check,
File "/home/josephkim/Desktop/csci370/swig_test/kobuki_core/src/catkin/bin/../python/catkin/builder.py", line 951, in build_workspace_isolated
packages = find_packages(sourcespace, exclude_subspaces=True)
File "/usr/lib/python2.7/dist-packages/catkin_pkg/packages.py", line 98, in find_packages
raise RuntimeError('\n'.join(duplicates))
RuntimeError: Multiple packages found with the same name "ecl_mobile_robot":
- ecl_core/ecl_mobile_robot
- ecl_navigation/ecl_mobile_robot
I'm not sure how to build and compile the driver library with this duplicate packages issue, and I'm not sure how to resolve this either.
Let me know if more specific information is needed; any help would be appreciated. Thanks!
We get tons of these in our builds:
containers.hpp:256:45: warning: typedef 'iterator' locally defined but not used [-Wunused-local-typedefs]
typedef typename Implementation::iterator iterator;
containers.hpp:292:45: warning: typedef 'iterator' locally defined but not used [-Wunused-local-typedefs]
typedef typename Implementation::iterator iterator;
containers.hpp:329:45: warning: typedef 'iterator' locally defined but not used [-Wunused-local-typedefs]
typedef typename Implementation::iterator iterator;
I'm using the 0.62.2 from the repos on Ubuntu 18, and I'm getting the following error when trying to compile code which uses ecl::Array
CMakeFiles/runpath_server.dir/src/runpath_server.cpp.o: In function `ecl::StandardException::~StandardException()':
runpath_server.cpp:(.text._ZN3ecl17StandardExceptionD2Ev[_ZN3ecl17StandardExceptionD5Ev]+0xf): undefined reference to `vtable for ecl::StandardException'
CMakeFiles/runpath_server.dir/src/runpath_server.cpp.o: In function `ecl::Array<double, 0ul>::operator[](unsigned long)':
runpath_server.cpp:(.text._ZN3ecl5ArrayIdLm0EEixEm[_ZN3ecl5ArrayIdLm0EEixEm]+0x3f): undefined reference to `ecl::StandardException::StandardException(char const*, ecl::ErrorFlag)'
runpath_server.cpp:(.text._ZN3ecl5ArrayIdLm0EEixEm[_ZN3ecl5ArrayIdLm0EEixEm]+0x4d): undefined reference to `typeinfo for ecl::StandardException'
collect2: error: ld returned 1 exit status
optimax_runpath/CMakeFiles/runpath_server.dir/build.make:286: recipe for target '/home/joshua/catkin_ws/devel/lib/optimax_runpath/runpath_server' failed
make[2]: *** [/home/joshua/catkin_ws/devel/lib/optimax_runpath/runpath_server] Error 1
CMakeFiles/Makefile2:29505: recipe for target 'optimax_runpath/CMakeFiles/runpath_server.dir/all' failed
make[1]: *** [optimax_runpath/CMakeFiles/runpath_server.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j4 -l4" failed
Good odds this is my fault, but I haven't been able to figure it out. Any assistance would be appreciated.
Because it tries to install directories
ecl_core/ecl_eigen/include/ecl/Eigen3
ecl_core/ecl_eigen/include/ecl/Eigen3.1.2
But the first doesn't exist
-- Installing: /home/yujin/kobuki_ws/install/share/ecl_eigen/package.xml
CMake Error at ecl_core/ecl_eigen/include/ecl/cmake_install.cmake:36 (FILE):
file INSTALL cannot find
"/home/yujin/kobuki_ws/src/ecl_core/ecl_eigen/include/ecl/Eigen3".
Call Stack (most recent call first):
ecl_core/ecl_eigen/include/cmake_install.cmake:37 (INCLUDE)
ecl_core/ecl_eigen/cmake_install.cmake:52 (INCLUDE)
cmake_install.cmake:83 (INCLUDE)
make: *** [install] Error 1
When i make my workspace,i met this problem,but there is sophus package in my workspace:
CMake Error at ecl_core/ecl_linear_algebra/CMakeLists.txt:22 (find_package):
By not providing "Findsophus.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "sophus", but
CMake did not find one.
Could not find a package configuration file provided by "sophus" with any
of the following names:
sophusConfig.cmake
sophus-config.cmake
Add the installation prefix of "sophus" to CMAKE_PREFIX_PATH or set
"sophus_DIR" to a directory containing one of the above files. If "sophus"
provides a separate development package or SDK, be sure it has been
installed.
Can you help me solve this problem?Thank you.
Hi when I tried to install the melodic version of ecl_core the output shows that problem:
CMake Error at ecl_core/ecl_linear_algebra/CMakeLists.txt:29 (get_target_property):
get_target_property() called with non-existent target "Sophus::Sophus".
I use the melodic version of sophus
did any gays meet this problem ? I will appreciate it very much if you can give me a solution
Using the --symlink-install
flag to ament
allows you to make modifications to things like Python scripts in the source directory without a compile/install cycle. Currently trying to build ecl with:
ament build --isolated --symlink-install
Fails initially with:
+++ Installing 'ecl_eigen'
==> '. /home/ubuntu/ecl_ws/build_isolated/ecl_eigen/cmake__install.sh && /usr/bin/make install' in '/home/ubuntu/ecl_ws/build_isolated/ecl_eigen'
Install the project...
-- Install configuration: ""
-- Execute custom install script
-- Symlinking: /home/ubuntu/ecl_ws/install_isolated/ecl_eigen/include/ecl/eigen.hpp
CMake Error at ament_cmake_symlink_install/ament_cmake_symlink_install.cmake:152 (message):
ament_cmake_symlink_install_files() can't find
'/home/ubuntu/ecl_ws/src/ecl_core/ecl_eigen/COPYING.LESSER'
Call Stack (most recent call first):
ament_cmake_symlink_install/ament_cmake_symlink_install.cmake:308 (ament_cmake_symlink_install_files)
cmake_install.cmake:36 (include)
Makefile:61: recipe for target 'install' failed
make: *** [install] Error 1
(if I comment that out and continue on, further errors manifest as well)
The interpolation result contains periods at the start and end, in which exactly nothing happens: acc = vel = 0 for all joints.
For trajectories which contain large position differences for one or more joints, these lazy periods can grow to 0.5sec at the beginning and end.
Hello! I'm starting to work with ROS and there are bugs that I can't fix.
I'm trying to enter all the X-coordinate values of a nav_msgs/Path in x_set but I can't get it.
I try it in different ways but I always end up with this mistake:
terminate called after throwing an instance of' ecl:: StandardException'.
what ():
Location: /home/user/catkin_ws/src/src/ecl_core/ecl_geometry/src/lib/cubic_spline_blueprints. cpp: 89
Flag: Out of range error - tried to access beyond the range of the object (usually container).
What is the right way to do it? Thank you
1%] [ 1%] [ 4%] [ 4%] make[3]: Leaving directory `/mnt/data/cslam_catkin/cross/build'
[ 4%] make[3]: Entering directory `/mnt/data/cslam_catkin/cross/build'
make[3]: Entering directory `/mnt/data/cslam_catkin/cross/build'
[ 5%] Building CXX object ecl_lite/ecl_config/src/utilities/CMakeFiles/detect_posix.dir/detect_posix.cpp.o
Building CXX object ecl_lite/ecl_config/src/utilities/CMakeFiles/detect_endian.dir/detect_endian.cpp.o
Building CXX object ecl_lite/ecl_errors/src/lib/CMakeFiles/ecl_errors.dir/run_time_functions.cpp.o
[ 7%] [ 7%] Building CXX object ecl_core/ecl_command_line/src/examples/CMakeFiles/demo_command_line.dir/command_line.cpp.o
Building CXX object ecl_core/ecl_exceptions/src/examples/CMakeFiles/demo_exception_tracer.dir/exception_tracer.cpp.o
Building CXX object ecl_lite/ecl_io/src/lib/CMakeFiles/ecl_io.dir/socketpair.cpp.o
Building CXX object ecl_lite/ecl_time_lite/src/lib/CMakeFiles/ecl_time_lite.dir/functions_mac.cpp.o
Building CXX object ecl_lite/ecl_sigslots_lite/src/examples/CMakeFiles/demo_sigslots_lite.dir/sigslots.cpp.o
[ 7%] Building CXX object ecl_lite/ecl_time_lite/src/lib/CMakeFiles/ecl_time_lite.dir/cpu_time.cpp.o
In file included from /mnt/data/cslam_catkin/src/ecl_lite/ecl_config/src/utilities/../../include/ecl/config/endianness.hpp:19,
from /mnt/data/cslam_catkin/src/ecl_lite/ecl_config/src/utilities/detect_endian.cpp:14:
/mnt/data/cslam_catkin/src/ecl_lite/ecl_config/src/utilities/../../include/ecl/config/portable_types.hpp:82:3: error: #error "ecl::float96 could not be typedef'd (probably faulty ecl logic)."
make[3]: *** [ecl_lite/ecl_config/src/utilities/CMakeFiles/detect_endian.dir/detect_endian.cpp.o] Error 1
make[3]: Leaving directory `/mnt/data/cslam_catkin/cross/build'
make[2]: *** [ecl_lite/ecl_config/src/utilities/CMakeFiles/detect_endian.dir/all] Error 2
make[2]: *** Waiting for unfinished jobs....
[ 8%] Building CXX object ecl_lite/ecl_time_lite/src/lib/CMakeFiles/ecl_time_lite.dir/functions_rt.cpp.o
Linking CXX executable /mnt/data/cslam_catkin/cross/devel/lib/ecl_exceptions/demo_exception_tracer
[ 8%] Building CXX object ecl_lite/ecl_io/src/lib/CMakeFiles/ecl_io.dir/poll.cpp.o
Linking CXX shared library /mnt/data/cslam_catkin/cross/devel/lib/libecl_errors.so
Linking CXX executable /mnt/data/cslam_catkin/cross/devel/lib/ecl_config/detect_posix
[ 8%] Building CXX object ecl_lite/ecl_time_lite/src/lib/CMakeFiles/ecl_time_lite.dir/functions_pos.cpp.o
make[3]: Leaving directory `/mnt/data/cslam_catkin/cross/build'
[ 8%] Built target demo_exception_tracer
[ 8%] Building CXX object ecl_lite/ecl_io/src/lib/CMakeFiles/ecl_io.dir/sockets.cpp.o
[ 9%] Building CXX object ecl_lite/ecl_time_lite/src/lib/CMakeFiles/ecl_time_lite.dir/functions_win.cpp.o
make[3]: Leaving directory `/mnt/data/cslam_catkin/cross/build'
In file included from /mnt/data/cslam_catkin/src/ecl_lite/ecl_time_lite/src/lib/functions_win.cpp:13:
/mnt/data/cslam_catkin/src/ecl_lite/ecl_config/include/ecl/config/portable_types.hpp:82:3: error: #error "ecl::float96 could not be typedef'd (probably faulty ecl logic)."
[ 9%
These need to get made and used from the build directory, otherwise things like CMAKE_BUILD_TYPE switches break.
During the release mode compilation, it shown me
/mnt/data/cslam_catkin/src/ecl_core/ecl_threads/src/lib/priority_pos.cpp: In function ‘bool ecl::set_priority(ecl::Priority)’:
/mnt/data/cslam_catkin/src/ecl_core/ecl_threads/src/lib/priority_pos.cpp:115:9: error: ‘throwPriorityException’ is not a member of ‘ecl::threads’
/mnt/data/cslam_catkin/src/ecl_core/ecl_threads/src/lib/priority_pos.cpp: In function ‘ecl::Priority ecl::get_priority()’:
/mnt/data/cslam_catkin/src/ecl_core/ecl_threads/src/lib/priority_pos.cpp:130:17: error: ‘throwPriorityException’ is not a member of ‘ecl::threads’
/mnt/data/cslam_catkin/src/ecl_core/ecl_threads/src/lib/priority_pos.cpp:144:21: error: ‘throwPriorityException’ is not a member of ‘ecl::threads’
/mnt/data/cslam_catkin/src/ecl_core/ecl_threads/src/lib/priority_pos.cpp: In function ‘std::string ecl::print_priority_diagnostics()’:
/mnt/data/cslam_catkin/src/ecl_core/ecl_threads/src/lib/priority_pos.cpp:217:5: error: ‘throwPriorityException’ is not a member of ‘ecl::threads’
/mnt/data/cslam_catkin/src/ecl_core/ecl_threads/src/lib/priority_pos.cpp: In function ‘bool ecl::threads::set_real_time_priority(int, int)’:
/mnt/data/cslam_catkin/src/ecl_core/ecl_threads/src/lib/priority_pos.cpp:326:4: error: ‘throwPriorityException’ was not declared in this scope
make[3]: *** [ecl_core/ecl_threads/src/lib/CMakeFiles/ecl_threads.dir/priority_pos.cpp.o] Error 1
Add a few of the 'non-standard' baud rates to the serial device baud rate enum.
This comes from an issue on kobuki_auto_docking:
After adding EIGEN_MAKE_ALIGNED_OPERATOR_NEW to class declaration the problem remains, what its unexpected according with eigen documentation.
So maybe the problem is on ecl?
I build ecl_core
package error in ROS lunar distribution...
In file included from ~/workspace/ros/catkin_ws/src/ecl_core/ecl_linear_algebra/include/ecl/linear_algebra/sophus.hpp:20:0,
from ~/workspace/ros/catkin_ws/src/ecl_core/ecl_linear_algebra/include/ecl/linear_algebra.hpp:20,
from ~/workspace/ros/catkin_ws/src/ecl_core/ecl_linear_algebra/src/lib/sophus_helpers.cpp:10:
~/workspace/ros/catkin_ws/src/ecl_core/ecl_linear_algebra/include/ecl/linear_algebra/sophus/helpers.hpp:56:56: error: ‘SE3Group’ does not name a type
Error:
In file included from /usr/include/eigen3/Eigen/StdDeque:38:0,
from /opt/ros/groovy/include/ecl/linear_algebra/stddeque.hpp:27,
from /opt/ros/groovy/include/ecl/linear_algebra.hpp:47,
from /opt/ros/groovy/include/ecl/geometry/angle.hpp:21,
from /opt/yujin/ycs/catkin_ws/src/ycs_mechanisms/ycs_mechanism_model/src/nodelet/mechanism_model.cpp:19:
/usr/include/eigen3/Eigen/src/StlSupport/StdDeque.h:29:42: fatal error: Eigen/src/StlSupport/details.h: No such file or directory
compilation terminated.
Compilation problem using ecl semaphores in ROS application.
Hi all
For my robotics application running on ros I need to use a semaphore to manage the access to a shared data. I think I installed the ecl package but I'm not able to compile my application.
The command I used to install the packages is: sudo apt-get install ros-indigo-ecl
and it has been executed without errors.
Any help is appreciated. Thank you very much.
Mauro
SYSTEM CONFIGURATION:
1: Laptop running Ubuntu 14.04 & ROS Indigo with the following packages installed in /opt/ros/indigo/share:
...
1275458 drwxr-xr-x 2 root 4096 mag 23 18:09 ecl
1254917 drwxr-xr-x 3 root 4096 mag 22 22:45 ecl_build
1254887 drwxr-xr-x 3 root 4096 mag 22 22:45 ecl_command_line
1263061 drwxr-xr-x 3 root 4096 mag 22 22:45 ecl_concepts
1260072 drwxr-xr-x 3 root 4096 mag 22 22:45 ecl_config
1270681 drwxr-xr-x 3 root 4096 mag 22 22:45 ecl_containers
1263102 drwxr-xr-x 3 root 4096 mag 22 22:45 ecl_converters
1270944 drwxr-xr-x 3 root 4096 mag 22 22:45 ecl_converters_lite
1270942 drwxr-xr-x 2 root 4096 mag 22 22:45 ecl_core
1270930 drwxr-xr-x 3 root 4096 mag 22 22:45 ecl_core_apps
1270783 drwxr-xr-x 3 root 4096 mag 22 22:45 ecl_devices
1270812 drwxr-xr-x 4 root 4096 mag 22 22:45 ecl_eigen
1263075 drwxr-xr-x 3 root 4096 mag 22 22:45 ecl_errors
1263089 drwxr-xr-x 3 root 4096 mag 22 22:45 ecl_exceptions
1270653 drwxr-xr-x 3 root 4096 mag 22 22:45 ecl_formatters
1270838 drwxr-xr-x 3 root 4096 mag 22 22:45 ecl_geometry
1270955 drwxr-xr-x 3 root 4096 mag 22 22:45 ecl_io
1270862 drwxr-xr-x 3 root 4096 mag 22 22:45 ecl_ipc
1254875 drwxr-xr-x 4 root 4096 mag 22 22:45 ecl_license
1270820 drwxr-xr-x 3 root 4096 mag 22 22:45 ecl_linear_algebra
1270979 drwxr-xr-x 2 root 4096 mag 22 22:45 ecl_lite
1270994 drwxr-xr-x 2 root 4096 mag 22 22:45 ecl_manipulation
1270981 drwxr-xr-x 4 root 4096 mag 22 22:45 ecl_manipulators
1270828 drwxr-xr-x 3 root 4096 mag 22 22:45 ecl_math
1270998 drwxr-xr-x 3 root 4096 mag 22 22:45 ecl_mobile_robot
1263040 drwxr-xr-x 3 root 4096 mag 22 22:45 ecl_mpl
1271008 drwxr-xr-x 2 root 4096 mag 22 22:45 ecl_navigation
1270875 drwxr-xr-x 3 root 4096 mag 22 22:45 ecl_sigslots
1270967 drwxr-xr-x 3 root 4096 mag 22 22:45 ecl_sigslots_lite
1270935 drwxr-xr-x 3 root 4096 mag 22 22:45 ecl_statistics
1270890 drwxr-xr-x 3 root 4096 mag 22 22:45 ecl_streams
1270762 drwxr-xr-x 3 root 4096 mag 22 22:45 ecl_threads
1270736 drwxr-xr-x 3 root 4096 mag 22 22:45 ecl_time
1270714 drwxr-xr-x 3 root 4096 mag 22 22:45 ecl_time_lite
1271010 drwxr-xr-x 2 root 4096 mag 22 22:45 ecl_tools
1263051 drwxr-xr-x 3 root 4096 mag 22 22:45 ecl_type_traits
1270666 drwxr-xr-x 3 root 4096 mag 22 22:45 ecl_utilities
...
CODE IMPLEMENTATION:
1:
...
...
using ecl::Semaphore;
...
private:
Semaphore Sem;
2:
void test_f() {
SemEncData.lock();
...
...
SemEncData.unlock();
COMPILATION RESULTS:
During the compilation phase using catkin_make --force-cmake command, I get the following errors:
CMakeFiles/crawler.dir/src/encInterface.cpp.o: nella funzione "Enc::Enc(ros::NodeHandle_, int)":
encInterface.cpp:(.text+0x45[ 26%] ): riferimento non definito a "ecl::Semaphore::Semaphore()"
encInterface.cpp:(.text+0x6b):Built target server
riferimento non definito a "ecl::Semaphore::unlock()"
encInterface.cpp:(.text+0x392): riferimento non definito a "ecl::Semaphore::~Semaphore()"
CMakeFiles/crawler.dir/src/encInterface.cpp.o: nella funzione "Enc::~Enc()":
encInterface.cpp:(.text+0x3fb): riferimento non definito a "ecl::Semaphore::~Semaphore()"
encInterface.cpp:(.text+0x43a): riferimento non definito a "ecl::Semaphore::~Semaphore()"
CMakeFiles/crawler.dir/src/encInterface.cpp.o: nella funzione "Enc::vCallback__GetEncData(boost::shared_ptr<std_msgs::Int32MultiArray_<std::allocator > const> const&)":
encInterface.cpp:(.text+0x4a0): riferimento non definito a "ecl::Semaphore::lock()"
encInterface.cpp:(.text+0x531): riferimento non definito a "ecl::Semaphore::unlock()"
CMakeFiles/crawler.dir/src/encInterface.cpp.o: nella funzione "Enc::bGetEncData(int_)":
encInterface.cpp:(.text+0x577): riferimento non definito a "ecl::Semaphore::lock()"
encInterface.cpp:(.text+0x5b7): riferimento non definito a "ecl::Semaphore::unlock()"
CMakeFiles/crawler.dir/src/imuInterface.cpp.o: nella funzione "Imu::Imu(ros::NodeHandle_)":
imuInterface.cpp:(.text+0x3b): riferimento non definito a "ecl::Semaphore::Semaphore()"
imuInterface.cpp:(.text+0x76): riferimento non definito a "ecl::Semaphore::unlock()"
imuInterface.cpp:(.text+0x209): riferimento non definito a "ecl::Semaphore::~Semaphore()"
CMakeFiles/crawler.dir/src/imuInterface.cpp.o: nella funzione "Imu::~Imu()":
imuInterface.cpp:(.text+0x27f): riferimento non definito a "ecl::Semaphore::~Semaphore()"
imuInterface.cpp:(.text+0x2d5): riferimento non definito a "ecl::Semaphore::~Semaphore()"
CMakeFiles/crawler.dir/src/imuInterface.cpp.o: nella funzione "Imu::vCallback__GetImuData(boost::shared_ptr<sensor_msgs::Imu_<std::allocator > const> const&)":
imuInterface.cpp:(.text+0x32e): riferimento non definito a "ecl::Semaphore::lock()"
imuInterface.cpp:(.text+0x4b6): riferimento non definito a "ecl::Semaphore::unlock()"
CMakeFiles/crawler.dir/src/imuInterface.cpp.o: nella funzione "Imu::bGetImuData(sensor_msgs::Imu_std::allocator_)":
imuInterface.cpp:(.text+0x4e1): riferimento non definito a "ecl::Semaphore::lock()"
imuInterface.cpp:(.text+0x5f9): riferimento non definito a "ecl::Semaphore::unlock()"
collect2: error: ld returned 1 exit status
make[2]: *** [/home/mauro/catkin/devel/lib/crawler/crawler] Errore 1
make[1]: *** [crawler/CMakeFiles/crawler.dir/all] Errore 2
make[1]: *** Attesa per i processi non terminati....
[ 26%] Built target vr0_generate_messages_cpp
make: *** [all] Errore 2
Invoking "make -j2 -l2" failed
/mnt/data/cslam_catkin/src/ecl_core/ecl_containers/src/examples/formatters.cpp:16:25: error: gtest/gtest.h: No such file or directory
Renable this.
I tried to build ecl_core
package in a ROS kinetic setup. Sophus branch is release/0.9.1-kinetic
.
In file included from /root/ros_catkin_ws/src/ecl_core/ecl_linear_algebra/include/ecl/linear_algebra/sophus.hpp:20:0,
from /root/ros_catkin_ws/src/ecl_core/ecl_linear_algebra/include/ecl/linear_algebra.hpp:20,
from /root/ros_catkin_ws/src/ecl_core/ecl_linear_algebra/src/lib/sophus_interpolators.cpp:9:
/root/ros_catkin_ws/src/ecl_core/ecl_linear_algebra/include/ecl/linear_algebra/sophus/helpers.hpp:56:56: error: ‘SE3Group’ does not name a type
std::ostream & operator << ( std::ostream & out, const SE3Group<T> & se3 )
Do you have any hints on this bug? Thanks.
Hi,
My package depends on ecl_geometry, and when I was trying to migrate from Indigo to Melodic, I got a lot of warnings regarding dynamic exception specifications, like this one:
/opt/ros/melodic/include/ecl/exceptions/macros.hpp:120:44: warning: dynamic exception specifications are deprecated in C++11 [-Wdeprecated]
#define ecl_assert_throw_decl(exception) throw(exception)
/opt/ros/melodic/include/ecl/exceptions/macros.hpp:120:44: note: in definition of macro ‘ecl_assert_throw_decl’
#define ecl_assert_throw_decl(exception) throw(exception)
I found a discussion in StackOverflow about this issue.
I would suggest to change that, since it is deprecated.
It's still stuck at Nov22 on the old google code. Refer to http://www.ros.org/wiki/ecl_core
Also applies to the other ecl_xxx stacks.
Linking CXX executable ../../../../devel/lib/kobuki_driver/demo_kobuki_initialisation
../../../../devel/lib/libkobuki.so: undefined reference to `ecl::SigSlot<ecl::Void>::emit()'
../../../../devel/lib/libkobuki.so: undefined reference to `ecl::SigSlot<ecl::Void>::connectSignal(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
../../../../devel/lib/libkobuki.so: undefined reference to `ecl::SigSlot<ecl::Void>::~SigSlot()'
It would be great to get this released into Melodic to start the process of getting the turtlebot2 repositories released there. Thanks!
When try to open serial device that already opened, ecl_devices throw the OpenError exception. It contains below information.
Location : /tmp/buildd/ros-groovy-ecl-devices-0.50.5-0precise-20130215-0822/src/lib/serial_pos.cpp:121
Flag : Could not open the requested object.
Detail : Device is already locked. Try 'lsof | grep /dev/kobuki' to find other processes that currently have the port open.
but lsof | grep /dev/kobuki
does not work for symbolic link. It should be lsof | grep /dev/ttyUSB0
or similar.
ecl_debug_try {
// something
ecl_debug_catch(Exception &e) {
std::cout << e.what() << std::endl;
}
is broken in release mode because it doesn't know what e is.
Code is ok, and tests run locally ok, but something causing it to fail on the build farm in places (here it is a ECL_PLATFORM_HAS_POSIX_THREADS
check).
I have an ament workspace with ecl_lite
, ecl_core
, ecl_tools
, and sophus
checked out in a Ubuntu 16.04 container. If I run:
ament build --build_tests --make-flags -j1 VERBOSE=1
Then I run into a few test failures. The first one is:
make[2]: Entering directory '/home/ubuntu/ecl_ws/build/ecl_utilities'
[ 68%] Linking CXX executable ecl_test_references
cd /home/ubuntu/ecl_ws/build/ecl_utilities/src/test && /usr/bin/cmake -E cmake_link_script CMakeFiles/ecl_test_references.dir/link.txt --verbose=1
/usr/bin/c++ -std=c++14 -Wall -Wextra -Wl,--no-as-needed CMakeFiles/ecl_test_references.dir/references.cpp.o -o ecl_test_references ../../gtest/libgtest_main.a ../../gtest/libgtest.a -lpthread -pthread /home/ubuntu/ecl_ws/install/lib/libecl_type_traits.so.0.61.18 -Wl,-rpath,/home/ubuntu/ecl_ws/install/lib
CMakeFiles/ecl_test_references.dir/references.cpp.o: In function `Reference_traits_Test::TestBody()':
references.cpp:(.text+0x18e): undefined reference to `ecl::Bool<true>::value'
collect2: error: ld returned 1 exit status
src/test/CMakeFiles/ecl_test_references.dir/build.make:97: recipe for target 'src/test/ecl_test_references' failed
Looking into it briefly, it is pretty clear that this line is failing: https://github.com/stonier/ecl_core/blob/devel/ecl_utilities/src/test/references.cpp#L58 , but I'm not sure why.
If I comment out that line, then the next failure I run into is:
make[2]: Entering directory '/home/ubuntu/ecl_ws/build/ecl_containers'
[ 50%] Building CXX object src/test/CMakeFiles/ecl_test_arrays_mem_check.dir/arrays_mem_check.cpp.o
cd /home/ubuntu/ecl_ws/build/ecl_containers/src/test && /usr/bin/c++ -DROS_PACKAGE_NAME=\"ecl_containers\" -I/opt/ros/ardent/src/gtest_vendor/include -isystem /home/ubuntu/ecl_ws/install/include -std=c++14 -Wall -Wextra -Wl,--no-as-needed -pthread -o CMakeFiles/ecl_test_arrays_mem_check.dir/arrays_mem_check.cpp.o -c /home/ubuntu/ecl_ws/src/ecl_core/ecl_containers/src/test/arrays_mem_check.cpp
In file included from /home/ubuntu/ecl_ws/src/ecl_core/ecl_containers/src/test/../../include/ecl/containers/array.hpp:21:0,
from /home/ubuntu/ecl_ws/src/ecl_core/ecl_containers/src/test/arrays_mem_check.cpp:20:
/home/ubuntu/ecl_ws/src/ecl_core/ecl_containers/src/test/../../include/ecl/containers/array/array_dynamic_mem_check.hpp: In instantiation of ‘class ecl::Array<int>’:
/home/ubuntu/ecl_ws/src/ecl_core/ecl_containers/src/test/arrays_mem_check.cpp:52:16: required from here
/home/ubuntu/ecl_ws/src/ecl_core/ecl_containers/src/test/../../include/ecl/containers/array/array_dynamic_mem_check.hpp:228:9: error: looser throw specifier for ‘ecl::Array<Type, 0ul>::~Array() throw (ecl::StandardException) [with Type = int]’
~Array() ecl_assert_throw_decl(StandardException) {
^
In file included from /home/ubuntu/ecl_ws/src/ecl_core/ecl_containers/src/test/../../include/ecl/containers/array.hpp:21:0,
from /home/ubuntu/ecl_ws/src/ecl_core/ecl_containers/src/test/arrays_mem_check.cpp:20:
/home/ubuntu/ecl_ws/src/ecl_core/ecl_containers/src/test/../../include/ecl/containers/array/array_dynamic_mem_check.hpp:75:17: error: overriding ‘ecl::BluePrintFactory<ecl::Array<Type, 0ul> >::~BluePrintFactory() noexcept [with Type = int]’
virtual ~BluePrintFactory() {};
^
It looks like gcc is complaining since BluePrintFactory
is marked noexcept
, while Array
is marked with an exception.
There may be more beyond this, but this is a good starting point, I think.
These were brought in PR #73 to make up for a shortfall with ardent
. This was later fixed in ament_cmake#132.
This should be ok to fix in bouncy
. Note that it's more than just reverting the PR. Some fixes to the interfaces call need to be made.
I've been trying to use the SmoothLinearSpline functionality, and I've found that for the data set I'm using, I get absolutely huge deviations in position for the points I've defined. That is, points that are programmed, not interpolated, still have deviations. I'm not sure if this is an issue with the library or an issue with the data that I'm using. Note that all the positions should be well within plus or minus .5, but I'm seeing 4 orders of magnitude more.
E.g.
-- skipping gtest 'test_sleep' in project 'ecl_time'
CMake Error at ecl_core/ecl_time/src/test/CMakeLists.txt:9 (target_link_libraries):
Cannot specify link libraries for target "test_sleep" which is not built by
this project.
-- Configuring incomplete, errors occurred!```
Currently 5 way points are required, which is probably to high. Let's check, if we can go down to 2 (by inserting pseudo-waypoints)
Wanted!
This is rather unintuitive, I should perhaps define this as ECL_HAS_DEBUG_EXCEPTIONS, and further define this differently.
Hey guy's,
I get an error in the file ecl/geometry/smooth_linear_spline.hpp. I left a commant at the line I think it is wrong.
template
OutputStream& operator << (OutputStream &ostream, const SmoothLinearSpline &smooth_linear_spline) {
ecl_compile_time_concept_check(StreamConcept<OutputStream>);
ostream << smooth_linear_spline.segments[0] << "\n";
for ( unsigned int i = 1; i < smooth_linear_spline.segments.size(); ++i ) {
ostream << smooth_linear_spline.corners[i] << "\n"; // I guess it should be ostream << smooth_linear_spline.corners[i-1] // spline.corners.size() = N -1 , spline.segments.size() = N.
ostream << smooth_linear_spline.segments[i] << "\n";
}
ostream.flush();
return ostream;
}
e.g.
#include <ecl/linear_algebra/core.hpp>
fails...
@jakan2 says that the ecl socket server is getting killed when the client connection breaks. The relevant ecl code:
long SocketServer::write(const char *s, unsigned long n) ecl_debug_throw_decl(StandardException) {
int bytes_written = ::send(client_socket_fd,s,n,0);
if ( bytes_written < 0 ) {
switch(errno) {
case ( EPIPE ) : {
close();
return ConnectionHungUp;
}
default : {
ecl_debug_throw( devices::send_exception(LOC) );
error_handler = devices::send_error();
return ConnectionProblem;
}
}
}
}
So it seems we already had handling for exactly this in our old use cases, but this no longer works. Look up the man pages:
EPIPE The local end has been shut down on a connection oriented socket. In this case the process will also receive a SIGPIPE unless MSG_NOSIGNAL is set.
So SIGPIPE is getting sent which kills the server. The 'fix' would be to do this:
int bytes_written = ::send(client_socket_fd,s,n,0);
int bytes_written = ::send(client_socket_fd,s,n,MSG_NOSIGNAL);
The question is....why is this code falling over now and not before? If we know this, then we can know that we're not introducing another problem.
I have an Ubuntu 16.04 container with ecl_tools
, ecl_lite
, ecl_core
, and sophus
checked out in a workspace. If I try to build in isolation:
ament build --isolated --make-flags VERBOSE=1
Then the build fails with:
[ 16%] Building CXX object src/lib/CMakeFiles/ecl_exceptions.dir/standard_exception.cpp.o
cd /home/ubuntu/ecl_ws/build_isolated/ecl_exceptions/src/lib && /usr/bin/c++ -DROS_PACKAGE_NAME=\"ecl_exceptions\" -Decl_exceptions_EXPORTS -isystem /home/ubuntu/ecl_ws/install_isolated/ecl_config/include -std=c++14 -Wall -Wextra -Wl,--no-as-needed -fPIC -o CMakeFiles/ecl_exceptions.dir/standard_exception.cpp.o -c /home/ubuntu/ecl_ws/src/ecl_core/ecl_exceptions/src/lib/standard_exception.cpp
In file included from /home/ubuntu/ecl_ws/src/ecl_core/ecl_exceptions/src/lib/standard_exception.cpp:19:0:
/home/ubuntu/ecl_ws/src/ecl_core/ecl_exceptions/src/lib/../../include/ecl/exceptions/standard_exception.hpp:31:35: fatal error: ecl/errors/handlers.hpp: No such file or directory
compilation terminated.
It looks like ecl_exception isn't properly pulling in the include directories for ecl_error, but I'm not quite sure how to fix it.
what() members of StandardException and DataException return pointer to string which is created locally. Therefore we can't expect what we'll get from calling.
It need to make what() return basic_string instance as it is or make its instance static.
After (re-)starting the machine, the first attempt of use a serial device throws this exception:
ecl_core/ecl_devices/src/lib/serial_pos.cpp
Line 145 in 1337f3d
On the second attempt (restarting the process (not the machine) using the serial device) it works.
@AlexReimann is this the error (exception) you have been seeing, when you said "you have to start minimal twice"?
It would be super handy for ARM-based platforms to have a Bloom Debian release of ECL for ROS Crystal. Thanks!
Please some test resluts
ecl::TimeStamp pair, ctime;
pair-ctime
Time difference: 1.07729
ctime: 1437453731.893083043
pair: 1437453731.1970368407
ctime-pair
Time difference: -1.0926
ctime: 1437453945.911848062
pair: 1437453945.2004448617
From the man page for pthread_mutex_destroy...
It shall be safe to destroy an initialized mutex that is unlocked. Attempting to destroy a locked mutex results in undefined behavior.
The ecl threads Mutex class just destroys without checking inside it's destructor...
It looks like ecl_build
does not export it correctly.
See failing CI job: http://jenkins.ros.org/job/devel-hydro-ecl_core/ARCH_PARAM=amd64,UBUNTU_PARAM=precise,label=devel/2/console
All examples have an increasing input vector X, like most implementations of spline calculators, as they are often conceived to smooth mathematical functions.
Can a random path be smoothed with these spline classes? i.e: can I input a pair of x_set and y_set vectors describing a spiral (CubicSpline cubic = CubicSpline::Natural(x_set, y_set);
) and then retrieve the parameters of the spline at each point i (cubic.polynomials()[i];
)?
The compiler warns the type conversion problem of tv_nsec member of TimeStructure from double to long in ecl_time also ecl_time_lite.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.