Hi @lentinjoseph, thanks for posting this here! If there are any questions about this work, I am happy to respond (I’m the author)!
Wolf
Reading the post, I noticed this:
Nowadays, the Jupyter notebook and the ipywidgets framework offer a compelling alternative for several reasons:
- Code and interface are not separated — both are in the same notebook.
From a separation of concerns perspective this seems like a peculiar comment.
I’m not a Jupyter expert by any means: is there something that makes this a desirable characteristic of the integration?
Well, you’re still allowed to put your display logic into a different python import file, and it’s even encouraged to put “library” code into a library file.
But you can also interactively e.g. change your callback function right from the notebook, and make some tweaks to your functions, explore other parameters (e.g. via ipywidgets @interact decorator) … in the exploratory/experimental phase of a project this can be quite productive.
Afterwards, there are projects such as “voila” (GitHub - voila-dashboards/voila: Voilà turns Jupyter notebooks into standalone web applications) that we’ve started to convert a Notebook GUI to a standalone web application that can be served to customers, for example.
@wolfv thanks for that package, looks very interesting indeed.
I have been also looking at providing some interactive python feature on top of ROS node, given that many people coming to rostful, usually just want a simple UI, not a full-fledged REST backend.
Using jupyter would be a nice solution indeed.
I noticed that :
- jupyter-ros is not published as a ros package (I m guessing you just want to keep it a pure python package ?)
- users might have issues with the python / ros environment setup.
So I thought you might want to have a look at :
- GitHub - pyros-dev/pyros-setup: Misc tools to be able to setup and run ROS from python (to load ros environment from within python)
- https://github.com/pyros-dev/rosimporter (to load ros messages and generate message class dynamically at import time)
I m thinking these can help bridge ros and python workflow a bit better than what is currently done.
I developed and have been using these for quite some time, but ultimately we’ll need more usecases to consolidate code, so please send me some feedback if you ever try them ![]()
Hope you find these helpful.
We have installed the Jupyter ROS at the ROS Development Studio, so now it is available to be used off the shelf in the ROSDS.
-
Here a rosject example that teaches how to use Jupyter ROS for show the grid, the URDF of the robot, the scan, and markers: http://www.rosject.io/l/d4b0981/ (everything ready to execute with no installation).
-
Here a video with a full explanation: https://youtu.be/lE9lR0AvtnQ
Hope this helps!
I’ve started working on a ros2 implementation of jupyter-ros on a different fork. I sent a message to @wolfv and maybe we can get a separate branch or project going.
Awesome!
I might just rename your fork jupyter-ros2 so that casual passersby can know what you’re cooking up.
I would love to do that. I’ll wait to see from the owner of the code I’m forking if he is ok with that!
So you dont need to ask – if you just go to settings in the repo you can rename your fork whatever you’d like. It does effect the connections to the original repository.
Ex GitHub - ericyao2013/ROS2-navigation2: ROS2 Navigation this user renamed their fork of navigation2 to ROS2-navigation2 which still links against navigation2 as parent.