Git Product home page Git Product logo

kimera's Introduction

πŸ™ Kimera (Alpha Work-in-Progress)

Low-latency hardware-accelerated codec-based video streaming utility.

Features

  • ⚑ Low-latency (~35ms).
  • πŸ¦‘ Multi-Platform (Linux, macOS, Windows).
  • πŸ”‹ Low-overhead with Hardware Acceleration.
  • πŸ–ΌοΈ Works with any codec (HEVC, AVC, VP9, VP8, AV1).
  • 🧳 Supports multiple transport streams (UDP, TCP, UNIX, GNURadio).
  • πŸ”‘ Encrypted tunnel between TCP peers (TLS v1.3).

Compatibility

Interfacing

OS Display Screen-Capture Native Video Source Native Video Sink
Linux βœ… (GLFW) βœ… (XCB) βœ… (V4L2) βœ… (V4L2)
macOS βœ… (GLFW) βœ… (AVFoundation) βœ… (AVFoundation) ❌
Windows βœ… (GLFW) ❌ ❌ ❌

Hardware Acceleration

Technology Encode Decode Description
VideoToolBox βœ… βœ… Apple Devices (macOS & iOS)
NVENC/CUVID βœ… βœ… Modern Nvidia GPUs
OMX βœ… βœ… Broadcom SoC (Raspberry Pi)
VAAPI ❌ ❌ Modern Intel CPUs

Installation

Pre-compiled binary packages will be available once this app reaches beta. For now, if you want to try the pre-release version of the app, you should compile it yourself by following the instructions below.

Dependencies

  • C++17 Compiler
  • GLFW
  • OpenGL ES >3.0 or OpenGL >3.3
  • LibAV >12.3
  • CMake >3.13
  • XCB (For Linux)
  • Xcode Toolchain (For macOS)

Linux-Debian

This list will be reduced once Meson is implemented in the next version.

$ sudo apt install libavcodec-dev libavfilter-dev libavutil-dev libavformat-dev libglfw3-dev libyaml-dev libssl-dev build-essential cmake git pkg-config python3 python3-pybind11 python3-dev libwebsocketpp-dev libboost-all-dev

macOS

You will need to compile Google's ANGLE OpenGL ES 3.0 for this to work on macOS. Thank Apple.

Compilation

$ git clone --recursive https://github.com/luigifreitas/kimera.git
$ cd kimera
$ mkdir build
$ cd build
$ cmake -DCMAKE_BUILD_TYPE=Release ..
$ make -j
$ sudo make install

Usage

Create a server with the /dev/video0 as input and localhost TCP as output.

$ kimera tx ../examples/linux.yml

Receive the video from the TCP server and display it on the screen.

$ kimera rx ../examples/linux.yml

License

This module is distributed under a GPL-2.0 License.

Roadmap

This is a list of unfinished tasks that I pretend to pursue soon. Pull requests are more than welcome!

  • Replace current render with librender.
  • Replace CMake with Meson.
  • Better WebCodecs support.
  • Add WebTransport module.

kimera's People

Contributors

4xx avatar luigifcruz avatar patriciogonzalezvivo avatar phillipdavidstearns 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  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

kimera's Issues

Convert library to C++ and add Python bindings

When I began writing this library in C I didn't realize how big it would turn out to be. This is why I'm proposing to convert it to C++. It will improve the code organization, automate class initialization, and ultimately reduce the amount of boilerplate code. The refactor will follow modern C++ standards and only apply C++ functions when performance isn't a priority. The refactor to C++ will also enable the library to have Python 3 bindings. Since C++ is a superset of C I don't expect usability problems for the small current userbase.

Weird gray periods on Ubuntu 20.04

linux.yaml

width: 1920
height: 1080
framerate: 30
bitrate: 5000000
packet_size: 8192

transmitter:
  source:
    - display
  sink:
    - udp
  device: :1
  address: 127.0.0.1
  port: 8080
  codec: hevc_nvenc

