Coder Social home page Coder Social logo

bwi_lab's People

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

zilmano rdelfin

bwi_lab's Issues

bwilab_scripts: support automatic uploading of log data

for background, see: utexas-bwi/bwi_common#41

The basic approach envisioned is to create a general facility for running selected scripts on each robot under the bwilab account. The upload script will be one of them.

We will create unique public and private ssh keys for the local bwilab account on each robot, storing their public keys on nixons-head. I will write a setuid("bwilab") C program that will only run a set of scripts we maintain.

That will make it easy to upload logs without requiring a login, and also to notify the server when a robot becomes active or inactive.

require explicit prefix for upload and bags scripts

I think we should consider always requiring the -p parameter. Otherwise people will often forget and end up using bwi by default. When running the scripts by hand, that's frequently not what is wanted.

If we do this, we could also make a similar change to the bwi_logging record node. I'm not sure that's really necessary, because the launch file always passes that parameter explicitly.

@pato: comments? suggestions?

distance_traveled: crashes when a bag lacks sufficient data

Traceback:

  time: 0:00:00  distance: 0.00  filename: bwi_2016-12-01-16-51-43.bag
Traceback (most recent call last):
  File "/usr/local/lib/bwi_local/distance_traveled", line 26, in <module>
    t, d, f = distance_traveled(filename)
  File "/usr/local/lib/python2.7/dist-packages/bwi_local/bagfile.py", line 71, in distance_traveled
    for topic, msg, t in bag.read_messages(topics=['odom_1hz']):
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/rosbag/bag.py", line 2331, in read_messages
    yield self.seek_and_read_message_data_record((entry.chunk_pos, entry.offset), raw)
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/rosbag/bag.py", line 2436, in seek_and_read_message_data_record
    self.decompressed_chunk = bz2.decompress(compressed_chunk)
IOError: invalid data stream

It looks like the file only had one odom_1hz message. The script needs at least two.

Empty bags also throw an exception:

Traceback (most recent call last):
  File "/usr/local/lib/bwi_local/distance_traveled", line 26, in <module>
    t, d, f = distance_traveled(filename)
  File "/usr/local/lib/python2.7/dist-packages/bwi_local/bagfile.py", line 61, in distance_traveled
    bag = rosbag.Bag(filename)
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/rosbag/bag.py", line 173, in __init__
    self._open(f, mode, allow_unindexed)
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/rosbag/bag.py", line 1096, in _open
    if   mode == 'r': self._open_read(f, allow_unindexed)
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/rosbag/bag.py", line 1124, in _open_read
    self._version = self._read_version()
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/rosbag/bag.py", line 1234, in _read_version
    raise ROSBagException('empty file')
rosbag.bag.ROSBagException: empty file

Create/Transfer a small DNS Name server

Either transfer the existing smallDNS that I wrote,
or build a new file-based DNS system where robots log into master server and in a specified folder update a file (named based on the hostname) with the IP address

bwilab_scripts: divide upload operation into two stages: compression and rsync

I had some trouble Wednesday with some of the uploads. If the compression succeeds but the rsync fails, the log files are left in a state that the upload script no longer handles correctly. It just says there is nothing to upload.

Since the rsync is really the only part requiring bwilab authorization, I'd like to divide the work into separate compression and rsync scripts, perhaps with another convenience script that runs one and then the other. That will make it easier to clean up after a previous incomplete upload. It also significantly reduces the amount of processing done under bwilab authorization.

@pato: comments? (I intend to merge your updates before making this change.)

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.