Python JavaScript C++ C CMake HTML Other
Switch branches/tags
Clone or download
Latest commit 77fc138 Jul 11, 2018
Permalink
Failed to load latest commit information.
.github Issue template amended Mar 24, 2016
docker Use local repository inside docker image Jun 16, 2016
interactivespaces_msgs 1.18.13 Jun 22, 2018
lg_activity 1.18.13 Jun 22, 2018
lg_attract_loop 1.18.13 Jun 22, 2018
lg_builder 1.18.13 Jun 22, 2018
lg_common 1.18.13 Jun 22, 2018
lg_earth Earth_config: Add clientSubType Jul 3, 2018
lg_json_config 1.18.13 Jun 22, 2018
lg_keyboard 1.18.13 Jun 22, 2018
lg_media 1.18.13 Jun 22, 2018
lg_mirror 1.18.13 Jun 22, 2018
lg_nav_to_device 1.18.13 Jun 22, 2018
lg_offliner 1.18.13 Jun 22, 2018
lg_panovideo 1.18.13 Jun 22, 2018
lg_pointer 1.18.13 Jun 22, 2018
lg_proximity 1.18.13 Jun 22, 2018
lg_replay 1.18.13 Jun 22, 2018
lg_rfreceiver 1.18.13 Jun 22, 2018
lg_ros_nodes_base Made managed adhoc browser' tests' setUp and tearDown methods great a… ( Dec 22, 2016
lg_screenshot 1.18.13 Jun 22, 2018
lg_spacenav_globe 1.18.13 Jun 22, 2018
lg_stats 1.18.13 Jun 22, 2018
lg_sv 1.18.13 Jun 22, 2018
lg_twister 1.18.13 Jun 22, 2018
lg_volume_control 1.18.13 Jun 22, 2018
lg_wireless_devices 1.18.13 Jun 22, 2018
liquidgalaxy 1.18.13 Jun 22, 2018
rfid_scanner 1.18.13 Jun 22, 2018
rfreceiver 1.18.13 Jun 22, 2018
rosbridge_library 1.18.13 Jun 22, 2018
rosbridge_server 1.18.13 Jun 22, 2018
roslaunch Update portal roslaunch for lg_mirror devices May 19, 2017
scripts clean before making Nov 15, 2017
spacenav_remote 1.18.13 Jun 22, 2018
spacenav_wrapper 1.18.13 Jun 22, 2018
state_proxy 1.18.13 Jun 22, 2018
wiimote 1.18.13 Jun 22, 2018
.coveralls.yml Added coveralls Feb 28, 2017
.dockerignore Prevent sending unnecessary artifacts to Docker May 6, 2016
.gitignore Fix inpropper merged gitignore Jan 24, 2017
.travis.yml Added coveralls and travis (#328) Feb 1, 2017
AUTHORS.md Amended authors list Sep 22, 2015
Dockerfile Install Google Earth in Dockerfile Dec 12, 2017
LICENSE Added license owner Sep 18, 2015
MANIFEST.in smooth transitions [WIP] (#251) Aug 26, 2016
README.md removing un-needed line Jul 11, 2018
cppcheck_suppressions.txt Suppress cppcheck for uWebSockets lib Mar 9, 2017
liquidgalaxy.jpg Documentation Sep 29, 2015
nosy.cfg
pack-debs
setup.cfg pep8 fixes Jul 14, 2017

README.md

Liquid Galaxy

liquidgalaxy

This repo contains ROS software for running Liquid Galaxy applications.

It allows for displaying engaging content in an immersive environment. Currently it supports:

General requirements

NOTE: all requirements specific to ros_nodes are in their respective README.md files

Running LG

  • Pull docker image docker pull endpoint/lg_ros_nodes

  • On linux docker run -i -t lg_ros_nodes /bin/bash

  • On OSX

  • in Xquartz settings go to Security and check Authenticate connections checkbox

  • get your IP and set $ip var ip=$(ifconfig en0 | grep inet | awk '$1=="inet" {print $2}')

  • allow connections to your Xquartz X server xhost + $ip

  • run it! docker run -i -t lg_ros_nodes /bin/bash

Making it running old-fashioned way

First, clone the repos (you can replace ~/src if you want).

$ cd ~/src
$ git clone git://github.com/EndPointCorp/lg_ros_nodes.git
$ git clone git://github.com/EndPointCorp/appctl.git

Then run the init script.

$ cd ~/src/lg_ros_nodes/
$ ./scripts/init_workspace

Then re-run the init script with arguments to direct the script to those new repos

$ cd ~/src/lg_ros_nodes
$ ./scripts/init_workspace --appctl ~/src/appctl/appctl

Install system dependencies with rosdep.

$ cd ~/src/lg_ros_nodes/catkin
$ rosdep install --from-paths src --ignore-src --rosdistro indigo -y

Build the project.

$ cd ~/src/lg_ros_nodes/catkin
$ catkin_make

Run Google Earth, Streetview and Panoviewer sample .launch file:

roslaunch --screen lg_common/launch/dev.launch

NOTE: As new ros nodes are added to this git repo, re-run ./scripts/init_workspace and the rosdep install command.

Development

If you have Liquid Galaxy hardware (headnode + displaynodes), you may want to do the development on it. There's a sync script that will automatically build and transfer your artifact to display nodes and run it afterwards.

To use it:

  • make sure that your local catkin/src/ has all nodes that are configured to run on your dispnodes (in their respective roslaunch xml files) - if there are any nodes lacking, they will be ran from /opt/ros directory instead of /home/lg/catkin_ws/ directory where your development build is going to be copied to

  • run sync script (do it everytime you want to test sth):

./scripts/sync_to_disp_nodes.sh

This script will build ROS nodes from your locally checked out branch, transfer it to dispnodes and run it by restarting roslaunch service, thanks to the fact that roslaunch service on dispnodes is configured in such way that it attempts to run any development artifact (in /home/lg/catkin_ws) that it finds before launching production ROS nodes that are located under /opt/ros.

Making new release

  • newly created ROS nodes need to be listed in the pack-debs script for CI server to build them and distribute to the aptly repository, after CI build is finished, check that the debs exist in aptly under an URL corresponding to the release tag

  • release from the master branch

  • to make new release you need to:

touch catkin/CATKIN_IGNORE
touch docker_nodes/CATKIN_IGNORE
  • make sure your tags are pulled - otherwise you'll generate a duplicate
git remote update
  • generate changelog:
catkin_generate_changelog
  • edit all your .rst changelogs - remove unwanted or bogus messages and make them look pretty. Use catkin_generate_changelog --all to create CHANGELOG.rst for a new package.

  • commit it to prepare for creating new release artifact:

git commit -am "updated changelogs for new release"
  • once that's done, prepare release and send it to the build farm:
$ catkin_prepare_release

NOTE, catkin_prepare_relase ight be a bit broken, so patch /opt/ros/indigo/lib/python2.7/dist-packages/catkin/package_version.py with the below

@@ -127,8 +127,8 @@ def update_changelog_sections(changelogs, new_version):
         new_changelog_data[changelog_path] = data
 
     for changelog_path, data in new_changelog_data.items():
-        with open(changelog_path, 'w') as f:
-            f.write(data)
+        with open(changelog_path, 'wb') as f:
+            f.write(data.encode('utf-8'))
 
 
 def rename_section(data, old_label, new_label):
  • remove the CATKIN_IGNORE file, otherwise e.g. catkin_make will ignore packges to compile ...

Global parameters

  • /logging/level: sets the minimum log level. Valid values are from 0 to 3: INFO = 0, WARNING = 1, LOG_ERROR = 2, LOG_FATAL = 3. This is not rospy log level but an argument passed to applications managed by appctl