receiver:
  source: 
    - udp
  sink:
    - display
  address: 127.0.0.1
  port: 8080
  codec: hevc

./tunnel tx ../../../examples/linux.yml

.   CURRENT STATE
β”œβ”€β”€ Dimensions: 1920x1080
β”œβ”€β”€ Framerate:  30 FPS
β”œβ”€β”€ Bitrate:    5000000 bps
└── Packet Len: 8192 Bytes
    .   TRANSMITTER
    β”œβ”€β”€ Source:  DISPLAY
    β”œβ”€β”€ Sink:    UDP
    β”œβ”€β”€ Device:  :1
    β”œβ”€β”€ Address: 127.0.0.1
    β”œβ”€β”€ Port:    8080
    └── Codec:   hevc_nvenc
.   [Render Meta]
β”œβ”€β”€ Window Mode:   HEADLESS
β”œβ”€β”€ Frame Size:    1920x1080
β”œβ”€β”€ Device Size:   960x540
β”œβ”€β”€ Texture Count: 2
└──.   [EGL Meta]
β”‚  β”œβ”€β”€ APIs:       OpenGL_ES OpenGL
β”‚  β”œβ”€β”€ Version:    1.5
β”‚  └── Vendor:     NVIDIA
└──.   [GL Meta]
   β”œβ”€β”€ Renderer:   GeForce GTX 1650 with Max-Q Design/PCIe/SSE2
   β”œβ”€β”€ Version:    OpenGL ES 3.2 NVIDIA 440.64
   β”œβ”€β”€ Vendor:     NVIDIA Corporation
   └── GLSL Ver.:  OpenGL ES GLSL ES 3.20
[RESAMPLER] Performance Degradation:
              Output pixel format is different than the input.
                - Input: bgra -> Output: yuv420p

./tunnel rx ../../../examples/linux.yml

.   CURRENT STATE
β”œβ”€β”€ Dimensions: 1920x1080
β”œβ”€β”€ Framerate:  30 FPS
β”œβ”€β”€ Bitrate:    5000000 bps
└── Packet Len: 8192 Bytes
    .   RECEIVER
    β”œβ”€β”€ Source:  UDP
    β”œβ”€β”€ Sink:    DISPLAY
    β”œβ”€β”€ Device:  /dev/video0
    β”œβ”€β”€ Address: 127.0.0.1
    β”œβ”€β”€ Port:    8080
    └── Codec:   hevc
.   [Render Meta]
β”œβ”€β”€ Window Mode:   WINDOWED
β”œβ”€β”€ Frame Size:    1920x1080
β”œβ”€β”€ Device Size:   960x540
β”œβ”€β”€ Texture Count: 2
└──.   [EGL Meta]
β”‚  β”œβ”€β”€ APIs:       OpenGL_ES OpenGL
β”‚  β”œβ”€β”€ Version:    1.5
β”‚  └── Vendor:     NVIDIA
└──.   [GL Meta]
   β”œβ”€β”€ Renderer:   GeForce GTX 1650 with Max-Q Design/PCIe/SSE2
   β”œβ”€β”€ Version:    OpenGL ES 3.2 NVIDIA 440.64
   β”œβ”€β”€ Vendor:     NVIDIA Corporation
   └── GLSL Ver.:  OpenGL ES GLSL ES 3.20

out

Cmake compile error - install TARGETS given no RUNTIME DESTINATION for executable target

