Giter Club home page Giter Club logo

studio's Introduction

Accelerate your robotics development


Note

Foxglove Studio 1.x is no longer supported. To install the latest release, please visit our downloads page. Learn more in our Foxglove 2.0 announcement.

Foxglove Studio



Download   •   Docs   •   Changelog   •   Discussions   •   Slack   •   X   •   LinkedIn   •   Contact

Foxglove is a visualization and observability platform for robotics development.

Foxglove screenshot

Installation

Create a free account or download Foxglove for Linux, Windows, or macOS to get started.

Documentation

Documentation is hosted at docs.foxglove.dev.

Support

Support for Foxglove is available via the following channels:

License

This project is availabile under the Mozilla Public License v2.0.

Foxglove is a trademark of Foxglove Technologies Inc.

studio's People

Contributors

2metres avatar achim-k avatar amacneil avatar arooba-git avatar aschimmichanga avatar bclinkinbeard avatar bryfox avatar cfoust avatar defunctzombie avatar dependabot[bot] avatar dudv avatar esthersweon avatar foxglovebot avatar foxymiles avatar hillarymanning avatar james-rms avatar jameskuszmaul-brt avatar jhurliman avatar jkuszmaul avatar jtbandes avatar mica-angeli avatar osaro-imohe avatar pezy avatar shuhaowu avatar smbera avatar snosenzo avatar wep21 avatar wimagguc avatar wkalt avatar woodii1998 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

studio's Issues

Publish panel should allow publishing arbitrary/common datatypes

via @jtbandes:

I should be able to publish a geometry_msgs/Twist to control turtlesim, even though there are no publishers for this topic yet.

This might mean we need to ship common datatype definitions with the app, if the md5sum needs to be correct.

rostopic pub does this by looking up the datatype definition on disk.

Change max depth for visualizing depth images

From Jack Ma in Slack (via @jtbandes):

Apparently Webviz defaults to using 10000 (or 10 m), so everything just looks really black and quite basically unusable beyond those.

// For now, just assume values are in the range 0-10000, consistent with image_view's default.
// TODO: support dynamic range adjustment and/or user-selectable range
// References:
// https://github.com/ros-perception/image_pipeline/blob/42266892502427eb566a4dffa61b009346491ce7/image_view/src/nodes/image_view.cpp#L80-L88
// https://github.com/ros-visualization/rqt_image_view/blob/fe076acd265a05c11c04f9d04392fda951878f54/src/rqt_image_view/image_view.cpp#L582
// https://github.com/ros-visualization/rviz/blob/68b464fb6571b8760f91e8eca6fb933ba31190bf/src/rviz/image/ros_image_texture.cpp#L114
val = (val / 10000) * 255;

Node Playground should support importing custom data types

via @jtbandes:

Node Playground lets you publish custom datatypes, but the datatype name that's exposed to the rest of the app is autogenerated. This means the message can't be used for other panels that are looking for specific datatypes.

image (2)

We should consider allowing users to import custom data types for use in Node Playground that aren't part of the common ROS packages, but also aren't in their bag / data source.

(It would also be good to provide built-in definitions for the common ROS datatypes: #1261)

Ability to drag panel into a new tab

via @jtbandes:

In a Tab panel, it seems like currently the only way to get a new tab is to click the + button, then add a panel. It would be nice if you can simply drag an existing panel onto the new tab button to create a new tab with that panel.

Expected 1 top level type definition for 'some_topic' but found 2

Hi,

  1. Love foxglove, it is awesome!
  2. im having issues when connecting to my robot via websocket. when i connect and all of the nodes load foxglove shows an error:
    Expected 1 top level type definition for 'BaseRecoverResult' but found 2

BaseRecoveryResult.msg is made up of a bool field and a string field. this msg is used in a result topic of an action server.

here is a screen snap:
image

anyone know whats up?

Node Playground doesn't support dynamically updating datatypes

via @jhurliman:

Ros1Player dynamically updates datatypes when connection headers are received from publishers, but Node Playground doesn't support dynamic updates of datatypes. This leads to nodes not compiling because the datatype TS definitions ("rosLib") are empty.

Start the ros1-turtlesim-test container, connect with FGS, and attempt to compile the following script in Node Playground:

import { Input, Messages } from "ros";

type GlobalVariables = { id: number };

export const inputs = ["/turtle1/color_sensor"];
export const output = "/webviz_node/color_sensor";

// Populate 'Input' with a parameter to properly type your inputs, e.g. 'Input<"/your_input_topic">'
const publisher = (
  message: Input<"/turtle1/color_sensor">,
  globalVars: GlobalVariables
): Messages.turtlesim__Color => {
  return { ...message };
};

export default publisher;

It fails with:

Cannot use namespace 'Input' as a type.(2709)
Namespace '"ros"' has no exported member 'turtlesim__Color'.(2694)

The error happens when you don't have an input source loaded. Maybe in that case we should produce a different more explicit error.

Once you connect an input source the input error goes away. Other errors might also go away depending on what messages your input source has.

TF editor

via @jhurliman:

Editable table view of all TF values and the ability to add/delete/rename rows. This will need a clear button as well to reset back to TFs sourced from the player only.

ROS 2 rosbridge websocket connection support

Placeholder ticket to discuss if ROS 2 websocket connections are interesting to anyone.

In theory we could allow connections over websocket (similar to what we support with rosbridge in ROS 1) using https://github.com/RobotWebTools/ros2-web-bridge.

However, we have also discussed a native-connection-over-ssh option which might be more useful than websocket connections. We're open to feedback.

See also:

TF section in 3D panel topic list should be collapsible

via @jtbandes:

I thought this used to be collapsible but it doesn't appear to be. The list of TFs can get very long, which pushes the actual viz topics lower and makes for a confusing experience. I guess it is collapsible in some cases — not sure why it wasn't in this case.

image (1)

Interactions for user-drawn polygons in 3D panel are broken

Overview

The 3D panel docs include this section on drawing polygons:

Screen Shot 2021-04-27 at 5 08 17 PM

Of the functionality described above, only 1) drawing a polygon, 2) selecting a polygon, and 3) bisecting a polygon edge seem to be working. Selecting a point within the polygon, moving / resizing / deleting a polygon, deleting a point in the polygon, etc. are not working, at least not as described by the included documentation.

