EndPointCorp / lg_ros_nodes

A ROS software stack for running Liquid Galaxy applications
https://liquidgalaxy.endpoint.com/
Apache License 2.0
19 stars 5 forks source link
lg liquidgalaxy python robot-operating-system ros ros-nodes streetview xorg

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

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 melodic -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:

./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

touch catkin/CATKIN_IGNORE
touch docker_nodes/CATKIN_IGNORE
git remote update
catkin_prepare_release

NOTE, catkin_prepare_relase ight be a bit broken, so patch /opt/ros/melodic/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):

Global parameters