Not sure how to resolve this error
Command:
cmake -DCMAKE_BUILD_TYPE=Release .. --trace
Output:
CHES Debug|RelWithDebInfo ) /home/ubuntu/.local/lib/python3.5/site-packages/pybind11/share/cmake/pybind11/pybind11Tools.cmake(205): pybind11_strip(${target_name} ) /home/ubuntu/.local/lib/python3.5/site-packages/pybind11/share/cmake/pybind11/pybind11Common.cmake(383): if(CMAKE_STRIP ) /home/ubuntu/.local/lib/python3.5/site-packages/pybind11/share/cmake/pybind11/pybind11Common.cmake(384): if(APPLE ) /home/ubuntu/.local/lib/python3.5/site-packages/pybind11/share/cmake/pybind11/pybind11Common.cmake(388): add_custom_command(TARGET ${target_name} POST_BUILD COMMAND ${CMAKE_STRIP} ${x_opt} $<TARGET_FILE:${target_name}> ) /home/ubuntu/.local/lib/python3.5/site-packages/pybind11/share/cmake/pybind11/pybind11Tools.cmake(208): if(MSVC ) /home/ubuntu/.local/lib/python3.5/site-packages/pybind11/share/cmake/pybind11/pybind11Tools.cmake(212): if(ARG_OPT_SIZE ) /home/ubuntu/kimera/python/CMakeLists.txt(16): set_target_properties(python PROPERTIES OUTPUT_NAME kimera ) /home/ubuntu/kimera/python/CMakeLists.txt(17): target_link_libraries(python PRIVATE kimera ) /home/ubuntu/kimera/CMakeLists.txt(47): add_subdirectory(apps ) /home/ubuntu/kimera/apps/CMakeLists.txt(1): add_subdirectory(tunnel ) /home/ubuntu/kimera/apps/tunnel/CMakeLists.txt(1): project(tunnel ) /home/ubuntu/kimera/apps/tunnel/CMakeLists.txt(3): file(GLOB SOURCE_LIST CONFIGURE_DEPENDS *.cc ) /home/ubuntu/kimera/apps/tunnel/CMakeLists.txt(5): add_executable(tunnel ${SOURCE_LIST} ) /home/ubuntu/kimera/apps/tunnel/CMakeLists.txt(7): set_target_properties(tunnel PROPERTIES OUTPUT_NAME kimera ) /home/ubuntu/kimera/apps/tunnel/CMakeLists.txt(9): target_link_libraries(tunnel PRIVATE kimera ) /home/ubuntu/kimera/apps/tunnel/CMakeLists.txt(11): install(TARGETS tunnel RUNTIME ) CMake Error at apps/tunnel/CMakeLists.txt:11 (install): install TARGETS given no RUNTIME DESTINATION for executable target "tunnel".

Compilation Errors on Linux 4.9.140-tegra

I'm compiling for Jetson Nano and when following the instructions you've provided, I get the following:

cmake -DCMAKE_BUILD_TYPE=Release ..
CMake Error: The source directory "/home/<user>" does not appear to contain CMakeLists.txt.
Specify --help for usage, or press the help button on the CMake GUI.

so I run cmake -DCMAKE_BUILD_TYPE=Release . and get:

-- Assuming Linux system...
CMake Error at apps/CMakeLists.txt:4 (add_subdirectory):
  The source directory

    /home/<user>/kimera/apps/CMakeFiles

  does not contain a CMakeLists.txt file.


-- Configuring incomplete, errors occurred!
See also "/home/<user>/kimera/CMakeFiles/CMakeOutput.log".

Changing into the build directory and running cmake -DCMAKE_BUILD_TYPE=Release .. results in the same output as above.

Issues compiling on RaspberryPi OS

[~/kimera/build]$ make -j                                                                                                                                                                                                            [master] 
[  8%] Building C object CMakeFiles/kimera.dir/src/render/stages/draw.c.o
[  8%] Building C object CMakeFiles/kimera.dir/src/render/stages/pull.c.o
[ 12%] Building C object CMakeFiles/kimera.dir/src/render/stages/utils.c.o
[ 16%] Building C object CMakeFiles/kimera.dir/src/render/stages/process.c.o
[ 20%] Building C object CMakeFiles/kimera.dir/src/render/stages/push.c.o
In file included from /home/patricio/kimera/src/render/stages/pull.c:1:
/home/patricio/kimera/include/kimera/render.h:48:10: fatal error: shaders.h: No such file or directory
 #include "shaders.h"
          ^~~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/kimera.dir/build.make:232: CMakeFiles/kimera.dir/src/render/stages/pull.c.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from /home/patricio/kimera/src/render/stages/utils.c:1:
/home/patricio/kimera/include/kimera/render.h:48:10: fatal error: shaders.h: No such file or directory
 #include "shaders.h"
          ^~~~~~~~~~~
compilation terminated.
In file included from /home/patricio/kimera/src/render/stages/process.c:1:
/home/patricio/kimera/include/kimera/render.h:48:10: fatal error: shaders.h: No such file or directory
 #include "shaders.h"
          ^~~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/kimera.dir/build.make:258: CMakeFiles/kimera.dir/src/render/stages/utils.c.o] Error 1
make[2]: *** [CMakeFiles/kimera.dir/build.make:219: CMakeFiles/kimera.dir/src/render/stages/process.c.o] Error 1
In file included from /home/patricio/kimera/src/render/stages/draw.c:1:
/home/patricio/kimera/include/kimera/render.h:48:10: fatal error: shaders.h: No such file or directory
 #include "shaders.h"
          ^~~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/kimera.dir/build.make:206: CMakeFiles/kimera.dir/src/render/stages/draw.c.o] Error 1
In file included from /home/patricio/kimera/src/render/stages/push.c:1:
/home/patricio/kimera/include/kimera/render.h:48:10: fatal error: shaders.h: No such file or directory
 #include "shaders.h"
          ^~~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/kimera.dir/build.make:245: CMakeFiles/kimera.dir/src/render/stages/push.c.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:73: CMakeFiles/kimera.dir/all] Error 2
make: *** [Makefile:84: all] Error 2

Build error

Thanks for the great project!
I can build it on ubuntu20, but there are errors when build it on ubuntu18.

System: ubuntu18
platform:x86_64
gcc version: 9.4
g++ version:9.4
cmake version: 3.22

cmake -j with error:

[ 96%] Building CXX object apps/tunnel/CMakeFiles/tunnel.dir/tunnel.cc.o
In file included from /home/neo/works/kimera-source/kimera/python/index.cc:1:
/home/neo/works/kimera-source/kimera/python/client.hpp: In function β€˜void init_client(pybind11::module&)’:
/home/neo/works/kimera-source/kimera/python/client.hpp:12:10: error: no matching function for call to β€˜init(init_client(pybind11::module&)::<lambda(Kimera::State&)>)’
   12 |         }))
      |          ^
In file included from /home/neo/works/kimera-source/kimera/python/client.hpp:3,
                 from /home/neo/works/kimera-source/kimera/python/index.cc:1:
/usr/include/pybind11/pybind11.h:1418:51: note: candidate: β€˜template<class ... Args> pybind11::detail::init<Args ...> pybind11::init()’
 1418 | template <typename... Args> detail::init<Args...> init() { return detail::init<Args...>(); }
      |                                                   ^~~~
/usr/include/pybind11/pybind11.h:1418:51: note:   template argument deduction/substitution failed:
In file included from /home/neo/works/kimera-source/kimera/python/index.cc:1:
/home/neo/works/kimera-source/kimera/python/client.hpp:12:10: note:   candidate expects 0 arguments, 1 provided
   12 |         }))
      |          ^
/home/neo/works/kimera-source/kimera/python/client.hpp:16:10: error: no matching function for call to β€˜init(init_client(pybind11::module&)::<lambda()>)’
   16 |         }))
      |          ^
In file included from /home/neo/works/kimera-source/kimera/python/client.hpp:3,
                 from /home/neo/works/kimera-source/kimera/python/index.cc:1:
/usr/include/pybind11/pybind11.h:1418:51: note: candidate: β€˜template<class ... Args> pybind11::detail::init<Args ...> pybind11::init()’
 1418 | template <typename... Args> detail::init<Args...> init() { return detail::init<Args...>(); }
      |                                                   ^~~~
