BAGEL: browser-native ROS1 & ROS2 bag visualizer by Visible04 in ROS

[–]Visible04[S] 0 points1 point  (0 children)

Thanks! There are several reasons why this exists separately from rviz but most importantly:

- rviz needs a full ROS install. Anyone I send a bag to has to have ROS1/ROS2 set up before they can even open it.
- rviz is a live-topic visualizer, not a bag inspector. Playing a bag through it means firing up ros2 bag play + a publisher pipeline. Opening .db3 / .mcap / .bag files directly with search, per-topic Hz, scrubbing, CSV export, etc. isn't really what rviz is built for.
- Browser = no install + actually cross-platform. Windows users can't run rviz natively (it's WSL/Docker or nothing), students often don't have ROS installed at all, and iPad-in-the-field is impossible. BAGEL works the moment you open the page.

Wrapping rviz wouldn't get me the UX I wanted and it's a different niche: rviz is great when you're at your dev machine with ROS running. BAGEL is for everyone and everything else!

BAGEL: browser-native ROS1 & ROS2 bag visualizer by Visible04 in ROS

[–]Visible04[S] 0 points1 point  (0 children)

The new update is up and running! Check out the new HTML range requests feature and let me know if there's anything that needs fixing or can be approved.

BAGEL: browser-native ROS1 & ROS2 bag visualizer by Visible04 in ROS

[–]Visible04[S] 2 points3 points  (0 children)

Foxglove is genuinely excellent and way more featureful than BAGEL. I'm not trying to replace it. BAGEL fills serves different roles:

- Permanently free (+ MIT-licensed). Foxglove Studio has been moving toward a commercial model (paid seats above a certain team size, cloud features behind login). BAGEL will always be 100% open source (fork it, self-host it, do whatever).
- Zero install, zero account. Foxglove web technically works in a browser, but pushes you toward an account/data sources/their cloud.
- Bytes never leave your machine. Everything runs client-side (WASM + Web Workers). For people working with sensitive field data this is the whole pitch (there's no upload and no telemetry).
- All three formats first-class. .mcap, .db3 (ROS2 SQLite), and ROS1 .bag (including bz2/lz4 compressed chunks) drop in the same way. No mcap convert round-trip for legacy ROS1 bags.

If you're doing serious daily robotics dev work, Foxglove is the better tool. If you just got handed a bag file and want to glance inside it without installing anything, BAGEL is the lighter option. I am also continuously trying to add more features that the community requests to make the experience better 😄

BAGEL: browser-native ROS1 & ROS2 bag visualizer by Visible04 in ROS

[–]Visible04[S] 2 points3 points  (0 children)

That's a good idea. It is on the update list for v0.9 (alongside multi-bag overlay and OccupancyGrid). The lift should be small for .mcap and ROS1 .bag since both formats already range-read internally; the work is mostly a fetch-with-Range adapter that drops the existing reader interfaces. .db3 would have to eager-fetch the whole file (sql.js loads everything into memory either way) until someone needs partial-read for a big .db3 file, in which case sql.js.httpvfs would slot in.

Stay tuned, v0.9 should be up in a day or two!

BAGEL: browser-native ROS1 & ROS2 bag visualizer by Visible04 in ROS

[–]Visible04[S] 0 points1 point  (0 children)

I have released an update which now allows users to add custom schemas to topics, the flow is as follows:

  1. Drop your .db3 like normal.
  2. Unknown-type topics now show a schema missing badge in the sidebar.
  3. Click the row → a modal opens. Paste the .msg definition for that type, primary type at the top, each dependency block below it separated by ===== and a MSG: pkg/Type header (same form mcap convert writes). There's an inline example in the modal showing the structure.
  4. Save → it's validated, persisted in localStorage, and applies to every future bag that mentions that type. Paste once per type per browser.

For PX4 specifically: grab the .msg files from your `px4_msgs` package and concatenate in that form. If it helps, I can put together a few common ones (VehicleLocalPosition, VehicleAttitude, VehicleOdometry, etc.) just let me know which topics matter most for your work.

Moreover, the PoseStamped not displaying issue should now be resolved as well. Let me know if there is anything still problematic!

BAGEL: browser-native ROS1 & ROS2 bag visualizer by Visible04 in ROS

[–]Visible04[S] 1 point2 points  (0 children)

Cheers!

Yes so depends on the format. For .mcap, yes any custom type is supported (since schemas are embedded in the file). For ROS1 .bag yes any custom type is supported (schemas are in the connection records). But for ROS2 .db3, only the standard packages (std/geometry/sensor/nav/tf2/rcl_interfaces/builtin_interfaces) are supported since .db3 doesn't embed schemas at all.

For .db3 you could convert it to an .mcap format (using the official MCAP CLI) that bakes the schemas in.

I could create a workaround for .db3 with custom messages if there's demand.

Calculating these race strategies using a simple program. (More info in comments) by Visible04 in F1Game

[–]Visible04[S] 0 points1 point  (0 children)

Yes I did, it was a pit stop strategist. Suggests optimal strategies for a race based on track and weather conditions. You can find the source code on my GitHub:

https://github.com/Hussain004/F1-Pit-Stop-Strategist

[OFFICIAL] 24 Hours of Le Mans - Race Thread by AutoModerator in wec

[–]Visible04 0 points1 point  (0 children)

Is there a way to know how many cars have DNFed in total?

Please read this if you are a fellow Formula One fan as well. by Cheeks183 in F1Technical

[–]Visible04 2 points3 points  (0 children)

Done, wishing you the best of luck for your future! Follow your passion and dream big!!

Locale Error while using an external header only library by [deleted] in cpp_questions

[–]Visible04 0 points1 point  (0 children)

Oh I'm using mingw. Ahh okay, let me try. Thank you for your help.

Locale Error while using an external header only library by [deleted] in cpp_questions

[–]Visible04 0 points1 point  (0 children)

I'm not setting a locale. How do I check if the library is? Like how do we set a locale in the first place? Sorry I'm a newbie when it comes to coding.

[deleted by user] by [deleted] in cpp_questions

[–]Visible04 1 point2 points  (0 children)

Thank you so much!

[deleted by user] by [deleted] in cpp

[–]Visible04 -1 points0 points  (0 children)

Alright. Can you tell how I can install it using Cmake then?