listing_summary =
filesets | int | rows | len(rows)
size | filesize | rows | sum(x['values'][1] or 0 for x in rows)
...
listing_sort = Start time | descending
listing_columns =
Name | route | fileset | detail_route(fileset)
Size | filesize | fileset | sum(x.size for x in fileset.files)
...
MARV Robotics allows you to make vast amounts of data accessible by web. Your team can access all data and get an overview in a dynamic web GUI. Filter and find information, comment on and tag it for future reference.
@marv.node()
@marv.input('messages', filter=['*:sensor_msgs/NavSatFix'])
def utm(messages):
for _, msg, _ in messages:
east, north = utm.from_latlon(msg.longitude, msg.latitude)[:2]
yield {'x': east, 'y': north}
@marv.node()
@marv.input('utm')
@marv.param('magic', help='Magic render parameter')
def utm(utm, magic):
plt_path, plt_id = marv.make_file(name)
fig = render(plt_path, utm, magic)
return plt_id
Your usecases define what information is relevant for you. MARV Robotics enables you to embed your own custom algorithms to extract this information from robot logs. Build complex networks of processing nodes to trigger algorithms, extract features, and visualize to your needs. And the best thing: it's easy.
[detail bag_meta]
title = Bag metadata
...
[detail topics]
title = Topics
...
[detail trajectory]
title = Trajectory
widget = osm
inputs = geo_json_trajectory
initial_zoom = 21
Your algorithms extract all relevant information. MARV Robotics does all the rest. Adjust MARV's simple configuration file and create the powerful GUI that your developers deserve and your execs are going to love - no web development experience required.
import requests
url = 'https://ternaris.com/marv-robotics/demo/'
api = '/marv/api/2/fileset-listing'
query = '?filter={"tags": {"op": "any", "val": ["outdoor"]}}'
requests.get(url + api + query).json()
Get an overview of and access to all your robot logs through one centralized interface. No more browsing of network shares. No more copying data manually.
Move data robustly from your robots to your storage system without having to worry about data integrity or data loss.
Dynamic search: “Find nighttime rides near Munich at 4°C outdoor temperature and a peak driving speed of 240km/h and above.”
Download or stream partial robot logs to speed up your development by processing only the data that you need at this very moment.
Automatically run your algorithms on data added to the system. MARV Robotics can even run the same code that powers your robots.
Introspection helps you understand what happens under the hood of your robots. A customizable graphical visualization of each robot log is just one click away.
Organize your data with tags or associate a robot log with a workflow through tags. Discuss logs with your team using the comment function, MARV Robotics will keep you automatically updated on recent changes.
Simplify your development process or continous integration setup. MARV Robotics has a simple but powerful HTTP API for integration with your existing tools.
- Nikolaus Demmel, Zenoway