diff --git a/CHANGELOG.md b/CHANGELOG.md index 5b44e78..ee87578 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,11 +2,18 @@ Release Versions: +- [1.2.0](#120) - [1.1.0](#110) - [1.0.0](#100) - [0.2.0](#020) - [0.1.0](#010) +## 1.2.0 + +Version 1.2.0 is an update to support the latest release of +[aica-technology/control-libraries version 7.0](https://github.com/aica-technology/control-libraries/releases/tag/v7.0.0). +The only new feature is a pair of configuration files that lets `pkg-config` find the C++ library if it's installed. + ## 1.1.0 Version 1.1.0 sets control libraries version 6.0.0 as default and fixes the GitHub workflow. Additionally, the C++ diff --git a/Dockerfile b/Dockerfile index 927bcd6..8c3bf29 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM ghcr.io/epfl-lasa/control-libraries/development-dependencies as source-dependencies +FROM ghcr.io/aica-technology/control-libraries/development-dependencies as source-dependencies RUN apt-get update && apt-get install -y \ featherpad \ @@ -14,8 +14,8 @@ WORKDIR /tmp/cppzmq-${CPPZMQ_VERSION} RUN mkdir build && cd build && cmake .. -DCPPZMQ_BUILD_TESTS=OFF && make -j install WORKDIR /tmp -ARG CONTROL_LIBRARIES_BRANCH=v6.0.0 -RUN git clone -b ${CONTROL_LIBRARIES_BRANCH} --depth 1 https://github.com/epfl-lasa/control-libraries.git +ARG CONTROL_LIBRARIES_BRANCH=v7.0.0 +RUN git clone -b ${CONTROL_LIBRARIES_BRANCH} --depth 1 https://github.com/aica-technology/control-libraries.git RUN cd control-libraries/source && ./install.sh --auto --no-controllers --no-dynamical-systems --no-robot-model RUN cd control-libraries/protocol && ./install.sh --auto RUN pip3 install control-libraries/python diff --git a/README.md b/README.md index 66c22ad..f144bc5 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ A repository of drivers, protocols and libraries for communicating between softw ## Installation and usage This project depends on the `state_representation` and `clproto` libraries from -[control libraries](https://github.com/epfl-lasa/control-libraries) in C++ as well as Python. Before installing the +[control libraries](https://github.com/aica-technology/control-libraries) in C++ as well as Python. Before installing the network interfaces libraries, install therefore the two modules mentioned above as well as their Python bindings. Afterwards, the installation is straight forward: diff --git a/build-test.sh b/build-test.sh index 2f3f336..c42adc1 100755 --- a/build-test.sh +++ b/build-test.sh @@ -1,5 +1,5 @@ #!/bin/bash -CONTROL_LIBRARIES_BRANCH=v6.0.0 +CONTROL_LIBRARIES_BRANCH=v7.0.0 IMAGE_NAME=aica-technology/network-interfaces IMAGE_STAGE=build-test @@ -29,5 +29,5 @@ BUILD_FLAGS+=(--build-arg CONTROL_LIBRARIES_BRANCH="${CONTROL_LIBRARIES_BRANCH}" BUILD_FLAGS+=(-t "${IMAGE_NAME}:${IMAGE_STAGE}") BUILD_FLAGS+=(--target "${IMAGE_STAGE}") -docker pull ghcr.io/epfl-lasa/control-libraries/development-dependencies || exit 1 +docker pull ghcr.io/aica-technology/control-libraries/development-dependencies || exit 1 DOCKER_BUILDKIT=1 docker build "${BUILD_FLAGS[@]}" . diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt index 53d5e31..520b4dd 100644 --- a/cpp/CMakeLists.txt +++ b/cpp/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.15) -set (NETWORK_INTERFACES_VERSION 1.1.0) +set (NETWORK_INTERFACES_VERSION 1.2.0) project(network_interfaces VERSION ${NETWORK_INTERFACES_VERSION}) option(BUILD_TESTING "Build tests." OFF) @@ -38,8 +38,8 @@ include(GNUInstallDirs) include(CMakePackageConfigHelpers) include(FindPkgConfig) -add_project_dependency(control_libraries 6.0.0 REQUIRED COMPONENTS state_representation) -add_project_dependency(clproto 6.0.0 REQUIRED) +add_project_dependency(control_libraries 7.0.0 REQUIRED COMPONENTS state_representation) +add_project_dependency(clproto 7.0.0 REQUIRED) add_project_dependency(cppzmq 4.7.1 REQUIRED) include_directories(include) diff --git a/cpp/include/network_interfaces/zmq/network.h b/cpp/include/network_interfaces/zmq/network.h index 764cda1..5e46220 100644 --- a/cpp/include/network_interfaces/zmq/network.h +++ b/cpp/include/network_interfaces/zmq/network.h @@ -1,6 +1,6 @@ #pragma once -#include +#include #include #include #include diff --git a/cpp/test/test_zmq_communication.cpp b/cpp/test/test_zmq_communication.cpp index 2113d16..81cd28c 100644 --- a/cpp/test/test_zmq_communication.cpp +++ b/cpp/test/test_zmq_communication.cpp @@ -8,14 +8,14 @@ static void expect_joint_state_equal(const state_representation::JointState& js1, const state_representation::JointState& js2) { EXPECT_TRUE(js1.data().isApprox(js2.data())); - EXPECT_TRUE(js1.is_compatible(js2)); + EXPECT_FALSE(js1.is_incompatible(js2)); } static void expect_cart_state_equal( const state_representation::CartesianState& cs1, const state_representation::CartesianState& cs2 ) { EXPECT_TRUE(cs1.data().isApprox(cs2.data())); - EXPECT_TRUE(cs1.is_compatible(cs2)); + EXPECT_FALSE(cs1.is_incompatible(cs2)); } class TestNetworkInterface : public ::testing::Test { @@ -88,9 +88,9 @@ class TestNetworkInterface : public ::testing::Test { expect_cart_state_equal(state.ee_state, robot_state); expect_joint_state_equal(state.joint_state, robot_joint_state); EXPECT_TRUE(state.jacobian.data().isApprox(robot_jacobian.data())); - EXPECT_TRUE(state.jacobian.is_compatible(robot_jacobian)); + EXPECT_FALSE(state.jacobian.is_incompatible(robot_jacobian)); EXPECT_TRUE(state.mass.get_value().isApprox(robot_mass.get_value())); - EXPECT_TRUE(state.mass.is_compatible(robot_mass)); + EXPECT_FALSE(state.mass.is_incompatible(robot_mass)); } }; diff --git a/dev-server.sh b/dev-server.sh index 3ea97b6..464231c 100755 --- a/dev-server.sh +++ b/dev-server.sh @@ -1,5 +1,5 @@ #!/bin/bash -CONTROL_LIBRARIES_BRANCH=v6.0.0 +CONTROL_LIBRARIES_BRANCH=v7.0.0 REMOTE_SSH_PORT=4420 IMAGE_NAME=aica-technology/network-interfaces @@ -29,7 +29,7 @@ BUILD_FLAGS+=(--build-arg CONTROL_LIBRARIES_BRANCH="${CONTROL_LIBRARIES_BRANCH}" BUILD_FLAGS+=(-t "${IMAGE_NAME}:${IMAGE_STAGE}") BUILD_FLAGS+=(--target "${IMAGE_STAGE}") -docker pull ghcr.io/epfl-lasa/control-libraries/development-dependencies || exit 1 +docker pull ghcr.io/aica-technology/control-libraries/development-dependencies || exit 1 DOCKER_BUILDKIT=1 docker build "${BUILD_FLAGS[@]}" . || exit 1 aica-docker server "${IMAGE_NAME}:${IMAGE_STAGE}" -u developer -p "${REMOTE_SSH_PORT}" diff --git a/install.sh b/install.sh index 1acdea7..2a5e0c4 100755 --- a/install.sh +++ b/install.sh @@ -98,21 +98,21 @@ done STATE_REPRESENTATION_INSTALL=$(ldconfig -p | grep libstate_representation) if [ -z "${STATE_REPRESENTATION_INSTALL}" ]; then echo ">>> STATE REPRESENTATION LIBRARY NOT FOUND!" - echo ">>> Install state_representation from https://github.com/epfl-lasa/control-libraries/source" + echo ">>> Install state_representation from https://github.com/aica-technology/control-libraries/source" exit 1 fi CL_PROTO_INSTALL=$(ldconfig -p | grep libclproto) if [ -z "${CL_PROTO_INSTALL}" ]; then echo ">>> CL PROTO LIBRARY NOT FOUND!" - echo ">>> Install clproto from https://github.com/epfl-lasa/control-libraries/protocol" + echo ">>> Install clproto from https://github.com/aica-technology/control-libraries/protocol" exit 1 fi CL_PYTHON_BINDINGS=$(pip3 list | grep control-libraries) if [ -z "${CL_PYTHON_BINDINGS}" ]; then echo ">>> PYTHON BINDINGS FOR CONTROL LIBRARIES NOT FOUND!" - echo ">>> Install bindings from https://github.com/epfl-lasa/control-libraries/python" + echo ">>> Install bindings from https://github.com/aica-technology/control-libraries/python" exit 1 fi diff --git a/python/setup.py b/python/setup.py index c354834..5b7b36f 100644 --- a/python/setup.py +++ b/python/setup.py @@ -2,14 +2,14 @@ setuptools.setup( name="network_interfaces", - version="1.1.0", + version="1.2.0", description="This package implements network interfaces of AICA", maintainer="Dominic Reber", maintainer_email="dominic@aica.tech", url="https://github.com/aica-technology/network-interfaces", packages=setuptools.find_packages(), install_requires=[ - "control-libraries>=6.0.0", + "control-libraries>=7.0.0", "pyzmq>=22.3" ], classifiers=[ diff --git a/python/test/test_zmq_communication.py b/python/test/test_zmq_communication.py index 6f3ea08..37a0d6f 100644 --- a/python/test/test_zmq_communication.py +++ b/python/test/test_zmq_communication.py @@ -30,7 +30,7 @@ def setUpClass(cls): cls.context = zmq.Context() def assert_state_equal(self, state1, state2): - self.assertTrue(state1.is_compatible(state2)) + self.assertFalse(state1.is_incompatible(state2)) assert_array_almost_equal(state1.data(), state2.data()) def robot(self): @@ -75,7 +75,7 @@ def test_communication(self): self.assert_state_equal(self.received_state.ee_state, self.robot_state) self.assert_state_equal(self.received_state.joint_state, self.robot_joint_state) self.assert_state_equal(self.received_state.jacobian, self.robot_jacobian) - self.assertTrue(self.received_state.mass.is_compatible(self.robot_mass)) + self.assertFalse(self.received_state.mass.is_incompatible(self.robot_mass)) assert_array_almost_equal(self.received_state.mass.get_value(), self.robot_mass.get_value()) def test_encode_command(self):