-
Notifications
You must be signed in to change notification settings - Fork 51
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #27 from moriarty/fetch-binary-drivers
[fetch_binary_drivers] new [fetch_drivers] package
- Loading branch information
Showing
34 changed files
with
790 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
build | ||
*.tar.gz | ||
*.so | ||
|
||
# system config; these are all files generated by dpkg-buildpackage | ||
*.deb | ||
*.debhelper | ||
*.substvars | ||
*.log | ||
*.dsc | ||
*.changes | ||
fetch-melodic-config | ||
freight-melodic-config | ||
files |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,98 @@ | ||
cmake_minimum_required(VERSION 3.5) | ||
project(fetch_drivers) | ||
|
||
### | ||
# | ||
# This is the public version of fetch_drivers. | ||
# | ||
# This is a binary only release of our dirvers and firmware. | ||
# The drivers and firmware have been compiled for our research robots, inside of Docker containers on our TeamCity build servers. | ||
# | ||
# The resulting output of that build job a tar.gz, where the build job should only copy in what is required for the research robots. | ||
# This public repository, just pulls in that tar.gz and extracts installs it into ROS/catkin paths. | ||
## | ||
|
||
find_package(catkin REQUIRED | ||
COMPONENTS | ||
mk | ||
) | ||
|
||
## System dependencies are found with CMake's conventions | ||
find_package(Boost REQUIRED | ||
COMPONENTS | ||
chrono | ||
filesystem | ||
program_options | ||
regex | ||
system | ||
thread | ||
) | ||
find_package(CURL REQUIRED) | ||
find_package(PythonLibs REQUIRED) | ||
find_package(yaml-cpp REQUIRED) | ||
|
||
add_custom_target( | ||
binary_driver ALL | ||
COMMAND cmake -E chdir ${PROJECT_SOURCE_DIR} $(MAKE) -f Makefile.tarball | ||
COMMAND cmake -E make_directory ${CATKIN_DEVEL_PREFIX}/${CATKIN_GLOBAL_LIB_DESTINATION}/${PROJECT_NAME} | ||
COMMAND cmake -E copy_if_different ${PROJECT_SOURCE_DIR}/build/output/lib/libfetch_drivers.so ${CATKIN_DEVEL_PREFIX}/${CATKIN_GLOBAL_LIB_DESTINATION}/libfetch_drivers.so | ||
COMMAND cmake -E copy_if_different ${PROJECT_SOURCE_DIR}/build/output/lib/libfetch_drivers_odva.so ${CATKIN_DEVEL_PREFIX}/${CATKIN_GLOBAL_LIB_DESTINATION}/libfetch_drivers_odva.so | ||
COMMAND cmake -E copy ${PROJECT_SOURCE_DIR}/build/output/lib/${PROJECT_NAME}/* ${CATKIN_DEVEL_PREFIX}/${CATKIN_GLOBAL_LIB_DESTINATION}/${PROJECT_NAME}/ | ||
COMMAND cmake -E make_directory ${CATKIN_DEVEL_PREFIX}/${CATKIN_GLOBAL_SHARE_DESTINATION}/${PROJECT_NAME} | ||
COMMAND cmake -E copy_if_different ${PROJECT_SOURCE_DIR}/build/output/share/${PROJECT_NAME}/firmware.tar.gz ${CATKIN_DEVEL_PREFIX}/${CATKIN_GLOBAL_SHARE_DESTINATION}/${PROJECT_NAME}/ | ||
) | ||
|
||
################################### | ||
## catkin specific configuration ## | ||
################################### | ||
## The catkin_package macro generates cmake config files for your package | ||
## Declare things to be passed to dependent projects | ||
## LIBRARIES: libraries you create in this project that dependent projects also need | ||
## CATKIN_DEPENDS: catkin_packages dependent projects also need | ||
## DEPENDS: system dependencies of this project that dependent projects also need | ||
catkin_package( | ||
LIBRARIES fetch_drivers | ||
CATKIN_DEPENDS | ||
actionlib | ||
actionlib_msgs | ||
diagnostic_msgs | ||
fetch_driver_msgs | ||
fetch_auto_dock_msgs | ||
nav_msgs | ||
power_msgs | ||
robot_calibration_msgs | ||
roscpp | ||
sensor_msgs | ||
DEPENDS | ||
Boost | ||
CURL | ||
PYTHON | ||
YAML_CPP | ||
) | ||
|
||
########### | ||
## Build ## | ||
########### | ||
|
||
############# | ||
## Install ## | ||
############# | ||
|
||
install( | ||
FILES build/output/lib/libfetch_drivers.so build/output/lib/libfetch_drivers_odva.so | ||
DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} | ||
) | ||
|
||
install( | ||
DIRECTORY build/output/lib/fetch_drivers | ||
DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} | ||
PATTERN "build/output/lib/fetch_drivers/*" | ||
PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ | ||
GROUP_EXECUTE GROUP_READ | ||
WORLD_EXECUTE WORLD_READ | ||
) | ||
|
||
install( | ||
FILES build/output/share/${PROJECT_NAME}/firmware.tar.gz build/output/share/${PROJECT_NAME}/laser_filters.xml | ||
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
all: binary_driver | ||
|
||
# TODO: There are some more things to automate. | ||
DRIVER_VERSION = 0.8.0 | ||
TARBALL = build/fetch-drivers-0.8.0.tar.gz | ||
TARBALL_URL = http://packages.fetchrobotics.com/binaries/fetch-drivers-0.8.0.tar.gz | ||
SOURCE_DIR = build/output | ||
MD5SUM_FILE = fetch-drivers-0.8.0.tar.gz.md5sum | ||
UNPACK_CMD = tar zxvf | ||
include $(shell rospack find mk)/download_unpack_build.mk | ||
|
||
binary_driver: $(SOURCE_DIR)/unpacked | ||
echo "binary driver built in: " $(SOURCE_DIR) | ||
|
||
clean: | ||
-rm -rf $(SOURCE_DIR) | ||
|
||
wipe: clean | ||
-rm -rf build |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
# Fetch Binary Drivers | ||
|
||
This is a public binary version of our drivers and firmware for the Fetch Research Platforms. | ||
|
||
https://fetchrobotics.com/robotics-platforms/ | ||
|
||
We have two Fetch Research Platforms. Commonly known as Fetch and Freight. Fetch is the one with the arm. | ||
The drivers and firmware in this package are for both. | ||
|
||
https://docs.fetchrobotics.com/ | ||
|
||
# Fetch Drivers | ||
|
||
The catkin package inside of this folder is called `fetch_drivers`, not `fetch_binary_drivers`. | ||
This is because we've previously been releasing packages which depend on `fetch_drivers`. | ||
We're just changing how we distribute our drivers. | ||
|
||
# About | ||
|
||
This package should only be needed if you're using one of the Fetch Research Platforms. | ||
|
||
Our goal is to better support our our Fetch Research Platform customers through an improved, more automated build and release process. This will get enable us to get updates out faster. | ||
|
||
We discussed at [ROSCon 2018](https://roscon.ros.org/2018/) in a talk "Hermetic Robot Deployment Using Multi-Stage Dockers" | ||
by @levavakian & @bluryi some of our internal way of doing build/test/deployment using Docker: | ||
[Video](https://vimeo.com/293626218), | ||
[Slides](https://roscon.ros.org/2018/presentations/ROSCon2018_multistage_docker_for_robot_deployment.pdf). | ||
|
||
This public repository, is designed to consume the output of our private `fetch_drivers` repository and enable | ||
Fetch Research Platform users access to the drivers/firmware faster via the official ros packages. | ||
|
||
To create the output of our private package, we have a special build job which runs inside of a docker container to ensure we don't accidentally | ||
pull in any private dependencies, and also doesn't output any of the additional commercial robot drivers. | ||
|
||
Previously, we built our drivers on a private buildbot, and hosted them on our own packages site. | ||
We also had a manually synced mirror of the ros packages. This allowed us to ensure we tested the versions of dependancies which were on our mirror. | ||
The old process was not as automated as we would like. | ||
|
||
We're in the process of testing ROS Melodic, and setting up our hosted stable mirror, and documenting the upgrade process to ensure Fetch Research Platform customers have a smooth transition. | ||
|
||
We will announce to our customers when we're officially ready and supporting ROS Melodic. | ||
|
||
See https://docs.fetchrobotics.com for more information. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
1d283854b2406e1945319a57e660c5ec /tmp/fetch-drivers-0.8.0.tar.gz |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
<?xml version="1.0"?> | ||
<package format="2"> | ||
<name>fetch_drivers</name> | ||
<version>0.0.0</version> | ||
<description> | ||
The public fetch_drivers package is a binary only release. | ||
|
||
fetch_drivers contains both the drivers and firmware for the fetch and freight research robots. | ||
There should be no reason to use these drivers unless you're running on a fetch or a freight research robot. | ||
This package, is a cmake/make only package which installs the binaries for the drivers and firmware. | ||
</description> | ||
|
||
<!-- One maintainer tag required, multiple allowed, one person per tag --> | ||
<maintainer email="[email protected]">Alexander Moriarty</maintainer> | ||
<maintainer email="[email protected]">Fetch Robotics Open Source Team</maintainer> | ||
|
||
<!-- One license tag required, multiple allowed, one license per tag --> | ||
<license>Proprietary</license> | ||
|
||
|
||
<!-- Url tags are optional, but multiple are allowed, one per tag --> | ||
<url type="website">https://wiki.ros.org/fetch_drivers</url> | ||
<url type="docs">https://docs.fetchrobotics.com</url> | ||
<url type="info">https://fetchrobotics.com/robotics-platforms/</url> | ||
|
||
|
||
<!-- Author tags are optional, multiple are allowed, one per tag --> | ||
<author email="[email protected]">Alexander Moriarty</author> | ||
|
||
|
||
<buildtool_depend>catkin</buildtool_depend> | ||
|
||
<!-- mk is actually the only build time depend; it just pulls down a the compiled objects. --> | ||
<build_depend>mk</build_depend> | ||
|
||
<!-- system dependencies which the drivers dyanmically link against --> | ||
<exec_depend>boost</exec_depend> | ||
<exec_depend>curl</exec_depend> | ||
<exec_depend>python</exec_depend> | ||
<exec_depend>yaml-cpp</exec_depend> | ||
|
||
<!-- ros msgs which the drivers depend on --> | ||
<exec_depend>actionlib_msgs</exec_depend> | ||
<exec_depend>diagnostic_msgs</exec_depend> | ||
<exec_depend>fetch_driver_msgs</exec_depend> | ||
<exec_depend>fetch_auto_dock_msgs</exec_depend> | ||
<exec_depend>nav_msgs</exec_depend> | ||
<exec_depend>power_msgs</exec_depend> | ||
<exec_depend>robot_calibration_msgs</exec_depend> | ||
<exec_depend>sensor_msgs</exec_depend> | ||
|
||
<!-- ros dependencies which the drivers dynamically link against --> | ||
<exec_depend>actionlib</exec_depend> | ||
<exec_depend>robot_controllers</exec_depend> | ||
<exec_depend>robot_controllers_interface</exec_depend> | ||
<exec_depend>rosconsole</exec_depend> | ||
<exec_depend>roscpp_serialization</exec_depend> | ||
<exec_depend>roscpp</exec_depend> | ||
<exec_depend>rostime</exec_depend> | ||
<exec_depend>urdf</exec_depend> | ||
|
||
<!-- The export tag contains other, unspecified, tags --> | ||
<export> | ||
<!-- Other tools can request additional information be placed here --> | ||
</export> | ||
</package> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
# Fetch System Config | ||
|
||
This is the Git Build Package (GBP) repo for Research versions of Fetch/Freight. | ||
All other tools (iso installer, documentation, etc), and the commercial version | ||
of this package, are on the 'master' branch. | ||
|
||
# How to Manually Build | ||
|
||
```bash | ||
git clone [email protected]:fetchrobotics/fetch_ros.git # -b melodic-devel | ||
cd fetch_ros/fetch_system_config | ||
dpkg-buildpackage -us -uc | ||
# Debians are placed in the parent directory | ||
cd .. | ||
ls *system*.deb | ||
``` | ||
|
||
# TODO: catkin/standardize | ||
|
||
This isn't a GBP anymore, it will be published to: | ||
|
||
https://github.com/fetchrobotics-gbp/fetch_robots-release |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
fetch-system-config (0.1-0) bionic; urgency=medium | ||
|
||
* initial release of melodic packages | ||
|
||
-- Eric Relson <[email protected]> Fri, 01 Feb 2019 10:50:25 -0800 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
9 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
Source: fetch-system-config | ||
Section: main | ||
Priority: optional | ||
Maintainer: Eric Relson <[email protected]> | ||
Build-Depends: debhelper (>= 9.0.0), | ||
dh-systemd (>= 1.5) | ||
Standards-Version: 3.9.4 | ||
Homepage: www.fetchrobotics.com | ||
|
||
Package: fetch-melodic-config | ||
Architecture: any | ||
Depends: ${misc:Depends}, | ||
adduser, | ||
chrony, | ||
openssh-server, | ||
ros-melodic-ros | ||
Description: Configuration for Fetch on Melodic | ||
This package will start ROS Melodic at bootup | ||
Conflicts: fetch-system-config, | ||
freight-melodic-config, | ||
freight-system-config | ||
|
||
Package: freight-melodic-config | ||
Architecture: any | ||
Depends: ${misc:Depends}, | ||
adduser, | ||
chrony, | ||
openssh-server, | ||
ros-melodic-ros | ||
Description: Configuration for Freight on Melodic | ||
This package will start ROS Melodic at bootup | ||
Conflicts: fetch-melodic-config, | ||
fetch-system-config, | ||
freight-system-config |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ | ||
|
||
Files: * | ||
Copyright: 2015-2018 Fetch Robotics Inc <[email protected]> | ||
2013 I Heart Engineering <[email protected]> | ||
License: BSD-3-clause | ||
Copyright (c) 2015-2018, Fetch Robotics Inc. | ||
Copyright (c) 2013, I Heart Engineering | ||
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 I Heart Engineering 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 OWNER 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 file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
README.md |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
root/* . |
Oops, something went wrong.