* Updated instructions to include git submodules

* Directory name

* Added release and updated links

* Remove robotiq

* Robotiq submodule, third party notice

* Tensorboard.md link

* Tensorboard readme update

* Specify BSD 2-clause
This commit is contained in:
Amanda 2021-02-19 14:22:59 -07:00 коммит произвёл GitHub
Родитель 132cb818b5
Коммит b386fdaabf
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
16 изменённых файлов: 72 добавлений и 126 удалений

2
.gitignore поставляемый
Просмотреть файл

@ -3,3 +3,5 @@
.idea
.vscode/
.vsconfig
ROS/src/ur3_moveit/models

7
.gitmodules поставляемый
Просмотреть файл

@ -1,6 +1,3 @@
[submodule "ROS/src/robotiq"]
path = ROS/src/robotiq
url = https://github.com/ros-industrial/robotiq.git
[submodule "ROS/src/universal_robot"]
path = ROS/src/universal_robot
url = https://github.com/ros-industrial/universal_robot
@ -10,3 +7,7 @@
[submodule "ROS/src/ros_tcp_endpoint"]
path = ROS/src/ros_tcp_endpoint
url = https://github.com/Unity-Technologies/ROS-TCP-Endpoint.git
[submodule "ROS/src/robotiq"]
path = ROS/src/robotiq
url = https://github.com/JStech/robotiq.git
branch = noetic-mods

Просмотреть файл

@ -2,7 +2,7 @@
This page provides steps on how to manually set up a catkin workspace for the Pose Estimation tutorial.
1. Navigate to the `object_pose_estimation/` directory of this downloaded repository. This directory will be used as the ROS catkin workspace.
1. Navigate to the root `Object-Pose-Estimation/` directory of this downloaded repository. This directory will be used as the ROS catkin workspace.
2. Copy or download this directory to your ROS operating system if you are doing ROS operations in another machine, VM, or container.

Просмотреть файл

