Skip to content

Commit f74d96a

Browse files
authored
Merge branch 'master' into enhancement/brianhou/saver-enumflags
2 parents cfae5f5 + 9034d9a commit f74d96a

File tree

288 files changed

+19174
-5393
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

288 files changed

+19174
-5393
lines changed

.ci/docker/ubuntu-bionic

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@ FROM ubuntu:bionic
44
ENV APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1
55

66
RUN apt-get update -qq
7+
8+
# To run dpkg without interactive dialogue
9+
ENV DEBIAN_FRONTEND=noninteractive
10+
711
RUN apt-get install -y \
812
build-essential \
913
cmake \
@@ -13,4 +17,5 @@ RUN apt-get install -y \
1317
pkg-config \
1418
python \
1519
software-properties-common \
16-
sudo
20+
sudo \
21+
tzdata

.ci/install_linux.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,7 @@ set -ex
55
cd "${HOME}/workspace"
66
cp -r "${TRAVIS_BUILD_DIR}" src
77
./scripts/internal-distro.py --workspace=src distribution.yml --repository "${REPOSITORY}" ${REQUIRED_ONLY}
8+
9+
if [ $BUILD_NAME = TRUSTY_FULL_DEBUG ]; then
10+
sudo apt-get install clang-format-3.8
11+
fi

.ci/script_linux.sh

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@ if [ $BUILD_NAME = DOCS ]; then
1313
fi
1414

1515
# Check code style
16-
./scripts/internal-run.sh catkin build --no-status --no-deps -p 1 -i --make-args check-format -- aikido
16+
if [ $BUILD_NAME = TRUSTY_FULL_DEBUG ]; then
17+
./scripts/internal-run.sh catkin build --no-status --no-deps -p 1 -i --make-args check-format -- aikido
18+
fi
1719

