Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
30b996d
fix(docker): link script
juelg May 5, 2026
fce0ff6
feat: zed cli rgb snapshot
juelg May 5, 2026
2f7fe19
fix(teleop): depth in cameras
juelg May 5, 2026
9d44dc5
chore(quest): simplify right/left swapping logic
juelg May 5, 2026
4af54bb
impr(robotiq): physical reset only in constructor
juelg May 5, 2026
2e78021
feat: robotiq in teleop script
juelg May 12, 2026
7b18891
impr(gripper): improved change detection
juelg May 12, 2026
785acb1
feat(zed): add option to record both eyes
juelg May 12, 2026
07a8d3d
feat(inference): add initial inference loop script
juelg May 8, 2026
f36b8e1
style: format inference franka script
juelg May 14, 2026
a31bcc3
Merge remote-tracking branch 'origin/juelg/inference' into juelg/hard…
juelg May 14, 2026
844d78b
fix(franka): inference script after testing
juelg May 14, 2026
006ccaf
Merge remote-tracking branch 'origin/master' into juelg/hardware-fixes
juelg May 18, 2026
ac4836f
feat: sim inference
juelg May 18, 2026
fc401e6
fix: patch always open gripper observation
juelg May 18, 2026
103f572
Merge remote-tracking branch 'origin/master' into juelg/hardware-fixes
juelg May 19, 2026
f9c0c9a
feat: reconnect and keyboard control
juelg May 19, 2026
e945ccb
feat: optionally record
juelg May 19, 2026
2081f00
feat: added mp4 video converter from recording
juelg May 19, 2026
1c7a9cb
feat(mp4): added joint display
juelg May 19, 2026
d2e35b7
fix: printing and sim sleep
juelg May 19, 2026
82f1ace
feat: action chunking optionally in inference script
juelg May 19, 2026
ce16d0a
feat: support for relative actions
juelg May 19, 2026
80f3657
feat: inference add success button
juelg May 19, 2026
74a5b76
fix(storage wrapper): flush keeps last to avoid success problems
juelg May 19, 2026
6d795ae
fix(mp4): shows joint actions if available
juelg May 19, 2026
8bc34f2
fix(fr3): torque discontinuity while reset
juelg May 19, 2026
8eaa1a7
fix(hw camera): stop camera before stop polling thread
juelg May 19, 2026
26f549f
feat: using input instead of pynput
juelg May 19, 2026
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
2 changes: 2 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
**/build/
real*
test*
5 changes: 4 additions & 1 deletion docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,10 @@ RUN chmod +x /usr/local/bin/link-editable-source \
&& uv pip install --no-build-isolation /opt/rcs-src/extensions/rcs_fr3 \
&& uv pip install /opt/rcs-src/extensions/rcs_realsense \
&& uv pip install /opt/rcs-src/extensions/rcs_robotiq2f85 \
&& uv pip install /opt/rcs-src/extensions/rcs_zed
&& uv pip install /opt/rcs-src/extensions/rcs_zed \
&& uv pip install /opt/rcs-src/examples/teleop/SimPublisher \
&& uv pip install /opt/rcs-src/2f85-python-driver \
&& uv pip install /opt/rcs-src/vlagents

WORKDIR /workspace/robot-control-stack

Expand Down
3 changes: 2 additions & 1 deletion docker/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ Notes:
- `~/zed_models` is mounted into `/usr/local/zed/resources` to match the direct `docker run` setup.
- `/dev/dri` is masked inside the container so host Mesa/AMD render nodes do not override the NVIDIA runtime devices.
- NVIDIA PRIME/GLX environment variables are exported to bias OpenGL/EGL selection toward the NVIDIA stack when using X11 forwarding.
- Python source changes are picked up from the mounted repo, including `extensions/rcs_zed`.
- The simulator still bootstraps EGL for offscreen MuJoCo camera rendering; set `RCS_MUJOCO_DISABLE_EGL=1` only if you intentionally want to disable that path.
- Python source changes are picked up from the mounted repo.
- If you change C++ code in `rcs` or `rcs_fr3`, rebuild the image.
- For non-GPU hosts, comment out the GPU-related lines in `docker/compose/dev.yml`.
26 changes: 11 additions & 15 deletions docker/link-editable-source.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,26 +10,21 @@ fi

SITE_PACKAGES="$(python -c 'import sysconfig; print(sysconfig.get_paths()["purelib"])')"

link_mixed_package() {
link_compiled_package() {
src_dir="$1"
dst_dir="$2"
keep_dir_name="${3:-}"

if [ ! -d "$src_dir" ] || [ ! -d "$dst_dir" ]; then
return
fi

# Replace only the Python sources from the mounted repo and keep compiled
# artifacts that were installed into site-packages during image build.
for path in "$src_dir"/* "$src_dir"/.[!.]* "$src_dir"/..?*; do
[ -e "$path" ] || continue
name="$(basename "$path")"
if [ -n "$keep_dir_name" ] && [ "$name" = "$keep_dir_name" ]; then
continue
fi
rm -rf "$dst_dir/$name"
cp -as "$path" "$dst_dir/$name"
done
tmp_keep="$(mktemp -d)"
find "$dst_dir" -maxdepth 1 \( -name '_core*.so' -o -name 'lib*.so*' \) -exec mv {} "$tmp_keep/" \;
rm -rf "$dst_dir"
mkdir -p "$dst_dir"
cp -as "$src_dir/." "$dst_dir/"
find "$tmp_keep" -maxdepth 1 -type f -exec mv {} "$dst_dir/" \;
rmdir "$tmp_keep"
}

link_pure_python_package() {
Expand All @@ -44,8 +39,9 @@ link_pure_python_package() {
ln -s "$src_dir" "$dst_dir"
}

link_mixed_package "$REPO_ROOT/python/rcs" "$SITE_PACKAGES/rcs" "_core"
link_mixed_package "$REPO_ROOT/extensions/rcs_fr3/src/rcs_fr3" "$SITE_PACKAGES/rcs_fr3" "_core"
link_compiled_package "$REPO_ROOT/python/rcs" "$SITE_PACKAGES/rcs"
link_compiled_package "$REPO_ROOT/extensions/rcs_fr3/src/rcs_fr3" "$SITE_PACKAGES/rcs_fr3"
link_pure_python_package "$REPO_ROOT/extensions/rcs_realsense/src/rcs_realsense" "$SITE_PACKAGES/rcs_realsense"
link_pure_python_package "$REPO_ROOT/extensions/rcs_robotiq2f85/src/rcs_robotiq2f85" "$SITE_PACKAGES/rcs_robotiq2f85"
link_pure_python_package "$REPO_ROOT/extensions/rcs_zed/src/rcs_zed" "$SITE_PACKAGES/rcs_zed"
link_pure_python_package "$REPO_ROOT/vlagents" "$SITE_PACKAGES/vlagents"
Empty file added examples/inference/README.md
Empty file.
Loading
Loading