@ -16,18 +16,14 @@ In this first part of the tutorial, we will start by downloading and installing
To follow this tutorial you need to **clone** this repository even if you want to create your Unity project from scratch.
>Note: This project uses Git Submodules to grab the ROS package dependencies for the [`universal_robot`](https://github.com/ros-industrial/universal_robot), [`moveit_msgs`](https://github.com/ros-planning/moveit_msgs), [`ros_tcp_endpoint`](https://github.com/Unity-Technologies/ROS-TCP-Endpoint), and the [`robotiq`](https://github.com/JStech/robotiq/tree/noetic-mods) folders.
>Note: The [`ros-industrial/robotiq`](https://github.com/ros-industrial/robotiq) repository does not currently support ROS Noetic. The [`JSTech/robotiq#noetic-mods`](https://github.com/JStech/robotiq/tree/noetic-mods) fork, which has been updated to use ROS Noetic, is used instead.
> Note For Windows users: You need to have a software enabling you to run bash files. One option is to download [GIT](https://git-scm.com/downloads). During installation of GIT, add GIT Bash to windows context menu by selecting its option. After installation, right click in your folder, and select [GIT Bash Here](Images/0_GIT_installed.png).
1. Open a terminal and put yourself where you want to host the repository.
```bash
git clone https://github.com/Unity-Technologies/Unity-Robotics-Hub.git
```
Then we need to be in the `Unity-Robotics-Hub/tutorials/object_pose_estimation` folder and generate the contents of the `universal_robot`, `moveit_msgs`, `ros_tcp_endpoint`, and the `robotiq` folders.
```bash
cd Unity-Robotics-Hub/tutorials/object_pose_estimation
./submodule.sh
git clone --recurse-submodules https://github.com/Unity-Technologies/Object-Pose-Estimation.git
```
2. [Install Unity `2020.2.*`.](install_unity.md)
@ -129,7 +125,7 @@ As seen above, the new Scene already contains a camera (`Main Camera`) and a lig
#### Adding Tutorial Files
Now it is time to add some more objects to our scene. Before doing so, we need to import some folders containing the required assets.
4. Download [TutorialAssets.zip](https://github.com/Unity-Technologies/Unity-Robotics-Hub/releases/download/Pose-Estimation/TutorialAssets.zip), and unzip it. It should contain the following subfolders: `Materials`, `Prefabs`, `RosMessages`, `Scripts`, `URDFs`.
4. Download [TutorialAssets.zip](https://github.com/Unity-Technologies/Object-Pose-Estimation/releases/download/v0.0.1/TutorialAssets.zip), and unzip it. It should contain the following subfolders: `Materials`, `Prefabs`, `RosMessages`, `Scripts`, `URDFs`.
5. Drag and Drop the `TutorialAssets` folder onto the `Assets` folder in the _**Project**_ tab.

Просмотреть файл

@ -60,7 +60,7 @@ Now its time to train our deep learning model! We've provided the model training
This step can take a long time if your computer doesn't have GPU support (~5 days on CPU). Even with a GPU, it can take around ~10 hours. We have provided an already trained model as an alternative to waiting for training to complete. If you would like to use this provided model, you can proceed to [Part 4](4_pick_and_place.md).
1. Navigate to the `tutorials/object_pose_estimation/Model` directory.
1. Navigate to the `Object-Pose-Estimation/Model` directory.
### Requirements
@ -110,7 +110,7 @@ log_dir_system: /Users/jonathan.leban/Documents/models
### Training the model
Now its time to train our deep learning model!
6. If you are not already in the `tutorials/object_pose_estimation/Model` directory, navigate there.
6. If you are not already in the `Object-Pose-Estimation/Model` directory, navigate there.
7. Enter the following command to start training:
```bash
@ -122,7 +122,7 @@ python -m pose_estimation.cli train
>Note: If the training process ends unexpectedly, check the [Troubleshooting Guide](troubleshooting.md) for potential solutions.
### Visualizing Training Results with Tensorboard
If you'd like to examine the results of your training run in more detail, see our guide on [viewing the Tensorboard logs](tensorboard.md).
If you'd like to examine the results of your training run in more detail, see our guide on [viewing the Tensorboard logs](../Model/documentation/tensorboard.md).
### Evaluating the Model
Once training has completed, we can also run our model on our validation dataset to measure its performance on data it has never seen before.
@ -131,7 +131,7 @@ However, first we need to specify a few settings in our config file.
8. In [config.yaml](../Model/config.yaml), under `checkpoint`, you need to set the argument `log_dir_checkpoint` to the path where you have saved your newly trained model.
9. If you are not already in the `tutorials/object_pose_estimation/Model` directory, navigate there.
9. If you are not already in the `Object-Pose-Estimation/Model` directory, navigate there.
10. To start the evaluation run, enter the following command:
```bash

Просмотреть файл

@ -25,21 +25,13 @@ In this part, we will use our trained deep learning model to predict the pose of
### <a name="setup">Set up</a>
If you have correctly followed parts 1 and 2, whether or not you choose to use the Unity project given by us or start it from scratch, you should have cloned the repository.
>Note: If you cloned the project and forgot to use `--recurse-submodules`, or if any submodule in this directory doesn't have content (e.g. moveit_msgs or ros_tcp_endpoint), you can run the following command to grab the Git submodules. But before you need to be in the `object_pose_estimation` folder.
>Note: This project uses Git Submodules to grab the ROS package dependencies for the [`universal_robot`](https://github.com/ros-industrial/universal_robot), [`moveit_msgs`](https://github.com/ros-planning/moveit_msgs), [`ros_tcp_endpoint`](https://github.com/Unity-Technologies/ROS-TCP-Endpoint), and the [`robotiq`](https://github.com/JStech/robotiq/tree/noetic-mods)) folders. If you cloned the project and forgot to use `--recurse-submodules`, or if any submodule in this directory doesn't have content (e.g. moveit_msgs or ros_tcp_endpoint), you can run the following command to grab the Git submodules.
> ```bash
>cd /PATH/TO/Unity-Robotics-Hub/tutorials/object_pose_estimation &&
> cd /PATH/TO/Object-Pose-Estimation &&
> git submodule update --init --recursive
> ```
Three package dependencies for this project, [Universal Robot](https://github.com/ros-industrial/universal_robot) for the UR3 arm configurations, [Robotiq](https://github.com/ros-industrial/robotiq) for the gripper, and [MoveIt Msgs](https://github.com/ros-planning/moveit_msgs) are large repositories. A bash script has been provided to run a sparse clone to only copy the files required for this tutorial, as well as the [ROS TCP Endpoint](https://github.com/Unity-Technologies/ROS-TCP-Endpoint/).
1. Open a terminal and go to the directory of the `object_pose_estimation` folder. Then run:
```bash
./submodule.sh
```
In your `object_pose_estimation` folder, you should have a `ROS` folder. Inside that folder you should have a `src` folder and inside that one 5 folders: `moveit_msgs`, `robotiq`, `ros_tcp_endpoint`, `universal_robot` and `ur3_moveit`.
In your ROS/src folder, you should now have five subdirectories: `moveit_msgs`, `robotiq`, `ros_tcp_endpoint`, `universal_robot` and `ur3_moveit`.
### <a name="step-2">Adding the Pose Estimation Model</a>
@ -47,7 +39,7 @@ Here you have two options for the model:
#### Option A: Use Our Pre-trained Model
1. To save time, you may use the model we have trained. Download this [UR3_single_cube_model.tar](https://github.com/Unity-Technologies/Unity-Robotics-Hub/releases/download/Pose-Estimation/UR3_single_cube_model.tar) file, which contains the pre-trained model weights.
1. To save time, you may use the model we have trained. Download this [UR3_single_cube_model.tar](https://github.com/Unity-Technologies/Object-Pose-Estimation/releases/download/v0.0.1/UR3_single_cube_model.tar) file, which contains the pre-trained model weights.
#### Option B: Use Your Own Model
@ -71,7 +63,7 @@ Building this Docker container will install the necessary packages for this tuto
<img src="Images/4_docker_daemon.png" height=500/>
</p>
2. In the terminal, ensure the current location is at the root of the `object_pose_estimation` directory. Build the provided ROS Docker image as follows:
2. In the terminal, ensure the current location is at the root of the `Object-Pose-Estimation` directory. Build the provided ROS Docker image as follows:
```bash
docker build -t unity-robotics:pose-estimation -f docker/Dockerfile .
@ -98,7 +90,7 @@ source devel/setup.bash
The ROS workspace is now ready to accept commands!
>Note: The Docker-related files (Dockerfile, bash scripts for setup) are located in `PATH-TO-object_pose_estimation/docker`.
>Note: The Docker-related files (Dockerfile, bash scripts for setup) are located in `Object-Pose-Estimation/docker`.
---

Просмотреть файл

@ -17,28 +17,16 @@ If you just want to run the completed project, this section can help you get up
You will first need to **clone** this repository.
>Note For Windows Users:
You need to have a software enabling you to run bash files. One option is to download [GIT](https://git-scm.com/downloads). During installation of GIT, add GIT Bash to windows context menu by selecting its option. After installation right click in your folder select [GIT Bash Here](Images/0_GIT_installed.png).
1. Open a terminal and put yourself where you want to host the repository.
```bash
git clone https://github.com/Unity-Technologies/Unity-Robotics-Hub.git
git clone --recurse-submodules https://github.com/Unity-Technologies/Object-Pose-Estimation.git
```
Three package dependencies for this project, [Universal Robot](https://github.com/ros-industrial/universal_robot) for the UR3 arm configurations, [Robotiq](https://github.com/ros-industrial/robotiq) for the gripper, and [MoveIt Msgs](https://github.com/ros-planning/moveit_msgs) are large repositories. A bash script has been provided to run a sparse clone to only copy the files required for this tutorial, as well as the [ROS TCP Endpoint](https://github.com/Unity-Technologies/ROS-TCP-Endpoint/).
2. Still in the same terminal, run:
```bash
cd Unity-Robotics-Hub/tutorials/object_pose_estimation
./submodule.sh
```
3. [Install Unity `2020.2.*`.](install_unity.md)
2. [Install Unity `2020.2.*`.](install_unity.md)
## <a name='setup'>Setup</a>
1. Open the completed project. In the Unity Hub, click the `Add` button, and select `tutorials/object_pose_estimation/PoseEstimationDemoProject` from inside the file location where you cloned this repo.
1. Open the completed project. In the Unity Hub, click the `Add` button, and select `Object-Pose-Estimation/PoseEstimationDemoProject` from inside the file location where you cloned this repo.
2. Open the scene. Go to `Assets > Scenes` and double click on `TutorialPoseEstimation`.
@ -50,9 +38,9 @@ cd Unity-Robotics-Hub/tutorials/object_pose_estimation
## Add the Pose Estimation Model
In your `object_pose_estimation` folder, you should have a `ROS` folder. Inside that folder you should have a `src` folder and inside that one 5 folders: `moveit_msgs`, `robotiq`, `ros_tcp_endpoint`, `universal_robot` and `ur3_moveit`.
In your root `Object-Pose-Estimation` folder, you should have a `ROS` folder. Inside that folder you should have a `src` folder and inside that one 5 folders: `moveit_msgs`, `robotiq`, `ros_tcp_endpoint`, `universal_robot` and `ur3_moveit`.
1. Download the [pose estimation model](https://github.com/Unity-Technologies/Unity-Robotics-Hub/releases/download/Pose-Estimation/UR3_single_cube_model.tar) we have trained.
1. Download the [pose estimation model](https://github.com/Unity-Technologies/Object-Pose-Estimation/releases/download/v0.0.1/UR3_single_cube_model.tar) we have trained.
2. Go inside the `ROS/SRC/ur3_moveit` folder and create a folder `models`. Copy the `UR3_single_cube_model.tar` file you've just downloaded into this folder.
@ -69,7 +57,7 @@ We have provided a Docker container to get you up and running quickly.
<img src="Images/4_docker_daemon.png" height=400/>
</p>
2. In the terminal, ensure the current location is at the root of the `object_pose_estimation` directory. Build the provided ROS Docker image as follows:
2. In the terminal, ensure the current location is at the root of the `Object-Pose-Estimation` directory. Build the provided ROS Docker image as follows:
```bash
docker build -t unity-robotics:pose-estimation -f docker/Dockerfile .

Просмотреть файл

@ -14,18 +14,14 @@ To learn how to build something like this from scratch, see [Part 1](1_set_up_th
To follow this tutorial you need to **clone** this repository even if you want to create your Unity project from scratch.
>Note For Windows Users:
You need to have a software enabling you to run bash files. One option is to download [GIT](https://git-scm.com/downloads). During installation of GIT, add GIT Bash to windows context menu by selecting its option. After installation right click in your folder select [GIT Bash Here](Images/0_GIT_installed.png).
1. Open a terminal and put yourself where you want to host the repository.
```bash
git clone https://github.com/Unity-Technologies/Unity-Robotics-Hub.git
git clone --recurse-submodules https://github.com/Unity-Technologies/Object-Pose-Estimation.git
```
2. [Install Unity `2020.2.*`.](install_unity.md)
3. Open the completed project. To do so, open Unity Hub, click the `Add` button, and select `PoseEstimationDemoProject` from the `Unity-Robotics-Hub/tutorials/object_pose_estimation/` folder.
3. Open the completed project. To do so, open Unity Hub, click the `Add` button, and select `PoseEstimationDemoProject` from the root `Object-Pose-Estimation` folder.
## <a name='setup'>Setup</a>

Просмотреть файл

@ -60,7 +60,7 @@
</p>
### Docker, ROS-TCP Connection
- Building the Docker image may throw an `Could not find a package configuration file provided by...` exception if one or more of the directories in ROS/ appears empty. Ensure you have run the `submodule.sh` script to populate the ROS packages.
- Building the Docker image may throw an `Could not find a package configuration file provided by...` exception if one or more of the directories in ROS/ appears empty. This project uses Git Submodules to grab the ROS package dependencies. If you cloned the project and forgot to use `--recurse-submodules`, or if any submodule in this directory doesn't have content, you can run the `git submodule update --init --recursive` to grab the Git submodules.
- `...failed because unknown error handler name 'rosmsg'` This is due to a bug in an outdated package version. Try running `sudo apt-get update && sudo apt-get upgrade` to upgrade packages.
- `Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?` The system-independent `docker info` command can verify whether or not Docker is running. This command will throw a `Server: ERROR` if the Docker daemon is not currently running, and will print the appropriate [system-wide information](https://docs.docker.com/engine/reference/commandline/info/) otherwise.
- Occasionally, not having enough memory allocated to the Docker container can cause the `server_endpoint` to fail. This may cause unexpected behavior during the pick-and-place task, such as constantly predicting the same pose. If this occurs, check your Docker settings. You may need to increase the `Memory` to 8GB.

Просмотреть файл

@ -12,7 +12,7 @@ This model is a modified implementation of [Domain Randomization for Transferrin
We trained this model on sythetic data collected in Unity. To learn how to collect this data and train the model yourself, see our [data collection and training tutorial](../Documentation/quick_demo_train.md).
## Pre-Trained Model
We've provided a pre-trained model, which can be downloaded [here](https://github.com/Unity-Technologies/Unity-Robotics-Hub/releases/download/Pose-Estimation/UR3_single_cube_model.tar).
We've provided a pre-trained model, which can be downloaded [here](https://github.com/Unity-Technologies/Object-Pose-Estimation/releases/download/v0.0.1/UR3_single_cube_model.tar).
## Setup
* [For running on docker](documentation/running_on_docker.md#docker-requirements)

Просмотреть файл

@ -21,7 +21,7 @@ Before creating the Docker image, you need to be sure your Docker settings are c
The first step is to build the Docker image.
* **Action**: Open a new terminal and navigate to the `Unity-Robotics-Hub/tutorials/object_pose_estimation/Model` folder. Then run the command to build your docker image, and name it `pose_estimation`:
* **Action**: Open a new terminal and navigate to the `Object-Pose-Estimation/Model` folder. Then run the command to build your docker image, and name it `pose_estimation`:
```bash
docker build -t pose_estimation .
```

Просмотреть файл

@ -9,7 +9,7 @@ tensorboard --logdir=[LOG DIRECTORY]
You should see something similar to this:
<p align="center">
<img src="Images/3_tensorboard.png" height=40/>
<img src="../../Documentation/Images/3_tensorboard.png" height=40/>
</p>
The result of this command will show you the port on which Tensorboard is now available. In the example above, it can be found at port `6006`.
@ -21,7 +21,7 @@ localhost:[PORT_NUMBER]
Once you navigate to that location in your browser, you should see something like this:
<p align="center">
<img src="Images/3_performance_model.png"/>
<img src="../../Documentation/Images/3_performance_model.png"/>
</p>
These charts show the changing loss during the training process. The training and validation losses are the mean squared errors for position and orientation on the training and validation data sets, respectively. During training, the loss is generally expected to go down, but as you can see here, it can be noisy. If you'd like to learn more about the model, you can explore its code [here](../Model).

@ -1 +1 @@
Subproject commit 66961ec6b6c9c493f13410d16ce32cea1648babf
Subproject commit 1e744f1870cdf9f8ba5a6ba244149a2d94d67e9d

30
Third Party Notices.md Normal file
Просмотреть файл

@ -0,0 +1,30 @@
Component Name: ROS-Industrial Robotiq Package (JStech/robotiq) (forked from ros-industrial/robotiq) <br/>
License Type: BSD 2-clause<br/>
```
Copyright (c) 2013, ROS-Industrial
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.
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.
```

Просмотреть файл

@ -1,35 +1,11 @@
FROM ros:noetic-ros-base
RUN sudo apt-get update && sudo apt-get install -y vim iputils-ping net-tools python3-pip ros-noetic-robot-state-publisher ros-noetic-moveit ros-noetic-rosbridge-suite ros-noetic-joy ros-noetic-ros-control ros-noetic-ros-controllers ros-noetic-tf* ros-noetic-gazebo-ros-pkgs ros-noetic-joint-state-publisher dos2unix git
RUN sudo apt-get update && sudo apt-get install -y vim iputils-ping net-tools python3-pip ros-noetic-robot-state-publisher ros-noetic-moveit ros-noetic-rosbridge-suite ros-noetic-joy ros-noetic-ros-control ros-noetic-ros-controllers ros-noetic-tf* ros-noetic-gazebo-ros-pkgs ros-noetic-joint-state-publisher ros-noetic-soem ros-noetic-ros-canopen dos2unix git
RUN sudo -H pip3 --no-cache-dir install rospkg numpy jsonpickle scipy easydict torch==1.7.1+cu101 torchvision==0.8.2+cu101 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html
ENV ROS_WORKSPACE=/catkin_ws
# Robotiq repository https://github.com/ros-industrial/robotiq.git
RUN git init $ROS_WORKSPACE/src/robotiq
WORKDIR $ROS_WORKSPACE/src/robotiq
RUN git remote add origin https://github.com/ros-industrial/robotiq.git
RUN git config core.sparseCheckout true
RUN echo "robotiq_2f_140_gripper_visualization/*" >> .git/info/sparse-checkout
RUN echo "LICENSE" >> .git/info/sparse-checkout
RUN echo ".gitignore" >> .git/info/sparse-checkout
RUN echo "CONTRIBUTING.md" >> .git/info/sparse-checkout
RUN echo ".travis.yml" >> .git/info/sparse-checkout
RUN git pull --depth=1 origin kinetic-devel
# Universal Robot repository https://github.com/ros-industrial/universal_robot
RUN git init $ROS_WORKSPACE/src/universal_robot
WORKDIR $ROS_WORKSPACE/src/universal_robot
RUN git remote add origin https://github.com/ros-industrial/universal_robot
RUN git config core.sparseCheckout true
RUN echo "ur_description/*" >> .git/info/sparse-checkout
RUN echo "ur_gazebo/*" >> .git/info/sparse-checkout
RUN echo ".gitignore" >> .git/info/sparse-checkout
RUN echo "CONTRIBUTING.md" >> .git/info/sparse-checkout
RUN echo ".travis.yml" >> .git/info/sparse-checkout
RUN git pull --depth=1 origin melodic-devel
WORKDIR $ROS_WORKSPACE
# Copy each directory explicitly to avoid workspace cruft

Просмотреть файл

@ -1,35 +0,0 @@
#!/bin/bash
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
# ros_tcp_endpoint repository https://github.com/Unity-Technologies/ROS-TCP-Endpoint.git
cd $DIR/ROS/src
git clone -b main https://github.com/Unity-Technologies/ROS-TCP-Endpoint.git ros_tcp_endpoint
# moveit_msgs repository https://github.com/ros-planning/moveit_msgs.git
cd $DIR/ROS/src
git clone https://github.com/ros-planning/moveit_msgs.git
# Robotiq repository https://github.com/ros-industrial/robotiq.git
git init $DIR/ROS/src/robotiq
cd $DIR/ROS/src/robotiq
git remote add origin https://github.com/ros-industrial/robotiq.git
git config core.sparseCheckout true
echo "robotiq_2f_140_gripper_visualization/*" >> .git/info/sparse-checkout
echo "LICENSE" >> .git/info/sparse-checkout
echo ".gitignore" >> .git/info/sparse-checkout
echo "CONTRIBUTING.md" >> .git/info/sparse-checkout
echo ".travis.yml" >> .git/info/sparse-checkout
git pull --depth=1 origin kinetic-devel
# Universal Robot repository https://github.com/ros-industrial/universal_robot
git init $DIR/ROS/src/universal_robot
cd $DIR/ROS/src/universal_robot
git remote add origin https://github.com/ros-industrial/universal_robot
git config core.sparseCheckout true
echo "ur_description/*" >> .git/info/sparse-checkout
echo "ur_gazebo/*" >> .git/info/sparse-checkout
echo ".gitignore" >> .git/info/sparse-checkout
echo "CONTRIBUTING.md" >> .git/info/sparse-checkout
echo ".travis.yml" >> .git/info/sparse-checkout
git pull --depth=1 origin melodic-devel