/usr/include/pybind11/pybind11.h:1418:51: note:   template argument deduction/substitution failed:
In file included from /home/neo/works/kimera-source/kimera/python/index.cc:1:
/home/neo/works/kimera-source/kimera/python/client.hpp:16:10: note:   candidate expects 0 arguments, 1 provided
   16 |         }))
      |          ^
In file included from /home/neo/works/kimera-source/kimera/python/index.cc:2:
/home/neo/works/kimera-source/kimera/python/codec.hpp: In function β€˜void init_codec(pybind11::module&)’:
/home/neo/works/kimera-source/kimera/python/codec.hpp:12:10: error: no matching function for call to β€˜init(init_codec(pybind11::module&)::<lambda(Kimera::State&)>)’
   12 |         }))
      |          ^
In file included from /home/neo/works/kimera-source/kimera/python/client.hpp:3,
                 from /home/neo/works/kimera-source/kimera/python/index.cc:1:
/usr/include/pybind11/pybind11.h:1418:51: note: candidate: β€˜template<class ... Args> pybind11::detail::init<Args ...> pybind11::init()’
 1418 | template <typename... Args> detail::init<Args...> init() { return detail::init<Args...>(); }
      |                                                   ^~~~
/usr/include/pybind11/pybind11.h:1418:51: note:   template argument deduction/substitution failed:
In file included from /home/neo/works/kimera-source/kimera/python/index.cc:2:
/home/neo/works/kimera-source/kimera/python/codec.hpp:12:10: note:   candidate expects 0 arguments, 1 provided
   12 |         }))
      |          ^
/home/neo/works/kimera-source/kimera/python/codec.hpp:19:10: error: no matching function for call to β€˜init(init_codec(pybind11::module&)::<lambda(Kimera::State&)>)’
   19 |         }))
      |          ^
In file included from /home/neo/works/kimera-source/kimera/python/client.hpp:3,
                 from /home/neo/works/kimera-source/kimera/python/index.cc:1:
/usr/include/pybind11/pybind11.h:1418:51: note: candidate: β€˜template<class ... Args> pybind11::detail::init<Args ...> pybind11::init()’
 1418 | template <typename... Args> detail::init<Args...> init() { return detail::init<Args...>(); }
      |                                                   ^~~~
/usr/include/pybind11/pybind11.h:1418:51: note:   template argument deduction/substitution failed:
In file included from /home/neo/works/kimera-source/kimera/python/index.cc:2:
/home/neo/works/kimera-source/kimera/python/codec.hpp:19:10: note:   candidate expects 0 arguments, 1 provided
   19 |         }))
      |          ^
/home/neo/works/kimera-source/kimera/python/codec.hpp:26:10: error: no matching function for call to β€˜init(init_codec(pybind11::module&)::<lambda(Kimera::State&)>)’
   26 |         }))
      |          ^
In file included from /home/neo/works/kimera-source/kimera/python/client.hpp:3,
                 from /home/neo/works/kimera-source/kimera/python/index.cc:1:
/usr/include/pybind11/pybind11.h:1418:51: note: candidate: β€˜template<class ... Args> pybind11::detail::init<Args ...> pybind11::init()’
 1418 | template <typename... Args> detail::init<Args...> init() { return detail::init<Args...>(); }
      |                                                   ^~~~
/usr/include/pybind11/pybind11.h:1418:51: note:   template argument deduction/substitution failed:
In file included from /home/neo/works/kimera-source/kimera/python/index.cc:2:
/home/neo/works/kimera-source/kimera/python/codec.hpp:26:10: note:   candidate expects 0 arguments, 1 provided
   26 |         }))
      |          ^
/home/neo/works/kimera-source/kimera/python/codec.hpp:29:10: error: no matching function for call to β€˜init(init_codec(pybind11::module&)::<lambda(Kimera::State&, Kimera::PixelFormat)>)’
   29 |         }))
      |          ^
In file included from /home/neo/works/kimera-source/kimera/python/client.hpp:3,
                 from /home/neo/works/kimera-source/kimera/python/index.cc:1:
