Name: lg_ros_nodes
Owner: End Point Corporation
Description: A ROS software stack for running Liquid Galaxy applications
Created: 2015-06-17 21:23:14.0
Updated: 2017-05-29 06:30:05.0
Pushed: 2018-03-09 14:02:12.0
Homepage: https://liquidgalaxy.endpoint.com/
Size: 22070
Language: Python
GitHub Committers
User | Most Recent Commit | # Commits |
---|
Other Committers
User | Most Recent Commit | # Commits |
---|
This repo contains ROS software for running Liquid Galaxy applications.
It allows for displaying engaging content in an immersive environment. Currently it supports:
NOTE: all requirements specific to ros_nodes are in their respective README.md files
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
First, clone the repos (you can replace ~/src if you want).
~/src
t clone git://github.com/EndPointCorp/lg_ros_nodes.git
t clone git://github.com/EndPointCorp/appctl.git
Then run the init script.
~/src/lg_ros_nodes/
scripts/init_workspace
Then re-run the init script with arguments to direct the script to those new repos
~/src/lg_ros_nodes
scripts/init_workspace --appctl ~/src/appctl/appctl
Install system dependencies with rosdep
.
~/src/lg_ros_nodes/catkin
sdep install --from-paths src --ignore-src --rosdistro indigo -y
Build the project.
~/src/lg_ros_nodes/catkin
tkin_make
Run Google Earth, Streetview and Panoviewer sample .launch file:
aunch --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.
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):
ripts/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.
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:
h catkin/CATKIN_IGNORE
h docker_nodes/CATKIN_IGNORE
remote update
generate changelog:
in_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:
commit -am "updated changelogs for new release"
once that's done, prepare release and send it to the build farm:
tkin_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'))
rename_section(data, old_label, new_label):
CATKIN_IGNORE
file, otherwise e.g. catkin_make
will
ignore packges to compile …/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 appctlbump for final reason?…