Open-RMF Web is a collection of packages that provide a web-based interface for users to visualize and control all aspects of Open-RMF deployments.
We currently support Ubuntu 22.04, ROS 2 Humble and Open-RMF's 22.09 release. Other distributions may work as well, but is not guaranteed.
Install nodejs >= 16,
sudo apt update && sudo apt install curl
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
nvm install 16Install pnpm and nodejs
curl -fsSL https://get.pnpm.io/install.sh | bash -
pnpm env use --global 16Install pipenv
pip3 install pipenvFor Debian/Ubuntu systems, you may need to install python3-venv first.
sudo apt install python3-venvRefer to the following documentation for either building from source or installing released binaries:
Note Simulation demos are not part of the released binaries, and therefore a built workspace with at least the demos repository would be required for trying out the web dashboard with simulation.
Run
pnpm installYou may also install dependencies for only a subset of the packages
pnpm install -w --filter <package>...Source Open-RMF and launch the dashboard in development mode,
# For binary installation
source /opt/ros/humble/setup.bash
# For source build
source /path/to/workspace/install/setup.bash
cd packages/dashboard
pnpm startThis starts up the API server (by default at port 8000) which sets up endpoints to communicate with an Open-RMF deployment, as well as begin compilation of the dashboard. Once completed, it can be viewed at localhost:3000.
If presented with a login screen, use user=admin password=admin.
Ensure that the fleet adapters in the Open-RMF deployment is configured to use the endpoints of the API server. By default it is http://localhost:8000/_internal. Launching a simulation from rmf_demos_gz for example, the command would be,
ros2 launch rmf_demos_gz office.launch.xml server_uri:="http://localhost:8000/_internal"The dashboard can also be built statically for better performance.
cd packages/dashboard
pnpm run build
# Once completed
npm install -g serve
serve -s buildThis only serves the frontend, the API server can be started manually to work with an Open-RMF deployment on another terminal instance,
# source Open-RMF before proceeding
cd packages/api-server
pnpm start- For general contribution guidelines, see CONTRIBUTING.
- Follow typescript guidelines.
- When introducing a new feature or component in
react-components, write tests and stories. - When introducing a new feature in
dashboard, write tests as well as e2e test whenever possible. - When introducing API changes with
api-server,- If the new changes are to be used externally (outside of the web packages, with other Open-RMF packages for example), make changes to
rmf_api_msgs, before generating the required models using this script with modified commit hashes. - Don't forget to update the API client with the newly added changes with these instructions.
- If the new changes are to be used externally (outside of the web packages, with other Open-RMF packages for example), make changes to
- Check out the latest API definitions here, or visit
/docsrelative to your running server's url, e.g.http://localhost:8000/docs. - Develop the frontend without launching any Open-RMF components using storybook.
See the rmf-dashboard docs.
-
If a feature is missing or is not working, it could be only available in an Open-RMF source build, and not in the binaries. Try building Open-RMF from source and source that new workspace before launching the API server.
rmf-webmay use in-development features of Open-RMF. -
Creating tasks from the web dashboard when running a simulated Open-RMF deployment will require the task start time suit simulation time, which starts from unix millis 0. Try creating the same task with a start date of before the year of 1970.
-
Check if the issue has already been reported or fixed.
