Skip to content

Commit

Permalink
Release 0.4.0.
Browse files Browse the repository at this point in the history
This release includes improvements of map building and camera calibration, simulator performance and multi-robot support, new features for guest science, and many internal changes.
  • Loading branch information
bcoltin committed Jul 13, 2018
1 parent 8525666 commit 7792ab8
Show file tree
Hide file tree
Showing 403 changed files with 28,564 additions and 10,626 deletions.
6 changes: 3 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -76,14 +76,14 @@ doc/latex

# dds config files, they are maintained in the astrobee common submodule
astrobee/config/dds

#zones bin
astrobee/zones/*.bin
astrobee/freeflyer/*.bin
/freeflyer.sublime-project
/freeflyer.sublime-workspace
/simulation/iss-description
/simulation/granite-description
/description/*.tar.gz
/description/media

# catkin
/.catkin_tools
Expand Down
31 changes: 16 additions & 15 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
cmake_minimum_required(VERSION 3.0)
project(Astrobee)
set(ASTROBEE_VERSION_MAJOR 0)
set(ASTROBEE_VERSION_MINOR 3)
set(ASTROBEE_VERSION_MINOR 4)

if ( "${CMAKE_VERSION}" VERSION_GREATER 3.0.0 )
cmake_policy(SET CMP0045 OLD)
Expand Down Expand Up @@ -206,17 +206,12 @@ if (ENABLE_PICOFLEXX)
find_package(royale REQUIRED)
endif (ENABLE_PICOFLEXX)

#find_package(PkgConfig REQUIRED)
#
#pkg_check_modules(YAMLCPP REQUIRED yaml-cpp)
#if (YAMLCPP_FOUND)
# set (YAMLCPP_INCLUDE_DIRS ${YAMLCPP_INCLUDEDIR})
#endif (YAMLCPP_FOUND)

pkg_check_modules(YAMLCPP REQUIRED yaml-cpp)
if (YAMLCPP_FOUND)
set (YAMLCPP_INCLUDE_DIRS ${YAMLCPP_INCLUDEDIR})
endif (YAMLCPP_FOUND)
if (NOT USE_CTC) # pkg-config needs extra work to be used for cross compile
pkg_check_modules(YAMLCPP yaml-cpp)
if (YAMLCPP_FOUND)
set (YAMLCPP_INCLUDE_DIRS ${YAMLCPP_INCLUDEDIR})
endif (YAMLCPP_FOUND)
endif (NOT USE_CTC)

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wno-unused-local-typedefs -Werror")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-unused-local-typedefs -Werror")
Expand Down Expand Up @@ -254,6 +249,11 @@ endif (USE_CTC)
if (USE_ROS)
set(ENV{ROS_LANG_DISABLE} "genlisp:gennodejs:geneus:$ENV{ROS_LANG_DISABLE}")
find_package(catkin2 COMPONENTS roscpp message_generation std_msgs geometry_msgs sensor_msgs cv_bridge image_transport tf tf2 tf2_ros rosbag nodelet)

if (IS_BAMBOO_BUILD)
include(BambooFix)
endif()

find_package(PCL REQUIRED COMPONENTS common)
find_package(Octomap MODULE REQUIRED)
#pkg_check_modules(OROCOS_KDL REQUIRED orocos_kdl)
Expand Down Expand Up @@ -320,13 +320,14 @@ if (USE_ROS)
add_subdirectory(tools)
add_subdirectory(astrobee)
add_subdirectory(communications)
if (NOT USE_CTC AND ENABLE_GAZEBO)
add_subdirectory(simulation)
endif (NOT USE_CTC AND ENABLE_GAZEBO)
add_subdirectory(gnc)
add_subdirectory(mobility)
add_subdirectory(behaviors)
add_subdirectory(management)
add_subdirectory(description)
if (NOT USE_CTC AND ENABLE_GAZEBO)
add_subdirectory(simulation)
endif (NOT USE_CTC AND ENABLE_GAZEBO)
endif (USE_ROS)

if (USE_DRIVERS)
Expand Down
12 changes: 9 additions & 3 deletions INSTALL.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ support some of our Gazebo plugins.

sudo apt-get install build-essential git

*Note: You will need 3 GBs of RAM to compile the software. If you don't have
*Note: You will need 4 GBs of RAM to compile the software. If you don't have
that much RAM available, please use swap space.*

*Note: Please ensure you install the 64-bit version of Ubuntu. We do not
Expand Down Expand Up @@ -67,7 +67,10 @@ By default, the configure script uses the following paths:
If you are satisfied with these paths, you can invoke the `configure.sh` without
the `-p` and `-b` options. For the simplicity of the instructions below,
we assume that `$BUILD_PATH` and `$INSTALL_PATH` contain the location of the
build and install path.
build and install path. For example:

export BUILD_PATH=$HOME/freeflyer_build/native
export INSTALL_PATH=$HOME/freeflyer_install/native

### Native build

Expand Down Expand Up @@ -100,9 +103,12 @@ time round. Future builds will be faster, as only changes to the code are
rebuilt, and not the entire code base.

pushd $BUILD_PATH
make -j6
make -j2
popd

If you configured your virtual machine with more than the baseline resources,
you can adjust the number of threads (eg. -j4) to speed up the build.

## Running a simulation

You will need to first setup your environment, so that ROS knows about the new
Expand Down
2 changes: 1 addition & 1 deletion NASA_INSTALL.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ Next, install all required dependencies:

#### Extra options to install the dependencies

- If you do not want to configure you `.ssh/config` to just get the
- If you do not want to configure your `.ssh/config` to just get the
dependencies, you can use the `NDC_USERNAME` variable.
- By default, the custom debians are installed in `$SOURCE_PATH/.astrobee_deb`.
If you prefer to install them at a different location, you can use the
Expand Down
98 changes: 98 additions & 0 deletions NOTICE
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
# Astrobee Robot Software (ARS) Third Party Software Distribution Notices, Disclaimers and Licenses

Astrobee Robot Software (ARS) will be distributing the following third party software under their respective licenses (copy of complete licenses can be found in the “ARS 3rd Party Licenses” document):

1. A Library for Virtual and Augmented Reality (ALVAR) 2.0, released under LGPL v2.1. License
Copyright 2007-2012 VTT Technical Research Centre of Finland
Contact: VTT Augmented Reality Team <[email protected]>
<http://www.vtt.fi/multimedia/alvar.html>

ALVAR is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free software Foundation; either version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with ALVAR; if not, see
<http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html>.

2. DBoW2: bag-of-words library for C++ with generic descriptors 0.1 released under Modified BSD License
Copyright (c) 2015 Dorian Galvez-Lopez. http://doriangalvez.com, All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
* The original author of the work must be notified of any redistribution of source code or in binary form.
* Neither the name of copyright holders nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

3. OpenMVG: Open Multiple View Geometry 1.1, governed by Mozilla Public License 2 License found at https://www.mozilla.org/media/MPL/2.0/index.815ca599c9df.txt

4. SoraCore: interfaces and RAPID implementation for SORA 1.0, released under Apache v2.0 License

Copyright (c) 2013 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All rights reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

5. Miro: Middleware for Robots 0.3, released under LGPL v2.1. License

Copyright (C) 1999-2013 Department of Neural Information Processing, University of Ulm

This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

6. Dorian3D/Dlib 0.1, released under Modified BSD License
DLib. Copyright (c) 2015 Dorian Galvez-Lopez. http://doriangalvez.com All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
* The original author of the work must be notified of any redistribution of source code or in binary form.
* Neither the name of copyright holders nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

This software includes the dirent API for Microsoft Visual Studio, by Toni Ronkko, and has its own license, reproduced below:
*****************************************************************************
dirent.h - dirent API for Microsoft Visual Studio
Copyright (C) 2006 Toni Ronkko
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the ``Software''), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL TONI RONKKO BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

7. decomputil (MRSL Decomputil Library) 0.1, released under BSD 3-Clause License
Copyright (c) 2017, sikang All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
* Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

8. jps3d (MRSL Jump Point Search Planning Library) 0.1, released under BSD 3-Clause License

Copyright (c) 2017, sikang All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

* Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

9. Libdeepdive 0.1, released under MIT License
This code was originally forked from libsurvive, an incredible library developed by the open source community, using hints from those who built the system itself. There is an active community on Discord, which I encourage interested people to check out.
I used documentation from: https://github.com/nairol/LighthouseRedox The code was adapted from: https://github.com/cnlohr/libsurvive Which was based off: https://github.com/collabora/OSVR-Vive-Libre Originally Copyright 2016 Philipp Zabel Originally Copyright 2016 Lubosz Sarnecki [email protected] Originally Copyright (C) 2013 Fredrik Hultin Originally Copyright (C) 2013 Jakob Bornecrantz
Copyright (c) 2017 Andrew Symington
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

53 changes: 53 additions & 0 deletions RELEASE.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,58 @@
# Astrobee Robot Software v1

## Release 0.4.0

This release includes improvements of map building and camera calibration,
simulator performance and multi-robot support, new features for guest science,
and many internal changes.

### Map Building
- Map building fixes.
- Multiple maps assembly pipeline optimized.

### Sensor Calibration
- Streamlined image cameras and depth cameras extrinsics relative to IMU

### Simulator
- Completed support for docking / un-docking.
- Default robot starts on-dock in the JEM.
- Synthetic generation of optical flow features.
- Support for launching a simulation without a robot.
- Support for controlling simulation speed.
- Substantially better runtime performance through simplified collision meshes.
- More complete ISS mesh; improved dock and freeflyer meshes.

### Management
- The system monitor now triggers heartbeat faults for all nodes in the system.
- Management of operational limits.
- Improved "mode" management including support for IDLE.

### Guest Science
- A GS Manager stub was added so GS don’t have to use Android to test their
applications.
- Guest Science Manager changed to create and pass the base data path to a GS
APK.
- A new method was added to the guest science library that will provide the
base data path to a GS APK.
- Better GS examples added.

### Internal (support for non-open source platform and avionics repos)
- Mechanisms for local (robot) launch at startup.
- Support for freeflyer_avionics (firmware) improvements.
- Smarter management of propulsion modules.
- Support for Software/Firmware Upgrade, EMI and Network tests.

### Fixed from previous release
- Fixed linear / angular acceleration limits in holonomic mode.
- Fixed keep in and keep out zone checking.
- DDS hanging on exit.

### Limitations
- Granite simulation not functional.
- The GS Manager Stub does not support yet all Android functionalities
- Some performance limitations with multiple robots.
- Some performance trouble with mobility on one computer.

## Release 0.3.2

The previous hotfix updated the debians, but did not update the version numbers of which
Expand Down
Loading

0 comments on commit 7792ab8

Please sign in to comment.