/usr/include/pybind11/pybind11.h:1418:51: note: candidate: β€˜template<class ... Args> pybind11::detail::init<Args ...> pybind11::init()’
 1418 | template <typename... Args> detail::init<Args...> init() { return detail::init<Args...>(); }
      |                                                   ^~~~
/usr/include/pybind11/pybind11.h:1418:51: note:   template argument deduction/substitution failed:
In file included from /home/neo/works/kimera-source/kimera/python/index.cc:2:
/home/neo/works/kimera-source/kimera/python/codec.hpp:29:10: note:   candidate expects 0 arguments, 1 provided
   29 |         }))
      |          ^
In file included from /home/neo/works/kimera-source/kimera/python/index.cc:3:
/home/neo/works/kimera-source/kimera/python/loopback.hpp: In function β€˜void init_loopback(pybind11::module&)’:
/home/neo/works/kimera-source/kimera/python/loopback.hpp:12:10: error: no matching function for call to β€˜init(init_loopback(pybind11::module&)::<lambda(Kimera::State&)>)’
   12 |         }))
      |          ^
In file included from /home/neo/works/kimera-source/kimera/python/client.hpp:3,
                 from /home/neo/works/kimera-source/kimera/python/index.cc:1:
/usr/include/pybind11/pybind11.h:1418:51: note: candidate: β€˜template<class ... Args> pybind11::detail::init<Args ...> pybind11::init()’
 1418 | template <typename... Args> detail::init<Args...> init() { return detail::init<Args...>(); }
      |                                                   ^~~~
/usr/include/pybind11/pybind11.h:1418:51: note:   template argument deduction/substitution failed:
In file included from /home/neo/works/kimera-source/kimera/python/index.cc:3:
/home/neo/works/kimera-source/kimera/python/loopback.hpp:12:10: note:   candidate expects 0 arguments, 1 provided
   12 |         }))
      |          ^
In file included from /home/neo/works/kimera-source/kimera/python/index.cc:5:
/home/neo/works/kimera-source/kimera/python/transport.hpp: In function β€˜void init_transport(pybind11::module&)’:
/home/neo/works/kimera-source/kimera/python/transport.hpp:12:10: error: no matching function for call to β€˜init(init_transport(pybind11::module&)::<lambda(Kimera::State&)>)’
   12 |         }))
      |          ^
In file included from /home/neo/works/kimera-source/kimera/python/client.hpp:3,
                 from /home/neo/works/kimera-source/kimera/python/index.cc:1:
/usr/include/pybind11/pybind11.h:1418:51: note: candidate: β€˜template<class ... Args> pybind11::detail::init<Args ...> pybind11::init()’
 1418 | template <typename... Args> detail::init<Args...> init() { return detail::init<Args...>(); }
      |                                                   ^~~~
/usr/include/pybind11/pybind11.h:1418:51: note:   template argument deduction/substitution failed:
In file included from /home/neo/works/kimera-source/kimera/python/index.cc:5:
/home/neo/works/kimera-source/kimera/python/transport.hpp:12:10: note:   candidate expects 0 arguments, 1 provided
   12 |         }))
      |          ^
