robostack / jupyterlab-ros Goto Github PK
View Code? Open in Web Editor NEWHelper extensions for running ROS from within JupyterLab
License: BSD 3-Clause "New" or "Revised" License
Helper extensions for running ROS from within JupyterLab
License: BSD 3-Clause "New" or "Revised" License
It would be great to have some sort of flag or environmental variable to not start a ROS master. My use case is that I want to use Jupyter lab in an existing system with an already running master. It could be accomplished by adding --wait before roslaunch.
In https://github.com/RoboStack/jupyterlab-ros/blob/70b0582b834fa0ca9b03acc75226696de0758d23/jupyter_ros_server/api/master.py
cls.thread = Thread(target=cls.run, args=([path.join(getEnv(), 'roslaunch'), getMaster()],))
becomes
cls.thread = Thread(target=cls.run, args=([path.join(getEnv(), 'roslaunch --wait'), getMaster()],))
Is this an unusual use case? If so I could also just fork and change for my purpose.
Very cool idea! I wanted to try it out, but am struggling to get everything running properly within a self-contained conda env.
I followed the instructions on installation using conda/mamba, but I think there might be a dependency issue with the ros-melodic-<*> coming from the conda channels. I tried this on my local machine as well as on the binder setup in this repo.
When running either the joint_state_demo or the teleop_demo, I get this error:
/srv/conda/envs/notebook/lib/robot_state_publisher/robot_state_publisher: error while loading shared libraries: libPocoFoundation.so.60: cannot open shared object file: No such file or directory
To reproduce, just run the binder example, and use !roslaunch turtlebot3_fake turtlebot3_fake.launch
.
I'm not sure if this link will work, but here is the binder I was running last:
https://mybinder.org/v2/gh/RoboStack/jupyterlab-ros/98c0a969255648181e62b229a39f8f12fb86edb1?filepath=examples%2FTurtlebot_teleop.ipynb
When reading the Medium article:
https://discourse.ros.org/t/jupyterlab-the-cloud-robotics-command-station/15859
It was hard for me to find a direct link to this repo.
My process:
jupyter-ros
as "JupyROS", got confused where the JupyterLab stuff wasTo alleviate this some, could both of these projects reference each other in their READMEs?
Also, can these two projects be used together? From the article:
JupyROS is another powerful library that leverages ipywidgets and bqplot to integrate ROS in Jupyter Notebooks, being able to show real time plots from ROS messages and create intuitive forms to control robots in minutes.
This feels a bit ambiguous, like the words "another powerful library" implies redundant but with a different feature set...
Thanks for the awesome work!!!
There is a problem in launching the binder. I am not sure the problem is related to mybinder.org or jupyterlab-ros repo.
The error says:
Cannot open
Invalid response: 503 Service Unavailable
I've got the jupyterlab server running and talking with ROS, but I'm not understanding how to open up a visualization window using Zethus. Is this client integrated into Jupyterlab, or is it just a webpage? Any help or direction to a clear tutorial on this aspect would be awesome!
My expectation:
https://blog.jupyter.org/jupyterlab-ros-3dc9dab7f421
When creating a catkin workspace we need to stop JupyterLab and source the workspace before running lab again. We want to source the workspace to be able to access the packages from Zethus.
I got this error on OSX when first trying to run jupyterlab: [W 07:47:37.110 LabApp] Error loading server extension jupyter_nbextensions_configurator
. Easy workaround: mamba install -c conda-forge jupyter_nbextensions_configurator
. Would be great if you could add this to the README.
ROS itself does not support, that is why we run it on the top of a controller. Can we simulate the same architecture with the jupterlab ?
I get the following error: [ERROR] [1597284029.114291]: [Client 0] [id: subscribe:/tf:6] subscribe: Tried to register topic /tf with type tf2_msgs/TFMessage but it is already established with type tf/tfMessage
and jupyter-lab subsequently crashes.
Hi,
I hope I am asking for this in the right place.
Tried in vain to install jupyterlab-ros on OSX-arm64 system(i.e. new M2 processor). Installation using
"mamba install jupyterlab-ros -c robostack" will not install due to missing ros-noetic-tf2-web-republisher.
Trying to install
"conda install -c robostack ros-noetic-tf2-web-republisher"
separately also fails, as in anaconda.org the OSX-arm64 version is not available yet.
Any hope to have that supplied?
Thanks,
Peter
When I was installing the jupyterlab-ros, the mamba couldn't find the right package. My environment is Python 3.10.9
, ROS humble
you provided, Ventura 13.1 (22C65)
, M2 chip
. Thank you in advance.
Looking for: ['jupyterlab-ros', 'nodejs=12']
pkgs/main/osx-arm64 No change
pkgs/main/noarch No change
pkgs/r/osx-arm64 No change
pkgs/r/noarch No change
conda-forge/osx-arm64 5.2MB @ 1.5MB/s 3.5s
conda-forge/noarch 11.2MB @ 2.3MB/s 5.2s
Pinned packages:
- python 3.10.*
Could not solve for environment specs
Encountered problems while solving:
- nothing provides requested jupyterlab-ros
- nothing provides requested nodejs 12**
Sould I add some package source to mamba
?
Just filing this as a parallel to: RoboStack/jupyter-ros#12
(The distinction between these two packages are a still bit unclear, per brief comment in #3; I dunno if jupyter-ros
supporting ROS2 implies that this will work too, or if it's two separate efforts...)
Thanks!!!
Hi,
I was trying to set jupyterlab-ros up on my laptop again.
I created an environment as follows:
name: jupyterlab-ros
channels:
- robostack
- conda-forge
- defaults
dependencies:
- python==3.8
- nodejs==12
- jupyterlab
- ros-noetic-ros-core
- ros-noetic-rosauth
- ros-noetic-rospy
- ros-noetic-rosbridge-suite
- ros-noetic-rosbag
- ros-noetic-tf2-web-republisher
- ros-noetic-interactive-marker-tutorials
- ros-noetic-teb-local-planner
- ros-noetic-turtlebot3-fake
- ipympl
- bqplot
- ipywidgets
- voila
- jupyter_conda
- ipyvuetify
- nb_conda_kernels
- ipykernel
- ros-noetic-turtlebot3-bringup
- ros-noetic-rviz
- jupyter_nbextensions_configurator
When I start jupyter-lab, a few warnings pop up, and jupyterlab-ros is rebuilt every single time:
jupyter-lab
[W 2021-04-09 13:46:33.156 LabApp] Config option `kernel_spec_manager_class` not recognized by `LabApp`.
[W 2021-04-09 13:46:33.168 LabApp] Config option `kernel_spec_manager_class` not recognized by `LabApp`.
[W 2021-04-09 13:46:33.180 LabApp] Config option `kernel_spec_manager_class` not recognized by `LabApp`.
[I 2021-04-09 13:46:33.181 ServerApp] jupyterlab | extension was successfully linked.
[W 2021-04-09 13:46:33.183 MambaNavigator] Config option `kernel_spec_manager_class` not recognized by `MambaNavigator`.
[W 2021-04-09 13:46:33.185 MambaNavigator] Config option `kernel_spec_manager_class` not recognized by `MambaNavigator`.
[W 2021-04-09 13:46:33.190 MambaNavigator] Config option `kernel_spec_manager_class` not recognized by `MambaNavigator`.
[I 2021-04-09 13:46:33.192 ServerApp] mamba_gator | extension was successfully linked.
[W 2021-04-09 13:46:33.198 NotebookApp] Config option `kernel_spec_manager_class` not recognized by `NotebookApp`.
[W 2021-04-09 13:46:33.206 NotebookApp] Config option `kernel_spec_manager_class` not recognized by `NotebookApp`.
[W 2021-04-09 13:46:33.224 NotebookApp] Config option `kernel_spec_manager_class` not recognized by `NotebookApp`.
[I 2021-04-09 13:46:33.696 ServerApp] jupyter_nbextensions_configurator | extension was found and enabled by nbclassic. Consider moving the extension to Jupyter Server's extension paths.
[I 2021-04-09 13:46:33.696 ServerApp] jupyter_nbextensions_configurator | extension was successfully linked.
topicmanager initialized
[I 2021-04-09 13:46:35.155 ServerApp] jupyros | extension was found and enabled by nbclassic. Consider moving the extension to Jupyter Server's extension paths.
[I 2021-04-09 13:46:35.155 ServerApp] jupyros | extension was successfully linked.
[W 2021-04-09 13:46:35.167 ServerApp] The module 'jupyter_ros_server' could not be found. Are you sure the extension is installed?
[I 2021-04-09 13:46:35.168 ServerApp] nbclassic | extension was successfully linked.
[I 2021-04-09 13:46:35.168 ServerApp] voila.server_extension | extension was successfully linked.
[I 2021-04-09 13:46:35.999 ServerApp] [nb_conda_kernels] enabled, 3 kernels found
[I 2021-04-09 13:46:36.056 ServerApp] jupyros | extension was successfully loaded.
[W 2021-04-09 13:46:36.056 ServerApp] jupyter_nbextensions_configurator | extension failed loading with message: 'nbextensions_path'
[I 2021-04-09 13:46:36.057 LabApp] JupyterLab extension loaded from /Users/tobias/opt/anaconda3/envs/jupyterlab-ros/lib/python3.8/site-packages/jupyterlab
[I 2021-04-09 13:46:36.057 LabApp] JupyterLab application directory is /Users/tobias/opt/anaconda3/envs/jupyterlab-ros/share/jupyter/lab
[I 2021-04-09 13:46:36.061 ServerApp] jupyterlab | extension was successfully loaded.
[I 2021-04-09 13:46:36.063 ServerApp.mamba_gator] Server extension enabled
[I 2021-04-09 13:46:36.078 ServerApp] mamba_gator | extension was successfully loaded.
[I 2021-04-09 13:46:36.092 ServerApp] nbclassic | extension was successfully loaded.
[I 2021-04-09 13:46:36.099 ServerApp] voila.server_extension | extension was successfully loaded.
[I 2021-04-09 13:46:36.100 ServerApp] Serving notebooks from local directory: /Users/tobias/opt/anaconda3/conda-bld/osx-64
[I 2021-04-09 13:46:36.100 ServerApp] Jupyter Server 1.6.0 is running at:
[I 2021-04-09 13:46:36.100 ServerApp] http://localhost:8888/lab?token=10eb3bb086387b1cac3b60130016183cb47bb54dc5e382d4
[I 2021-04-09 13:46:36.100 ServerApp] http://127.0.0.1:8888/lab?token=10eb3bb086387b1cac3b60130016183cb47bb54dc5e382d4
[I 2021-04-09 13:46:36.100 ServerApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 2021-04-09 13:46:36.135 ServerApp]
To access the server, open this file in a browser:
file:///Users/tobias/Library/Jupyter/runtime/jpserver-1123-open.html
Or copy and paste one of these URLs:
http://localhost:8888/lab?token=10eb3bb086387b1cac3b60130016183cb47bb54dc5e382d4
http://127.0.0.1:8888/lab?token=10eb3bb086387b1cac3b60130016183cb47bb54dc5e382d4
[W 2021-04-09 13:46:45.179 LabApp] The extension "@robostack/jupyterlab-ros" is outdated.
[I 2021-04-09 13:46:48.301 LabApp] Build is up to date
[W 2021-04-09 13:46:48.582 ServerApp] 404 GET /api/kernels/b3eec4a0-7118-46ac-a35c-12905fa31b91/channels?session_id=eeb364af-c70b-492e-9e21-129f8976d0b7 (127.0.0.1): Kernel does not exist: b3eec4a0-7118-46ac-a35c-12905fa31b91
[W 2021-04-09 13:46:48.623 ServerApp] 404 GET /api/kernels/b3eec4a0-7118-46ac-a35c-12905fa31b91/channels?session_id=eeb364af-c70b-492e-9e21-129f8976d0b7 (127.0.0.1) 44.73ms referer=None
[JupyterApp] WARNING | Config option `kernel_spec_manager_class` not recognized by `JupyterApp`.
[I 2021-04-09 13:47:09.583 ServerApp] Kernel started: b2d399f5-e322-4dfb-b8f4-6c50d20efeb7
[W 2021-04-09 13:47:13.694 ServerApp] Got events for closed stream None
[I 2021-04-09 13:49:04.579 ServerApp] Saving file at /Untitled.ipynb
[I 2021-04-09 13:52:37.575 ServerApp.mamba_gator] https://conda.anaconda.org/robostack/channeldata.json skipped.
However, the status bar and ROS log console are not available. jupyros seems to work - I can control the turtlebot as in the examples. At the same time, bqplot doesn't work either (Error displaying widget: model not found). Something must be wrong in my environment, but I cannot figure what.
It would be great if you guys could help. Let me know if you need additional debug info.
Thanks, Tobi
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.