Giter Site home page Giter Site logo

stonier / ecl_core Goto Github PK

View Code? Open in Web Editor NEW
84.0 13.0 68.0 2.81 MB

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

CMake 5.77% C++ 94.20% Makefile 0.03%

ecl_core's Introduction

ecl_core

A set of tools and interfaces extending the capabilities of c++ to provide a lightweight, consistent interface with a focus for control programming.

ecl_core's People

Contributors

bfjelds avatar bit-pirate avatar clalancette avatar gerkey avatar jakan2 avatar karsten1987 avatar rojkov avatar stonier avatar sundermann avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ecl_core's Issues

warning: typedef 'iterator' locally defined but not used

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;

Could not find a package configuration file provided by "sophus"

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.

compliation issue on Melodic

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.

Can a path be smoothed with a spline with this package?

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];)?

Problem with variable types.

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

error: ‘SE3Group’ does not name a type

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

Out of range error - @file /include/ecl/geometry/smooth_linear_spline.hpp

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;

}

Failing to build the tests with ament

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.

Duplicate packages "ecl_mobile_robot" when compiling kobuki_core

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

Compilation problem using ecl semaphores

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:

My test.h file contains:

...

include <ecl/ipc/semaphore_pos.hpp>

include <ecl/ipc/shared_memory_pos.hpp>

...
using ecl::Semaphore;
...
private:
Semaphore Sem;

...

2:

My test.cpp file contains the following code in both the two functions which access the shared area:

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

[ecl_linear_algebra] Required Eigen STL support header does not exist

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.

Linking error on Kobuki driver test programs

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

ecl_core/ecl_threads

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

Problems with link libraries for ecl_time tests

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

Failing to build when using ament `--symlink-install`

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)

cross compiling of ecl_config

  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%

First use of serial device throws "device already locked" exception

After (re-)starting the machine, the first attempt of use a serial device throws this exception:

StandardException(LOC,OpenError,std::string("Device is already locked. Try 'lsof | grep ") + port + std::string("' to find other processes that currently have the port open (if the device is a symbolic link you may need to replace the device name with the device that it is pointing to).")));

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

exception on device open error - ecl_devices

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.

Error when installing ecl_core on groovy-devel

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

Redact library exports

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.

Failing to build with ament in isolation

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.

warning: dynamic exception specifications are deprecated in C++11

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.

error during install melodic version

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

Build error ecl_math

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.

Release into Melodic

It would be great to get this released into Melodic to start the process of getting the turtlebot2 repositories released there. Thanks!

TimeStamp subtraction

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

gtest during the cross compiling

/mnt/data/cslam_catkin/src/ecl_core/ecl_containers/src/examples/formatters.cpp:16:25: error: gtest/gtest.h: No such file or directory

ecl_debug_catch fails in release

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.

Smooth Linear Spline causing massive deviations in position

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.

smoothlinearspline_2

Check why smooth linear interpolation is so lazy

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.

Client connections sending SIGPIPE

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

Push and Pop Formatter Broken

From kobuki.

In my opinion, the bug is here.

follower member variable of ecl::PushAndPop is not always zero, but ecl::formatters::ByteArrayFormatter always reads buffer from zero.

ROS2 Arm Builds

It would be super handy for ARM-based platforms to have a Bloom Debian release of ECL for ROS Crystal. Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.