Giter VIP home page Giter VIP logo

ariac-docker's Introduction

ARIAC Automated Evaluation

This repository contains the setup that will be used to automatically evaluate teams' submission for the Agile Robotics for Industrial Automation Competition (ARIAC) hosted by the National Institute of Standards and Technology (NIST).

Overview

The setup that is created by the code in this repository is the setup that will be used for evaluating teams' systems automatically in the Qualifiers/Finals. There are two main components to the ARIAC competition setup: the ARIAC server, and the competitor's system. For security and reproducibility, the ARIAC server and the competitor's system are run in separate isolated environments called containers. Docker is used to create these containers.

Getting the code

Clone this code repository locally:

mkdir -p ~/ariac_ws && cd ~/ariac_ws
git clone https://github.com/osrf/ariac-docker
cd ~/ariac_ws/ariac-docker

Installing Docker

Please, follow these instructions and install Docker CE.

Continue to the post-install instructions and complete the "Manage Docker as a non-root user" section to avoid having to run the commands on this page using sudo.

Fetch the ARIAC system

To prepare the ARIAC competition system (but not run it), call:

./pull_dockerhub_images.bash

This will pull a Docker "images" of the latest version of the competition server and the base competitor machine image.

These will take a while to download.

Preparing the workspace

Team configuration files must be put into the team_config directory in a folder with the name of the team.

We have provided an example submission in the team_config directory of this repository. You should see that there is a directory called example_team that has the following configuration files in it:

$ ls team_config/example_team/
build_team_system.bash  run_team_system.bash    team_config.yaml

Together these files constitute a submission. The files are explained at https://bitbucket.org/osrf/ariac/wiki/2019/automated_evaluation We will work with the files of the example_team submission for this tutorial; you can use them as a template for your own team's submission.

Preparing a team's system

To prepare the example team's system (but not run it), call:

./prepare_team_system.bash example_team

# For your team you will run:
# ./prepare_team_system.bash <your_team_name>

This will build a Docker "image" of the example team's system built on top of the base competitor image, ready to be launched with the ARIAC competition server.

Running a single trial

To run an example trial (in this case the trial associated with trial_config/sample.yaml), call:

./run_trial.bash example_team sample

# For your team you will run:
# ./run_trial.bash <your_team_name> <trial_name>

This will instantiate Docker containers from the images that were prepared earlier: one for the ARIAC competition server, and one for your team's system. The ARIAC environment will be started using the competition configuration file associated with the trial name (i.e. trial_config/sample.yaml), and the user configuration file associated with the team name (i.e. example_team/team_config.yaml).

Note: The team's Docker container is started before the ARIAC competition server container. As such you might see the following message before the ARIAC server with the ROS master starts:

ERROR: Unable to communicate with Master.

Note: If you see the following warning, it is safe to ignore it.

[Wrn] [RenderEngine.cc:97] Unable to create X window. Rendering will be disabled

Once the trial has finished (because your system completed the trial, because you made a call to the /ariac/end_competition service, or because time ran out), the logs from the trial will be available in the logs directory that has now been created locally. In the above invocation, the example code will end the competition after ~20 seconds (errors being printed to the terminal as the trial shuts down are expected).

Reviewing the results of a trial

Reviewing the trial performance

Once the behavior observed when playing back the trial's log file looks correct, you should then check the completion score. To do so, open the relevant performance.log file (e.g. logs/example_team/sample/performance.log) and check the score output at the end of the file: it lists the scores for each order.

$ tail logs/example_team/sample/performance.log -n 25
(1518553810 6169392) [Dbg] [ROSAriacTaskManagerPlugin.cc:492] Sim time: 22
(1518553810 675725351) [Dbg] [ROSAriacTaskManagerPlugin.cc:717] Handle end service called
(1518553810 676916277) [Dbg] [ROSAriacTaskManagerPlugin.cc:579] End of trial. Final score: 0
Score breakdown:
<game_score>
Total game score: [0]
Total process time: [10.433]
Product travel time: [0]
<order_score order_0>
Total order score: [0]
Time taken: [10.432]
Complete: [false]
<shipment_score order_0_shipment_0>
Completion score: [0]
Complete: [false]
Submitted: [false]
Product presence score: [0]
All products bonus: [0]
Product pose score: [0]
</shipment_score>

</order_score>

</game_score>

In this example the score is 0 because the example team system does not actually complete any orders.

The general output structure of the logs directory is:

logs
└── example_team  # team name
    └── sample  # trial name
        ├── gazebo
        │   └── state.log  # gazebo state log file
        ├── generated  # the specific files generated by gear.py based on team/trial config files
        │   ├── gear.launch
        │   ├── gear.urdf.xacro
        │   └── gear.world
        ├── performance.log  # scoring log file
        ├── ros  # ROS logs copied from ARIAC server container
        │   └── rosout.log
        └── ros-competitor  # ROS logs copied from competitor container
            └── example_node-1-stdout.log

Additionally, there may be a video directory containing a video produced from playback of the simulation state log file recorded during the trial(s). The following properties are relevant:

  • Logs playback at a slower speed and therefore a 5 minute simulation may result in a 10-15 minute video. The simulation time is displayed in the bottom right.
  • Simulation time may jump forward a number of seconds if there is a length of time where no movement is detected in the simulation.
  • The log stops at the last time motion occurred, so log files may be shorter than expected if there is no motion.

Playing back the simulation

To play-back a specific trial's log file, you must have ARIAC installed on your machine, and then you can call:

roslaunch osrf_gear gear_playback.launch state_log_path:=`pwd`/logs/example_team/sample/gazebo/state.log

You should see the ARIAC environment start up with parts in the bins, and the robot be controlled briefly by the example code.

Note: this is currently only possible for user accounts with user ID of 1000.

Running all trials

Only one trial config file is provided at the moment; this command will be more useful in the future.

To run all trials listed in the trial_config directory, call:

./run_all_trials.bash example_team

# For your team you will run:
# ./run_all_trials.bash <your_team_name>

This will run each of the trials sequentially in an automated fashion. This is the invocation that will be used to test submissions for the Finals: your system will not be provided with any information about the trial number or the conditions of the trial. If your system performs correctly with this invocation, regardless of the set of configuration files in the trial_config directory, you're ready for the competition.

Development tips

Keeping the competition setup software up to date

New releases of the ARIAC software will be accompanied by new releases of the Docker images, so that the latest ARIAC version is installed in both the ARIAC competition server image and the base competitor image. Whenever there is a new release of the ARIAC software, or whenever you are informed of any other changes to the competition system setup, you will have to run git pull to get any recent modifications to the competition system setup, and re-run all scripts in order for the changes to take effect:

cd ~/ariac_ws/ariac-docker
# Get any changes to the scripts in this repo.
git pull
# Get the most recent Docker images.
./pull_dockerhub_images.bash
# Re-build your team's Docker image using the latest base competitor image.
./prepare_team_system.bash <your_team_name>

Stopping the competition/containers

If during your development you need to kill the ARIAC server/competitor containers, you can do so with:

./kill_ariac_containers.bash

This will kill and remove all ARIAC containers.

Utilizing the Docker cache to when re-building the competitor system

By default, runnng ./build_team_system.bash <your_team_name> will re-build the image from scratch. During development you may find it useful to call ./prepare_team_system.bash <your_team_name> --use-cache to re-use already-built image in the Docker cache if appropriate. However, new versions of packages may have been released since the images in the cache were built, and this will not trigger images to be re-built. Therefore you must not use this option when testing your finalized system for submission.

Investigating build issues

If you are having difficulties installing your team's system with the prepare_team_system script, you can open a terminal in a clean competitor container (before the script has been run) and see which commands you need to type manually to get your system installed.

First, run:

docker run -it --rm --name ariac-competitor-clean-system ariac/ariac3-competitor-base-melodic:latest

This will start a container with the state immediately before trying to run your build_team_system script. From inside this container, you can type all of the commands you need to install your code (you do not need to use sudo), then run history to get a list of the commands that you typed: that will be a good starting point for your build_team_system script. You may need to modify it slightly e.g. by adding -y to commands that otherwise prompt for user input, such as apt-get install -y ros-melodic-moveit-core.

Type exit to stop the container.

Investigating the contents of a running competitor container

Once your team's system has been successfully installed in the competitor container, if you are having difficulties running your team's system, you can open a terminal in the container that has your system installed with:

docker run -it --rm --name ariac-competitor-system ariac-competitor-<your_team_name>
# e.g. for example_team:
# docker run -it --rm --name ariac-competitor-system ariac-competitor-example_team

Inside the container you can look around with, for example:

ls ~/my_team_ws

Type exit to stop the container.

ariac-docker's People

Contributors