Steps to repro

  • Open Foxglove Studio with demo bag: https://storage.googleapis.com/foxglove-public-assets/demo.bag
  • Open 3D panel and click on pencil icon
  • Hold Ctrl + click around on canvas to create a polygon
  • All other interactions (selecting point, moving point, etc.) do not work as expected

Plot arbitrary string values

via Clement in Slack:

Another nice feature would be to be able to co-plot timed non-float values inside the plot pannel. Right now if you input a string submessage to plot. It does nothing. The state transition pannel is nice but it could be folded in the normal plot panel. Lets say you have a string message or state. You display a straight vertical line at the time of transition inside the plot.

Most messages have either a header stamp or receive time which would allow for arbitrary string fields to be plotted with vertical annotation/reference lines (we already have the annotation plugin).

Can't connect to websocket

It seems that I can't connect to a web socket source either (v0.3) . . .

I tested with webviz, and it seems to work fine, but foxglove gets stuck connecting.

Some more information:
OS: Ubuntu 20.04
ROS: Noetic
Foxglove: deb from the site
Webviz: docker (works when connecting to the ws server running locally and in a docker container)

foxglove_localhost
webviz_localhost

dev console:
image

Ctrl+~ controls are not clickable (MacOS)

via @jhurliman:

Holding ~ brings up the secret UI for managing panels, but if you hold Ctrl+~ the secret UI still appears but none of the buttons are clickable and dragging no longer works. We should either disable the menu from appearing with this combo or allow the buttons to work.

For some reason it works fine when holding Cmd+~ or Option+~.

Create an integration test for @foxglove/electron-socket

via @jhurliman:

This library has no test coverage right now and is susceptible to regressions that only show up when you try to use the ROS1 connector in FGS. Since this library is intrinsically tied to Electron implementation details, for full coverage we need an integration test that compiles a small electron app, runs it, and confirms socket and server creation and communication works as expected.

Crash on launch when running studio inside docker container

Hello,
I installed foxglove v0.2.0 in a docker container.
After installation of foxglove, I'm unable to use roslaunch or rosrun on every package.
Verified with a new container. Deinstallation of foxglove-studio doesn't resolve the problem.
Foxglove-studio seems to work correctly on the same computer directly outside the container.

$ rosrun turtlesim turtlesim_node
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-student'
[ INFO] [1616618619.246782155]: Starting turtlesim with node name /turtlesim
[ INFO] [1616618619.251715865]: Spawning turtle [turtle1] at x=[5.544445], y=[5.544445], theta=[0.000000]
dbus[6192]: The last reference on a connection was dropped without closing the connection. This is a bug in an application. See dbus_connection_unref() documentation for details.
Most likely, the application was supposed to call dbus_connection_close(), since this is a private connection.
D-Bus not built with -rdynamic so unable to print a backtrace
Aborted (core dumped)

Can't load panels

System: Windows 10
Describe: After launch program, all panels disappear after a flash
屏幕截图 2021-04-07 121452

ROS1 publishing support

via @jhurliman:

It's currently possible to publish messages using the Publish panel when using rosbridge connections.

We should enable this when using ROS1 native connections.

ROS 2 bag support

We should support loading ROS 2 bags.

It seems that will be much more difficult than loading ROS 1 bags, since ROS 2 bags are not a self contained file, and the output folder can contain many different formats (sqlite is the default driver).

See also:

  • #715 (ROS 2 native connections)
  • #716 (ROS 2 websocket connections)

"Cannot identify bag format" error

To reproduce this, try to load a bag that is not a valid rosbag file. The RandomAccessPlayer has a generic catch for any player errors that calls this._setError("Error initializing player", error, "app"); which reports this user error (opening a bad file) as an application error to Sentry. We need to surface this as a user error somehow.

via @jhurliman

Tried to publish on a topic that is not registered as a publisher

When I tried to publish a message which type is PoseWithCovarianceStamped, I counted this error described in title.

This is my detailed msg

{
"header": {
"seq": 10,
"stamp": {
"sec": 0,
"nsec": 10
},
"frame_id": "base_link"
},
"pose": {
"pose": {
"position": {
"x": 45,
"y": 0,
"z": 0
},
"orientation": {
"x": 0,
"y": 0,
"z": 0,
"w": 1
}
},
"covariance": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
}
}

What can I do to fix it?

Improve Image panel zooming behavior

via @jtbandes @jhurliman:

  • Zooming with scroll wheel / trackpad pinch feels too slow
  • Zoom percentage / menu looks strange – the percentage itself may not be that useful, and these menu items could probably be buttons instead for better UX
  • Easy to get in a weird state where the image doesn't stay aligned as you resize the panel
  • Max zoom of 150% is too small. It should be 200%

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.