Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/RoboStack/jupyterlab-ros

Helper extensions for running ROS from within JupyterLab
https://github.com/RoboStack/jupyterlab-ros

Last synced: 2 days ago
JSON representation

Helper extensions for running ROS from within JupyterLab

Awesome Lists containing this project

README

        

# jupyterlab-ros

A JupyterLab extension for ROS.

[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/RoboStack/jupyterlab-ros/master?urlpath=lab/tree/examples)

### Install

We recommend following the installation instructions of the [RoboStack](https://github.com/RoboStack/ros-noetic) repository which enables you to install ROS Noetic in a conda environment. After following these instructions, simply

```bash
conda activate robostackenv
mamba install jupyterlab-ros nodejs=12
```

### How to use?

Please see the [examples](./examples) folder for some tutorials and examples how to use jupyterlab-ros. These require the following ROS packages:
```bash
mamba install ros-noetic-ros-core ros-noetic-rospy ros-noetic-rosbridge-suite ros-noetic-rosbag ros-noetic-rosauth ros-noetic-tf2-web-republisher ros-noetic-franka-ros ros-noetic-interactive-marker-tutorials ros-noetic-teb-local-planner ros-noetic-turtlebot3 ros-noetic-turtlebot3-fake
```

## Contributing

### Install

The `jlpm` command is JupyterLab's pinned version of
[yarn](https://yarnpkg.com/) that is installed with JupyterLab. You may use
`yarn` or `npm` in lieu of `jlpm` below.

```bash
# Create a development environment
# With the following command you have all the necessary to run
# the examples (you will need to install jupyros from pip later).
# You can also use the install instructions from https://github.com/RoboStack/ros-noetic
# to create the environment
mamba create -n lab-ros -c conda-forge -c robostack python=3.8 nodejs=14 jupyterlab=3 ipympl ipyvuetify bqplot ipywidgets voila ros-noetic-ros-core ros-noetic-rospy ros-noetic-rosbridge-suite ros-noetic-rosbag ros-noetic-rosauth ros-noetic-tf2-web-republisher ros-noetic-franka-ros ros-noetic-interactive-marker-tutorials ros-noetic-teb-local-planner ros-noetic-turtlebot3 ros-noetic-turtlebot3-fake

# Activate the environment and install jupyros
conda activate lab-ros
pip install jupyros

# Clone the repo to your local environment
git clone https://github.com/RoboStack/jupyterlab-ros.git
# Move to jupyterlab-ros directory
cd jupyterlab-ros

# Install server extension in editable mode
python -m pip install -e .

# Link your development version of the extension with JupyterLab
jupyter-labextension develop . --overwrite
```

You can watch the source directory and run JupyterLab in watch mode to watch for changes in the extension's source and automatically rebuild the extension and application.

```bash
# Watch the source directory in another terminal tab
jlpm watch
# Run jupyterlab in watch mode in one terminal tab
jupyter-lab
```

### Uninstall

```bash
# Uninstalling the frontend extension
jupyter-labextension uninstall @robostack/jupyterlab-ros

# Uninstalling the server extension
pip uninstall jupyter_ros_server

# Cleaning jupyterlab
jupyter lab clean
jupyter lab build
```