/home/neo/works/kimera-source/kimera/python/index.cc: At global scope:
/home/neo/works/kimera-source/kimera/python/index.cc:14:16: error: expected constructor, destructor, or type conversion before β€˜(’ token
   14 | PYBIND11_MODULE(kimera, m) {
      |                ^
[ 98%] Linking CXX executable ../../bin/kimera
CMakeFiles/tunnel.dir/tunnel.cc.o: In function `boost::system::error_category::std_category::equivalent(std::error_code const&, int) const':
tunnel.cc:(.text._ZNK5boost6system14error_category12std_category10equivalentERKSt10error_codei[_ZNK5boost6system14error_category12std_category10equivalentERKSt10error_codei]+0x40): undefined reference to `boost::system::generic_category()'
tunnel.cc:(.text._ZNK5boost6system14error_category12std_category10equivalentERKSt10error_codei[_ZNK5boost6system14error_category12std_category10equivalentERKSt10error_codei]+0xb9): undefined reference to `boost::system::generic_category()'
tunnel.cc:(.text._ZNK5boost6system14error_category12std_category10equivalentERKSt10error_codei[_ZNK5boost6system14error_category12std_category10equivalentERKSt10error_codei]+0x149): undefined reference to `boost::system::generic_category()'
CMakeFiles/tunnel.dir/tunnel.cc.o: In function `boost::system::error_category::std_category::equivalent(int, std::error_condition const&) const':
tunnel.cc:(.text._ZNK5boost6system14error_category12std_category10equivalentEiRKSt15error_condition[_ZNK5boost6system14error_category12std_category10equivalentEiRKSt15error_condition]+0x3f): undefined reference to `boost::system::generic_category()'
tunnel.cc:(.text._ZNK5boost6system14error_category12std_category10equivalentEiRKSt15error_condition[_ZNK5boost6system14error_category12std_category10equivalentEiRKSt15error_condition]+0xd1): undefined reference to `boost::system::generic_category()'
CMakeFiles/tunnel.dir/tunnel.cc.o:tunnel.cc:(.text.startup+0x1f6): more undefined references to `boost::system::generic_category()' follow
CMakeFiles/tunnel.dir/tunnel.cc.o: In function `_GLOBAL__sub_I__Z8receiverRN6Kimera5StateERNS_6ClientE':
tunnel.cc:(.text.startup+0x200): undefined reference to `boost::system::system_category()'
tunnel.cc:(.text.startup+0x205): undefined reference to `boost::system::system_category()'
collect2: error: ld returned 1 exit status
apps/tunnel/CMakeFiles/tunnel.dir/build.make:98: recipe for target 'bin/kimera' failed
make[2]: *** [bin/kimera] Error 1
CMakeFiles/Makefile2:1121: recipe for target 'apps/tunnel/CMakeFiles/tunnel.dir/all' failed
make[1]: *** [apps/tunnel/CMakeFiles/tunnel.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
python/CMakeFiles/python.dir/build.make:75: recipe for target 'python/CMakeFiles/python.dir/index.cc.o' failed
make[2]: *** [python/CMakeFiles/python.dir/index.cc.o] Error 1
CMakeFiles/Makefile2:1094: recipe for target 'python/CMakeFiles/python.dir/all' failed
make[1]: *** [python/CMakeFiles/python.dir/all] Error 2
Makefile:135: recipe for target 'all' failed
make: *** [all] Error 2

Can't Parse file

virtual-machine:/kimera$ kimera tx ../examples/linux.yml
[CLIENT] Can't parse file: bad file: ../examples/linux.yml
virtual-machine:
/kimera$

Error linking on Ubuntu 20.04

I'm getting the following linking error:

[ 89%] Built target kimera
[ 94%] Linking C executable tunnel
/usr/bin/ld: CMakeFiles/tunnel.dir/tunnel.c.o: in function `receiver':
tunnel.c:(.text+0xe8): undefined reference to `free_loopback'
/usr/bin/ld: CMakeFiles/tunnel.dir/tunnel.c.o: in function `transmitter':
tunnel.c:(.text+0x2d1): undefined reference to `free_loopback'
collect2: error: ld returned 1 exit status
make[2]: *** [apps/tunnel/CMakeFiles/tunnel.dir/build.make:85: apps/tunnel/tunnel] Error 1
make[1]: *** [CMakeFiles/Makefile2:160: apps/tunnel/CMakeFiles/tunnel.dir/all] Error 2
make: *** [Makefile:84: all] Error 2

Outdated documentation

Seams you have some outdated documentation:

  • There is no kimera app
    $ ./kimera tx ../examples/linux.yml

  • The scrip use some python glue which require pathlib module which is not installed by default in RaspberryPi. The following is needed:

sudo apt install python-pip python3-pip
sudo pip install pathlib
sudo pip3 install pathlib

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.