![]() |
Fixposition SDK 0.0.0-heads/main-0-g067e2e7
Collection of c++ libraries and apps for use with Fixposition products
|
For building the libraries and apps:
(*) Optional dependencies. Without these some functionality in the libraries and apps is unavailable (compiled out).
For development additionally:
Open the fpsdk.code-workspace, change to one of the provided devcontainers, and in a terminal do:
Docker images are provided that include all the dependencies:
Note that the "docker.sh" script does not give you a suitable ROS runtime (or development, playground, ...) environment! Its only purpose is to run the CI for this repo and to demonstrate the building here. For a ROS run-time environment please setup a docker container yourself elsewhere (perhaps using the docker image provided here). See ROS and Docker documentation and the Internet for help.
This details the manual setup of the dependencies and building the SDK on a ROS1 system (for example, Ubuntu 20.04 with ROS Noetic). It works similarly for ROS2 (for example, Ubuntu 22.04 with ROS Humble) or non-ROS (for example, Debian Bookworm) based systems. Refer to the Docker configration files and scripts in the docker/ folder on installing the required dependencies.
Setup build system, install dependencies
The exact steps required depend on your system. You'll need the dependencies mentioned above installed system wide or otherwise tell CMake where to find them.
Configure
Additional parameters include (see CMakeList.txt files of the projects for details):
-DCMAKE_BUILD_TYPE=Debug
or -DCMAKE_BUILD_TYPE=Release
(default)-DROS_PACKAGE_PATH=/path/to/ros
(default: auto-detect)-DBUILD_TESTING=OFF
or -DBUILD_TESTING=ON
. The default is to automatically enable testing if a suitable GTest library is found.-DUSE_PROJ=ON
or -DUSE_PROJ=OFF
. The default is to automatically use the PROJ library if a suitable version is foundBuild
Install
Enjoy!
For example:
For example to build the fpsdk_common package (library):
The packages build in a ROS workspace using catkin (ROS1) resp. colcon (ROS2). For example:
Note that if you clone this repository directly to your ros_workspace/src
directory, you'll have to place CATKIN_IGNORE resp. COLCON_IGNORE files in some places. For example:
Refer to the various CMakeList.txt files, the CI workflow configuration (.github/workflows/ci.yml
) and the CI script (docker/ci.sh
) for details on how things are done.