Skip to content

Commit

Permalink
Release 1.2.0
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
domire8 authored Mar 24, 2023
2 parents acba2e8 + c95c4e6 commit f4bea82
Show file tree
Hide file tree
Showing 11 changed files with 30 additions and 23 deletions.
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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++
Expand Down
6 changes: 3 additions & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -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 \
Expand All @@ -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
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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:

Expand Down
4 changes: 2 additions & 2 deletions build-test.sh
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -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[@]}" .
6 changes: 3 additions & 3 deletions cpp/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -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)
Expand Down Expand Up @@ -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)
Expand Down
2 changes: 1 addition & 1 deletion cpp/include/network_interfaces/zmq/network.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#pragma once

#include <clproto.h>
#include <clproto.hpp>
#include <state_representation/space/cartesian/CartesianState.hpp>
#include <state_representation/space/joint/JointState.hpp>
#include <state_representation/space/Jacobian.hpp>
Expand Down
8 changes: 4 additions & 4 deletions cpp/test/test_zmq_communication.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down Expand Up @@ -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));
}
};

Expand Down
4 changes: 2 additions & 2 deletions dev-server.sh
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -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}"
6 changes: 3 additions & 3 deletions install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
4 changes: 2 additions & 2 deletions python/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -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="[email protected]",
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=[
Expand Down
4 changes: 2 additions & 2 deletions python/test/test_zmq_communication.py
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand Down Expand Up @@ -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):
Expand Down

0 comments on commit f4bea82

Please sign in to comment.