caguero avatar dhood avatar j-rivero avatar sloretz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ariac-docker's Issues

ROS Ubuntu Bionic: public key is not available

Problem

I am running on Ubuntu 18.04, and my docker build crashes at:

# setup keys and sources for official Gazebo and ROS debian packages
RUN apt-key adv --keyserver ha.pool.sks-keyservers.net --recv-keys D2486D2DD83DB69272AFE98867170598AF249743 \
 && echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable bionic main" > /etc/apt/sources.list.d/gazebo-latest.list \
 && apt-key adv --keyserver ha.pool.sks-keyservers.net --recv-keys 421C365BD9FF1F717815A3895523BAEEB01FA116 \
 && echo "deb http://packages.ros.org/ros/ubuntu bionic main" > /etc/apt/sources.list.d/ros-latest.list

I get the message:

Step 5/27 : RUN apt-get update && apt-get install -q -y     ariac3     bash-completion     gazebo9     libgazebo9-dev     locales     psmisc     python-rosdep     python-rosinstall     python-vcstools     ros-melodic-robot-state-publisher     ros-melodic-ros-controllers     ros-melodic-ros-core     ros-melodic-ros-base     wget     && apt-get clean     && rm -rf /var/lib/apt/lists/*
 ---> Running in 7a8256d8841c
Get:1 http://packages.ros.org/ros/ubuntu bionic InRelease [4669 B]
Get:2 http://packages.osrfoundation.org/gazebo/ubuntu-stable bionic InRelease [4253 B]
Get:3 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]
Err:1 http://packages.ros.org/ros/ubuntu bionic InRelease
  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY F42ED6FBAB17C654
Get:4 http://archive.ubuntu.com/ubuntu bionic InRelease [242 kB]
...
Reading package lists...
W: GPG error: http://packages.ros.org/ros/ubuntu bionic InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY F42ED6FBAB17C654
E: The repository 'http://packages.ros.org/ros/ubuntu bionic InRelease' is not signed.

Solution
I fixed this via:

# setup keys and sources for official Gazebo and ROS debian packages
RUN apt-key adv --keyserver ha.pool.sks-keyservers.net --recv-keys D2486D2DD83DB69272AFE98867170598AF249743 \
 && apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654 \
 && echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable bionic main" > /etc/apt/sources.list.d/gazebo-latest.list \
 && apt-key adv --keyserver ha.pool.sks-keyservers.net --recv-keys 421C365BD9FF1F717815A3895523BAEEB01FA116 \
 && echo "deb http://packages.ros.org/ros/ubuntu bionic main" > /etc/apt/sources.list.d/ros-latest.list

Let me know if doing a PR is a good idea. Not sure how many people had this issue, but my computer was pretty vanilla (1804, basic Docker version 19.03.5, build 633a0ea838).

dockerhub images assume user id 1000

The dockerfiles have been written to take user id into account, but now that we ship docker images instead of have users build them themselves, the user id needs to be taken into account at run time.

Gazebo missing crash logs

Note: After some fiddling with the run commands, I got everything to work. It was due to no display available (obviously) However there is no error / log output that indicates this.

Error 1: Gazebo / gear crashes

... logging to /home/ariac/.ros/log/e5501c2e-3fc2-11ea-b2fb-0242ac120016/roslaunch-06fab0b7b083-322.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://172.18.0.22:44625/

SUMMARY
========

PARAMETERS
 * /rosdistro: melodic
 * /rosversion: 1.14.3

NODES
  /
    ariac_sim (osrf_gear/gear.py)

auto-starting new master
process[master]: started with pid [332]
ROS_MASTER_URI=http://172.18.0.22:11311

setting /run_id to e5501c2e-3fc2-11ea-b2fb-0242ac120016
process[rosout-1]: started with pid [343]
started core service [/rosout]
writing file /tmp/ariac/arm1.urdf.xacro
writing file /tmp/ariac/arm2.urdf.xacro[350]
writing file /tmp/ariac/gear.world
writing file /tmp/ariac/gear.launch
writing file /tmp/ariac/gear.urdf.xacro
Running command: roslaunch /tmp/ariac/gear.launch world_path:=/tmp/ariac/gear.world gear_urdf_xacro:=/tmp/ariac/gear.urdf.xacro arm_urdf_dir:=/tmp/ariac/
... logging to /home/ariac/.ros/log/e5501c2e-3fc2-11ea-b2fb-0242ac120016/roslaunch-06fab0b7b083-353.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

xacro: in-order processing became default in ROS Melodic. You can drop the option.
xacro: in-order processing became default in ROS Melodic. You can drop the option.
xacro: in-order processing became default in ROS Melodic. You can drop the option.
started roslaunch server http://172.18.0.22:43853/

SUMMARY
========

PARAMETERS
 * /ariac/arm1/arm/action_monitor_rate: 10
[Model data loads successfully] 
 * /sensors_tf_publisher/tf_prefix: 
 * /use_sim_time: True

NODES
  /ariac/arm2/
    arm_controller_spawner (controller_manager/controller_manager)
    fake_joint_calibration (rostopic/rostopic)
    joint_state_controller_spawner (controller_manager/controller_manager)
    robot_state_publisher (robot_state_publisher/robot_state_publisher)
    spawn_gazebo_model (gazebo_ros/spawn_model)
    tf_relay (osrf_gear/tf2_relay)
  /ariac/arm1/
    arm_controller_spawner (controller_manager/controller_manager)
    fake_joint_calibration (rostopic/rostopic)
    joint_state_controller_spawner (controller_manager/controller_manager)
    robot_state_publisher (robot_state_publisher/robot_state_publisher)
    spawn_gazebo_model (gazebo_ros/spawn_model)
    tf_relay (osrf_gear/tf2_relay)
  /
    gazebo (gazebo_ros/gzserver)
    gazebo_gui (gazebo_ros/gzclient)
    gazebo_unpauser (osrf_gear/gazebo_unpauser.py)
    sensors_tf_publisher (robot_state_publisher/robot_state_publisher)
    spawn_gazebo_sensors (gazebo_ros/spawn_model)
    startup_ariac (osrf_gear/startup.sh)

ROS_MASTER_URI=http://172.18.0.22:11311

process[startup_ariac-1]: started with pid [377]
Ensuring scoring log file exists
File already exists: /home/ariac/.ariac/log/performance.log
[startup_ariac-1] process has finished cleanly
log file: /home/ariac/.ros/log/e5501c2e-3fc2-11ea-b2fb-0242ac120016/startup_ariac-1*.log
process[gazebo-2]: started with pid [379]
[ INFO] [1579991693.966447553]: Finished loading Gazebo ROS API Plugin.
[ INFO] [1579991693.968303032]: waitForService: Service [/gazebo/set_physics_properties] has not been advertised, waiting...
process[gazebo_gui-3]: started with pid [384]
[ INFO] [1579991694.429378132]: Finished loading Gazebo ROS API Plugin.
process[sensors_tf_publisher-4]: started with pid [450]
process[spawn_gazebo_sensors-5]: started with pid [514]
terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::lock_error> >'
  what():  boost: mutex lock failed in pthread_mutex_lock: Invalid argument
Aborted (core dumped)
================================================================================REQUIRED process [gazebo_gui-3] has died!
process has died [pid 384, exit code 134, cmd /opt/ros/melodic/lib/gazebo_ros/gzclient __name:=gazebo_gui __log:=/home/ariac/.ros/log/e5501c2e-3fc2-11ea-b2fb-0242ac120016/gazebo_gui-3.log].
log file: /home/ariac/.ros/log/e5501c2e-3fc2-11ea-b2fb-0242ac120016/gazebo_gui-3*.log
Initiating shutdown!
================================================================================
[ariac/arm2/tf_relay-6] killing on exit
[spawn_gazebo_sensors-5] killing on exit
[sensors_tf_publisher-4] killing on exit
Traceback (most recent call last):
  File "/opt/ros/melodic/lib/gazebo_ros/spawn_model", line 31, in <module>
    from tf.transformations import quaternion_from_euler
  File "/opt/ros/melodic/lib/python2.7/dist-packages/tf/__init__.py", line 30, in <module>
    from tf2_ros import TransformException as Exception, ConnectivityException, LookupException, ExtrapolationException
  File "/opt/ros/melodic/lib/python2.7/dist-packages/tf2_ros/__init__.py", line 39, in <module>
    from .buffer_interface import *
  File "/opt/ros/melodic/lib/python2.7/dist-packages/tf2_ros/buffer_interface.py", line 32, in <module>
    import roslib; roslib.load_manifest('tf2_ros')
  File "/opt/ros/melodic/lib/python2.7/dist-packages/roslib/launcher.py", line 62, in load_manifest
    sys.path = _generate_python_path(package_name, _rospack) + sys.path
  File "/opt/ros/melodic/lib/python2.7/dist-packages/roslib/launcher.py", line 93, in _generate_python_path
    m = rospack.get_manifest(pkg)
  File "/usr/lib/python2.7/dist-packages/rospkg/rospack.py", line 167, in get_manifest
    return self._load_manifest(name)
  File "/usr/lib/python2.7/dist-packages/rospkg/rospack.py", line 211, in _load_manifest
    retval = self._manifests[name] = parse_manifest_file(self.get_path(name), self._manifest_name, rospack=self)
  File "/usr/lib/python2.7/dist-packages/rospkg/manifest.py", line 410, in parse_manifest_file
    from rosdep2.rospack import init_rospack_interface, is_ros_package, is_system_dependency, is_view_empty
  File "/usr/lib/python2.7/dist-packages/rosdep2/__init__.py", line 45, in <module>
    from .lookup import RosdepDefinition, RosdepView, RosdepLookup, \
  File "/usr/lib/python2.7/dist-packages/rosdep2/lookup.py", line 44, in <module>
    from .sources_list import SourcesListLoader
  File "/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py", line 48, in <module>
    from .gbpdistro_support import get_gbprepo_as_rosdep_data, download_gbpdistro_as_rosdep_data
  File "/usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py", line 18, in <module>
    from .platforms.debian import APT_INSTALLER
  File "/usr/lib/python2.7/dist-packages/rosdep2/platforms/debian.py", line 36, in <module>
    from .pip import PIP_INSTALLER
  File "/usr/lib/python2.7/dist-packages/rosdep2/platforms/pip.py", line 33, in <module>
    import pkg_resources
  File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 3088, in <module>
    @_call_aside
  File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 3072, in _call_aside
    f(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 3124, in _initialize_master_working_set
    list(map(working_set.add_entry, sys.path))
  File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 614, in add_entry
[gazebo_gui-3] killing on exit
    for dist in find_distributions(entry, True):
  File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 1964, in find_on_path
    for dist in factory(fullpath):
  File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2034, in distributions_from_metadata
[gazebo-2] killing on exit
    root, entry, metadata, precedence=DEVELOP_DIST,
  File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2473, in from_location
    py_version=py_version, platform=platform, **kw
  File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2835, in _reload_version
    md_version = _version_from_file(self._get_metadata(self.PKG_INFO))
  File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2437, in _version_from_file
    line = next(iter(version_lines), '')
  File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2626, in _get_metadata
    if self.has_metadata(name):
  File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2666, in __getattr__
    def __getattr__(self, attr):
KeyboardInterrupt
process[ariac/arm2/tf_relay-6]: started with pid [550]
RLException: cannot add process [ariac/arm2/spawn_gazebo_model-7] after process monitor has been shut down
The traceback for the exception was written to the log file
================================================================================REQUIRED process [ariac_sim-2] has died!
process has died [pid 350, exit code 1, cmd /opt/ros/melodic/lib/osrf_gear/gear.py --development-mode --visualize-sensor-views -f /opt/ros/melodic/share/osrf_gear/config/sample.yaml /opt/ros/melodic/share/osrf_gear/config/sample_user_config.yaml __name:=ariac_sim __log:=/home/ariac/.ros/log/e5501c2e-3fc2-11ea-b2fb-0242ac120016/ariac_sim-2.log].
log file: /home/ariac/.ros/log/e5501c2e-3fc2-11ea-b2fb-0242ac120016/ariac_sim-2*.log
Initiating shutdown!
================================================================================
[ariac_sim-2] killing on exit
[rosout-1] killing on exit
[master] killing on exit
shutting down processing monitor...
... shutting down processing monitor complete
done

Error 2: Says there are logs but there are none
There are a few log locations:
/home/ariac/.ros/log/e5501c2e-3fc2-11ea-b2fb-0242ac120016/gazebo_gui-3*.log
/home/ariac/.ros/log/e5501c2e-3fc2-11ea-b2fb-0242ac120016/ariac_sim-2*.log
However if I cd to each:

ariac@06fab0b7b083:~/.ros/log/e5501c2e-3fc2-11ea-b2fb-0242ac120016$ ls
ariac-arm2-tf_relay-6-stdout.log  master.log  roslaunch-06fab0b7b083-322.log  roslaunch-06fab0b7b083-353.log  rosout-1-stdout.log  rosout.log  sensors_tf_publisher-4-stdout.log

Reproduce

/bin/bash $HOME/ariac-docker/ariac-competitor/ariac_network.bash
/bin/bash $HOME/ariac-docker/ariac-server/build-images.sh

docker run --rm -it --name test -e XAUTHORITY=/tmp/.docker.xauth \
 -e ROS_IP=172.18.0.22 -e ROS_MASTER_URI=http://172.18.0.22:11311 \
--ip 172.18.0.22 --net ariac-network -v /etc/localtime:/etc/localtime:ro \
-v /tmp/.docker.xauth:/tmp/.docker.xauth -v /dev/log:/dev/log \
-v logs:/home/cloudsim/gazebo-logs ariac-server-melodic /bin/bash

Then, attempt

roslaunch osrf_gear sample_environment.launch

per: wiki/2019/tutorials/gear_interface

Personal Side
I just want to be able to start the ARIAC warehouse environment and have the gazebo GUI show up. Possibly interactively send commands to see how everything behaves. I understand that there is a script for capturing video, but I want something realtime. My primary concern is that the logs are missing, so I have no idea what gazebo is expecting from me.

TD:DR
I start the docker file after setting up the ariac_network.bash, build-images.sh, and finally the final command in run_container.bash with interactivity turned on so that I have access to the bash terminal. Executing a basic osrf_gear launch file crashes without any log files. The crash is related to the missing display of which I have solved

Network Error on ROS Kinetic - Cannot preparing team's system

Looks like there is some network issue with preparing workspace for ROS kinetic, cannot fetch anything from the Internet.

Host system: Ubuntu 16.04 + ROS Kinetic
Using team config: link

Error log:

Step 4/9 : RUN /build_team_system.bash
 ---> Running in fc1180552e36
Preparing environmen for running cwru_ariac
Err:1 http://packages.osrfoundation.org/gazebo/ubuntu-stable xenial InRelease
  Temporary failure resolving 'packages.osrfoundation.org'
Err:2 http://archive.ubuntu.com/ubuntu xenial InRelease
  Temporary failure resolving 'archive.ubuntu.com'
Err:3 http://packages.ros.org/ros/ubuntu xenial InRelease
  Temporary failure resolving 'packages.ros.org'
Err:4 http://archive.ubuntu.com/ubuntu xenial-updates InRelease
  Temporary failure resolving 'archive.ubuntu.com'
Err:5 http://archive.ubuntu.com/ubuntu xenial-security InRelease
  Temporary failure resolving 'archive.ubuntu.com'
Reading package lists...
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/xenial/InRelease  Temporary failure resolving 'archive.ubuntu.com'
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/xenial-updates/InRelease  Temporary failure resolving 'archive.ubuntu.com'
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/xenial-security/InRelease  Temporary failure resolving 'archive.ubuntu.com'
W: Failed to fetch http://packages.osrfoundation.org/gazebo/ubuntu-stable/dists/xenial/InRelease  Temporary failure resolving 'packages.osrfoundation.org'
W: Failed to fetch http://packages.ros.org/ros/ubuntu/dists/xenial/InRelease  Temporary failure resolving 'packages.ros.org'
W: Some index files failed to download. They have been ignored, or old ones used instead.
Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package ros-kinetic-trac-ik*
E: Couldn't find any package by glob 'ros-kinetic-trac-ik*'
E: Couldn't find any package by regex 'ros-kinetic-trac-ik*'
Cloning into 'cwru_ariac'...
fatal: unable to access 'https://github.com/cwru-robotics/cwru_ariac.git/': Could not resolve host: github.com
Cloning into 'catkin_simple'...
fatal: unable to access 'https://github.com/catkin/catkin_simple.git/': Could not resolve host: github.com

Can't open display. Also - Gazebo 7.7 or 8.3 for qualifier?

I just ran through the tutorial on the master branch and saw that Gazebo 7.7 is being used. I saw @dhood mentioned in PR#17 that 7.7 will be used until logging issues in 8.3 are fixed. Any idea if this will happen before the March 2018 qualifier?

Also, should it be opening a display?

[Err] [RenderEngine.cc:730] Can't open display: 
[Wrn] [RenderEngine.cc:97] Unable to create X window. Rendering will be disabled

I saw in PR #6 that GPU support was removed, but I'm not sure if it should be opening an X window anyway. I see the TODO about re-enabling nvidia support in run_container.bash

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.