Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
102 changes: 59 additions & 43 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,96 +1,109 @@
# Lucy ROS 2 workspace (Jazzy)

Workspace bringup for the Lucy / InMoov humanoid. Everything (ROS 2 Jazzy, Gazebo, RViz, the web control panel) runs inside a single Docker container — you only need **Docker**, **Git** and **Python 3** on the host (plus **`xhost`** on Linux for GUI forwarding; on macOS the GUI is viewed over VNC with no extra software — see [GUI: RViz and Gazebo](#gui-rviz-and-gazebo)).
Workspace bringup for the Lucy / InMoov humanoid. ROS 2 Jazzy, Gazebo, RViz, and the web control panel run **natively** via [Pixi](https://pixi.prefix.dev/) and [RoboStack](https://robostack.github.io/) — no Docker required for day-to-day development.

## Requirements

- [Python3](https://www.python.org/downloads/)
- [Docker](https://docs.docker.com/engine/install/)
- [Git](https://git-scm.com/downloads)
| Requirement | Linux | macOS | Windows |
|-------------|-------|-------|---------|
| [Git](https://git-scm.com/downloads) | ✓ | ✓ | ✓ ([Git for Windows](https://git-scm.com/install/windows)) |
| [Python 3](https://www.python.org/downloads/) (for `Lucy.py`) | ✓ | ✓ | ✓ |
| [Pixi](https://pixi.prefix.dev/latest/installation/) **≥ 0.78** | ✓ | ✓ | ✓ |
| **tmux** (multi-window launcher) | ✓ | ✓ (`brew install tmux`) | — (launcher runs directly) |

<sub>Linux GUI forwarding uses `xhost` (preinstalled). On Wayland run `xhost +local:docker` if windows don't open — see [GUI](#gui-rviz-and-gazebo).</sub>
ROS packages are installed by Pixi into `.pixi/`; you do not need a system ROS install.

> **Windows users:** see the [Windows README](windows/README.md) — **`Lucy-Setup.exe`** to install/update, **`Lucy.exe`** to launch.
GUI apps (RViz, Gazebo, rqt) use your **native display**. Platform-specific notes (Wayland, AirPlay port conflicts) are in the [developer guide](docs/developer_lucy_packages.md#platform-setup).

## Get the repository

Install the [requirements](#requirements) first, then grab the repo. You can clone it with Git (recommended — makes updates a `git pull`) or download a ZIP.

**Option A — Clone with Git (recommended):**
**Clone (recommended):**

```bash
git clone https://github.com/Sentience-Robotics/lucy_ws.git
cd lucy_ws
```

**Option B — Download the ZIP:**
**Or** download the ZIP from GitHub (**Code → Download ZIP**), extract, and `cd lucy_ws`.

- Open the repository page on GitHub, click the green **Code** button, then **Download ZIP**, and extract it.
Run `Lucy.py` and the install scripts **from the repository root** — they read `config/` and paths relative to that directory.

Then open a terminal and move into the project folder before running anything:
## Install

### Linux / macOS

```bash
cd lucy_ws
curl -fsSL https://pixi.sh/install.sh | bash # if Pixi is not installed
export PATH="$HOME/.pixi/bin:$PATH" # if needed
./install.sh
```

> The manager (`Lucy.py`) must be run **from the repository root** — it reads `config/`, `docker/Dockerfile.jazzy` and mounts the workspace relative to that directory.
### Windows

**End users:** download **`Lucy-Setup.exe`** from [GitHub Releases](https://github.com/Sentience-Robotics/lucy_ws/releases). It installs Lucy, clones sub-repos, runs `pixi install`, and builds the workspace. See the [Windows README](windows/README.md).

**Developers (from source):**

```powershell
python windows\Lucy.py --cli install --repos-branch master
```

Or from Git Bash: `./install.sh`

## Quick start

A Python-based Text User Interface (TUI) manages the whole workspace — installing, rebuilding, and launching the environment. From the repository root, run the manager for your platform:
After install, launch the **Lucy manager** TUI from the repository root.

### Linux / macOS

```bash
python3 Lucy.py
```

> On UNIX systems, if you ever run the scripts by hand, `chmod +x install.sh launch_lucy.sh` first. `./install.sh` is only a fallback to `Lucy.py`.

### Windows

**Installer (recommended):** download `Lucy-Setup.exe` from [GitHub Releases](https://github.com/Sentience-Robotics/lucy_ws/releases), then see the [Windows README](windows/README.md).
**End users:** open **Lucy** from the Start Menu (runs `Lucy.exe` → Control Center).

**From source (developers):**
**Developers:**

```bash
python windows/Lucy.py --cli install # first time
python windows/Lucy.py # launch
```powershell
python windows\Lucy.py
```

> **Windows** additionally needs a third-party X Server for RViz/Gazebo — see the [Windows README](windows/README.md). End users should use **`Lucy-Setup.exe`** instead of manual install.
Or Git Bash: `./launch_lucy.sh`

### Opening the Control Panel
## Using the Lucy launcher

After **`Launch`**, enable **Core + Control Panel** in the launcher. Once it is running, the **Lucy Control Panel is accessible in your browser at [http://localhost:4004](http://localhost:4004)** (or the next free port if 4004 is already taken). The launcher also shows the exact URL next to the Control Panel entry once it's up.

| Key | Action |
|-----|--------|
| **Up/Down** | Navigate |
| **Space** | Toggle a package or tool |
| **Enter** | Apply changes / Start / Restart |
| **X** | Stop all processes and exit |

## Using the workspace
**Components you can enable:**

Selecting **Launch** from the manager starts everything inside a single **tmux** session in the Docker container. You first land on the **Lucy Control Center** TUI:
- **Core** — base robot stack (`lucy_bringup`)
- **Modifiers** — Simulator (Gazebo), **… headless** (server-only sim, under Simulator), Visualizer (RViz), Real Hardware
- **Interfaces** — Control Panel (web UI), Lucy CLI
- **Tools** — Console, rqt

- **Up/Down arrows** — navigate
- **Space** — toggle a package or tool on/off
- **Enter** — apply your changes (new tools open in their own background windows)
- **X** — stop all processes and exit the container
> **Recommended starting point:** **Core + Control Panel** — the web 3D viewer is enough for most work without heavy GUI apps.

### Launch options
**Control panel:** after Launch, enable **Core + Control Panel**. Open [http://localhost:5000](http://localhost:5000) (or the URL shown in the launcher if another port was chosen).

What you toggle in the launcher falls into a few groups:
**tmux windows** (Linux/macOS):

- **Core** — the base robot software stack (*lucy_bringup*), everything else builds on it.
- **Modifiers** (extend Core):
- **Simulator (Gazebo)** — physics simulation
- **Visualizer (RViz)** — ROS 3D visualizer
- **Real Hardware** — connect to the physical robot
- **Interfaces:**
- **Control Panel** — web UI with a built-in 3D viewer
- **Lucy CLI** — terminal control interface
- **Tools** — Console, rqt, and VNC viewers.
- **`Ctrl+B` then `W`** — window list
- **`Ctrl+B` then `N`** / **`P`** — next / previous window

Gazebo, RViz and rqt are native GUI apps and need a display — native X11 or the VNC desktop (see [GUI: RViz and Gazebo](#gui-rviz-and-gazebo)). Each interface/viewer that exposes a URL shows it right in the launcher once it's running.
On Windows, the Control Center runs without tmux (one process tree). Gazebo, RViz, and rqt still open as native GUI apps when enabled.

> **Recommended starting point:** enable **Core + Control Panel**. The control panel's web 3D viewer is usually enough to get going and avoids the heavier GUI apps (Gazebo/RViz) entirely.
## Developer setup

<<<<<<< HEAD
### Managing tmux windows

Tools (the console, CLI, viewers…) run in background windows, so a few `tmux` basics help you move between them:
Expand Down Expand Up @@ -159,3 +172,6 @@ the address it shows. Defaults:

- [`docs/developer_lucy_packages.md`](docs/developer_lucy_packages.md) — developer guide: per-repo docs, all `install.sh` / `launch_lucy.sh` flags, dev mode, ports, environment overrides, packages overview.
- [`docs/launcher_packages.md`](docs/launcher_packages.md) — launcher guide: how to add new packages to the launcher UI and understand the configuration fields.
=======
For developer mode, Pixi component tasks (`pixi run core`, `sim-headless`, …), debug shell, SSH clones, local repo overrides, ports, and advanced launch options, see the **[developer guide](docs/developer_lucy_packages.md)**.
>>>>>>> 41e84e8 (evol(windows,docs): update Windows support and documentation)
Loading
Loading