1820
# Manually build Aikido's tests; they are not built automatically because it is not a Catkin package.
1921
if [ $BUILD_NAME = TRUSTY_FULL_DEBUG ]; then
@@ -28,8 +30,3 @@ if [ $BUILD_NAME = TRUSTY_FULL_DEBUG ]; then
2830
else
2931
./scripts/internal-run.sh env CTEST_OUTPUT_ON_FAILURE=true make -C build/aikido test
3032
fi
31-
32-
# Uploading report to CodeCov
33-
if [ $BUILD_NAME = TRUSTY_FULL_DEBUG ]; then
34-
bash <(curl -s https://codecov.io/bash) || echo "Codecov did not collect coverage reports"
35-
fi

.travis.yml

Lines changed: 6 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,6 @@ cache:
1717

1818
matrix:
1919
include:
20-
- os: linux
21-
compiler: gcc
22-
env:
23-
- BUILD_NAME=TRUSTY_DEBUG
24-
- REQUIRED_ONLY=--required-only
25-
- BUILD_TYPE=Debug
26-
- CATKIN_CONFIG_OPTIONS="-DCMAKE_BUILD_TYPE=Debug -DTREAT_WARNINGS_AS_ERRORS=ON"
2720
- os: linux
2821
compiler: gcc
2922
env:
@@ -50,20 +43,13 @@ matrix:
5043
- BUILD_TYPE=Release
5144
- CATKIN_CONFIG_OPTIONS="-DCMAKE_BUILD_TYPE=Release -DTREAT_WARNINGS_AS_ERRORS=ON"
5245
services: docker
53-
# Disabled until https://travis-ci.org/personalrobotics/aikido/jobs/375661536#L1561 is resolved
54-
#- os: linux
55-
# env:
56-
# - BUILD_NAME=BIONIC_FULL_RELEASE
57-
# - DOCKER_FILE="ubuntu-bionic"
58-
# - BUILD_TYPE=Release
59-
# - CATKIN_CONFIG_OPTIONS="-DCMAKE_BUILD_TYPE=Release -DTREAT_WARNINGS_AS_ERRORS=ON"
60-
# services: docker
61-
- os: osx
62-
osx_image: xcode9.3
63-
compiler: clang
46+
- os: linux
6447
env:
65-
- BUILD_NAME=XCODE93_DEBUG
66-
- BUILD_TYPE=Debug
48+
- BUILD_NAME=BIONIC_FULL_RELEASE
49+
- DOCKER_FILE="ubuntu-bionic"
50+
- BUILD_TYPE=Release
51+
- CATKIN_CONFIG_OPTIONS="-DCMAKE_BUILD_TYPE=Release -DTREAT_WARNINGS_AS_ERRORS=ON"
52+
services: docker
6753
- os: osx
6854
osx_image: xcode9.3
6955
compiler: clang

CHANGELOG.md

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,13 @@
77
* Fixed bug in StepSequence::getMaxSteps(): [#305](https://github.com/personalrobotics/aikido/pull/305)
88
* Fixed bug in StepSequence iterator: [#320](https://github.com/personalrobotics/aikido/pull/320)
99
* Cleaned up doxygen errors: [#357](https://github.com/personalrobotics/aikido/pull/357)
10-
10+
* Fixed bug in compiling with Boost 1.58 on Kinetic + Xenial: [#490](https://github.com/personalrobotics/aikido/pull/490)
11+
* Fixed bug in Interpolated::addWaypoint(): [#483](https://github.com/personalrobotics/aikido/pull/483)
1112
* Distance
1213

1314
* Added methods to rank configurations based on specified metric: [#423](https://github.com/personalrobotics/aikido/pull/423)
15+
* Added weights as optinal paramter to rankers: [#484] (https://github.com/personalrobotics/aikido/pull/484)
16+
1417

1518
* State Space
1619

@@ -22,6 +25,7 @@
2225
* Fixed hidden compose function (in-place version): [#421](https://github.com/personalrobotics/aikido/pull/421)
2326
* Added clone functionality to StateSpace: [#422](https://github.com/personalrobotics/aikido/pull/422)
2427
* Used const StateSpaces everywhere: [#429](https://github.com/personalrobotics/aikido/pull/429)
28+
* Changed the SE(2) space representation to [x,y,theta]: [#458](https://github.com/personalrobotics/aikido/pull/458)
2529

2630
* Constraint
2731

@@ -43,6 +47,7 @@
4347
* Trajectory
4448

4549
* Added B-spline trajectory: [#453](https://github.com/personalrobotics/aikido/pull/453)
50+
* Added trajectory utility functions: [#462](https://github.com/personalrobotics/aikido/pull/462)
4651

4752
* Planner
4853

@@ -55,11 +60,16 @@
5560
* Planning calls with InverseKinematicsSampleable constraints explicitly set MetaSkeleton to solve IK with: [#379](https://github.com/personalrobotics/aikido/pull/379)
5661
* Added a kinodynamic timer that generates a time-optimal smooth trajectory without completely stopping at each waypoint: [#443](https://github.com/personalrobotics/aikido/pull/443)
5762
* Fixed segmentation fault on 32-bit machines in vector-field planner: [#459](https://github.com/personalrobotics/aikido/pull/459)
63+
* Updated interface to OMPL planners to follow the style of the new refactored planning API: [#466](https://github.com/personalrobotics/aikido/pull/466)
5864

5965
* Robot
6066

6167
* Added Robot, Manipulator, Hand interfaces, and ConcreteRobot, ConcreteManipulator classes: [#325](https://github.com/personalrobotics/aikido/pull/325), [#392](https://github.com/personalrobotics/aikido/pull/392)
6268

69+
* RViz
70+
71+
* Fixed bug of not joining Viewer threads when stopping auto-update: [#463](https://github.com/personalrobotics/aikido/pull/463)
72+
6373
* IO
6474

6575
* Added loadSkeletonFromURDF convenience function: [#388](https://github.com/personalrobotics/aikido/pull/388), [#401](https://github.com/personalrobotics/aikido/pull/401)
@@ -69,6 +79,10 @@
6979
* Fixed Eigen memory alignment issues on 32bit Ubuntu: [#368](https://github.com/personalrobotics/aikido/pull/368)
7080
* Defined optional dependencies: [#376](https://github.com/personalrobotics/aikido/pull/376)
7181
* Fixed compilation bug with Eigen 3.3.5: [#452](https://github.com/personalrobotics/aikido/pull/452)
82+
* Updated gtest version to 1.8.1: [#478](https://github.com/personalrobotics/aikido/pull/478)
83+
* Added DART 6.7 support: [#480](https://github.com/personalrobotics/aikido/pull/480)
84+
* Fixed use of dart::common::make_unique for C++14 enabled compilers: [#481](https://github.com/personalrobotics/aikido/pull/481)
85+
* Changed to use own build script for GoogleTest: [#485](https://github.com/personalrobotics/aikido/pull/485)
7286

7387
### 0.2.0 (2018-01-09)
7488

CMakeLists.txt

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -101,21 +101,6 @@ macro(aikido_check_package variable component dependency)
101101
endif()
102102
endmacro()
103103

104-
#==============================================================================
105-
# Register an Aikido test.
106-
#
107-
set_property(GLOBAL PROPERTY AIKIDO_TESTS)
108-
109-
function(aikido_add_test target_name)
110-
add_executable("${target_name}" ${ARGN})
111-
add_test("${target_name}" "${target_name}")
112-
113-
target_link_libraries("${target_name}" gtest gtest_main)
114-
115-
set_property(GLOBAL APPEND PROPERTY AIKIDO_TESTS "${target_name}")
116-
format_add_sources(${ARGN})
117-
endfunction()
118-
119104
#==============================================================================
120105
# Required Dependencies
121106
#
@@ -126,7 +111,7 @@ include(FindPkgConfig)
126111

127112
find_package(Boost REQUIRED COMPONENTS filesystem)
128113

129-
find_package(DART 6.6.0 REQUIRED
114+
find_package(DART 6.6.2 REQUIRED
130115
COMPONENTS optimizer-nlopt utils
131116
OPTIONAL_COMPONENTS utils-urdf # for 'perception' target
132117
CONFIG

cmake/CodeCoverage.cmake

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@
3535
# - Added support for Clang.
3636
# - Some additional usage instructions.
3737
#
38+
# 2019-01-24, Brian Hou
39+
# - Added support for Codecov uploads.
40+
#
3841
# USAGE:
3942

4043
# 0. (Mac only) If you use Xcode 5.1 make sure to patch geninfo as described here:
@@ -133,6 +136,8 @@ FUNCTION(SETUP_TARGET_FOR_COVERAGE _targetname _testrunner _outputname)
133136
SET(coverage_info "${CMAKE_BINARY_DIR}/${_outputname}.info")
134137
SET(coverage_cleaned "${coverage_info}.cleaned")
135138

139+
SET(codecov_script "${CMAKE_BINARY_DIR}/codecov.sh")
140+
136141
SEPARATE_ARGUMENTS(test_command UNIX_COMMAND "${_testrunner}")
137142

138143
# Setup target
@@ -148,6 +153,13 @@ FUNCTION(SETUP_TARGET_FOR_COVERAGE _targetname _testrunner _outputname)
148153
COMMAND ${LCOV_PATH} --directory . --capture --output-file ${coverage_info}
149154
COMMAND ${LCOV_PATH} --remove ${coverage_info} 'tests/*' '/usr/*' --output-file ${coverage_cleaned}
150155
COMMAND ${GENHTML_PATH} -o ${_outputname} ${coverage_cleaned}
156+
157+
# Upload to Codecov (added by @brianhou)
158+
COMMAND curl -s "https://codecov.io/bash" > ${codecov_script}
159+
COMMAND chmod +x ${codecov_script}
160+
COMMAND ${codecov_script} -X gcov -f ${coverage_cleaned}
161+
162+
# Clean up reports
151163
COMMAND ${CMAKE_COMMAND} -E remove ${coverage_info} ${coverage_cleaned}
152164

153165
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}

cmake/CompilerSettings.cmake

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@ if(CMAKE_COMPILER_IS_GNUCXX)
1515
)
1616
endif()
1717

18-
set(AIKIDO_CXX_STANDARD_FLAGS -std=c++11)
18+
# Adding -fext-numeric-literals based on
19+
# https://svn.boost.org/trac10/ticket/9240.
20+
set(AIKIDO_CXX_STANDARD_FLAGS -std=c++11 -fext-numeric-literals)
1921

2022
add_compile_options(-Wall -Wextra -Wpedantic)
2123
if(TREAT_WARNINGS_AS_ERRORS)

include/aikido/constraint/dart/detail/JointStateSpaceHelpers-impl.hpp

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@ namespace constraint {
1919
namespace dart {
2020
namespace detail {
2121

22-
using ::dart::common::make_unique;
23-
2422
//==============================================================================
2523
using JointStateSpaceTypeList
2624
= common::type_list<const statespace::dart::R0Joint,
@@ -69,15 +67,15 @@ std::unique_ptr<OutputConstraint> createBoxConstraint(
6967

7068
if (properties.isPositionLimited())
7169
{
72-
return make_unique<uniform::RBoxConstraint<N>>(
70+
return ::dart::common::make_unique<uniform::RBoxConstraint<N>>(
7371
std::move(_stateSpace),
7472
std::move(_rng),
7573
properties.getPositionLowerLimits(),
7674
properties.getPositionUpperLimits());
7775
}
7876
else
7977
{
80-
return make_unique<Satisfied>(std::move(_stateSpace));
78+
return ::dart::common::make_unique<Satisfied>(std::move(_stateSpace));
8179
}
8280
}
8381

@@ -135,7 +133,7 @@ struct createSampleableFor_impl<const statespace::dart::RJoint<N>>
135133

136134
if (properties.isPositionLimited())
137135
{
138-
return make_unique<uniform::RBoxConstraint<N>>(
136+
return ::dart::common::make_unique<uniform::RBoxConstraint<N>>(
139137
std::move(_stateSpace),
140138
std::move(_rng),
141139
properties.getPositionLowerLimits(),
@@ -160,7 +158,7 @@ struct createDifferentiableFor_impl<const statespace::dart::SO2Joint>
160158
if (_stateSpace->getProperties().isPositionLimited())
161159
throw std::invalid_argument("SO2Joint must not have limits.");
162160

163-
return make_unique<Satisfied>(std::move(_stateSpace));
161+
return ::dart::common::make_unique<Satisfied>(std::move(_stateSpace));
164162
}
165163
};
166164

@@ -176,7 +174,7 @@ struct createTestableFor_impl<const statespace::dart::SO2Joint>
176174
if (_stateSpace->getProperties().isPositionLimited())
177175
throw std::invalid_argument("SO2Joint must not have limits.");
178176

179-
return make_unique<Satisfied>(std::move(_stateSpace));
177+
return ::dart::common::make_unique<Satisfied>(std::move(_stateSpace));
180178
}
181179
};
182180

@@ -192,7 +190,7 @@ struct createProjectableFor_impl<const statespace::dart::SO2Joint>
192190
if (_stateSpace->getProperties().isPositionLimited())
193191
throw std::invalid_argument("SO2Joint must not have limits.");
194192

195-
return make_unique<Satisfied>(std::move(_stateSpace));
193+
return ::dart::common::make_unique<Satisfied>(std::move(_stateSpace));
196194
}
197195
};
198196

@@ -209,7 +207,7 @@ struct createSampleableFor_impl<const statespace::dart::SO2Joint>
209207
if (_stateSpace->getProperties().isPositionLimited())
210208
throw std::invalid_argument("SO2Joint must not have limits.");
211209

212-
return make_unique<uniform::SO2UniformSampler>(
210+
return ::dart::common::make_unique<uniform::SO2UniformSampler>(
213211
std::move(_stateSpace), std::move(_rng));
214212
}
215213
};
@@ -226,7 +224,7 @@ struct createDifferentiableFor_impl<const statespace::dart::SO3Joint>
226224
if (_stateSpace->getProperties().isPositionLimited())
227225
throw std::invalid_argument("SO3Joint must not have limits.");
228226

229-
return make_unique<Satisfied>(std::move(_stateSpace));
227+
return ::dart::common::make_unique<Satisfied>(std::move(_stateSpace));
230228
}
231229
};
232230

@@ -242,7 +240,7 @@ struct createTestableFor_impl<const statespace::dart::SO3Joint>
242240
if (_stateSpace->getProperties().isPositionLimited())
243241
throw std::invalid_argument("SO3Joint must not have limits.");
244242

245-
return make_unique<Satisfied>(std::move(_stateSpace));
243+
return ::dart::common::make_unique<Satisfied>(std::move(_stateSpace));
246244
}
247245
};
248246

@@ -258,7 +256,7 @@ struct createProjectableFor_impl<const statespace::dart::SO3Joint>
258256
if (_stateSpace->getProperties().isPositionLimited())
259257
throw std::invalid_argument("SO3Joint must not have limits.");
260258

261-
return make_unique<Satisfied>(std::move(_stateSpace));
259+
return ::dart::common::make_unique<Satisfied>(std::move(_stateSpace));
262260
}
263261
};
264262

@@ -275,7 +273,7 @@ struct createSampleableFor_impl<const statespace::dart::SO3Joint>
275273
if (_stateSpace->getProperties().isPositionLimited())
276274
throw std::invalid_argument("SO3Joint must not have limits.");
277275

278-
return make_unique<uniform::SO3UniformSampler>(
276+
return ::dart::common::make_unique<uniform::SO3UniformSampler>(
279277
std::move(_stateSpace), std::move(_rng));
280278
}
281279
};
@@ -290,15 +288,15 @@ std::unique_ptr<OutputConstraint> createBoxConstraint(
290288

291289
if (properties.isPositionLimited())
292290
{
293-
return make_unique<uniform::SE2BoxConstraint>(
291+
return ::dart::common::make_unique<uniform::SE2BoxConstraint>(
294292
std::move(_stateSpace),
295293
std::move(_rng),
296294
properties.getPositionLowerLimits().tail<2>(),
297295
properties.getPositionUpperLimits().tail<2>());
298296
}
299297
else
300298
{
301-
return make_unique<Satisfied>(std::move(_stateSpace));
299+
return ::dart::common::make_unique<Satisfied>(std::move(_stateSpace));
302300
}
303301
}
304302

@@ -381,7 +379,7 @@ struct createSampleableFor_impl<const statespace::dart::SE2Joint>
381379
}
382380
else
383381
{
384-
return make_unique<uniform::SE2BoxConstraint>(
382+
return ::dart::common::make_unique<uniform::SE2BoxConstraint>(
385383
std::move(stateSpace),
386384
std::move(rng),
387385
properties.getPositionLowerLimits().tail<2>(),
@@ -451,7 +449,7 @@ std::unique_ptr<OutputConstraint> createBoxConstraint(
451449
std::shared_ptr<const statespace::dart::WeldJoint> _stateSpace,
452450
std::unique_ptr<common::RNG> /*_rng*/)
453451
{
454-
return make_unique<Satisfied>(std::move(_stateSpace));
452+
return ::dart::common::make_unique<Satisfied>(std::move(_stateSpace));
455453
}
456454

457455
//==============================================================================
@@ -506,7 +504,7 @@ struct createSampleableFor_impl<const statespace::dart::WeldJoint>
506504
// A WeldJoint has zero DOFs
507505
Eigen::VectorXd positions = Eigen::Matrix<double, 0, 1>();
508506

509-
return make_unique<uniform::R0ConstantSampler>(
507+
return ::dart::common::make_unique<uniform::R0ConstantSampler>(
510508
std::move(_stateSpace), positions);
511509
}
512510
};

include/aikido/constraint/uniform/SE2BoxConstraint.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,12 +65,12 @@ class SE2BoxConstraint : public constraint::Projectable,
6565

6666
std::unique_ptr<common::RNG> mRng;
6767

68-
/// Lower limits on the state. The first element encodes the rotational limit
69-
/// and the last two elements encode the translational limits.
68+
/// Lower limits on the state. The first two elements encode the translational
69+
/// limits and the last element encodes the rotational limit.
7070
Eigen::Vector3d mLowerLimits;
7171

72-
/// Upper limits on the state. The first element encodes the rotational limit
73-
/// and the last two elements encode the translational limits.
72+
/// Upper limits on the state. The first two elements encode the translational
73+
/// limits and the last element encodes the rotational limit.
7474
Eigen::Vector3d mUpperLimits;
7575

7676
// DOFs of joint that have limits, in this case translational DOFs.

0 commit comments

Comments
 (0)