Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
8e51c2b
added README
Dec 18, 2024
8c2b20b
initial commit (untested)
Dec 18, 2024
5246d36
fixed module initialization
Dec 18, 2024
1b04e65
made fields readable
Dec 18, 2024
26b99cc
changed README
Dec 18, 2024
3fbc4f7
changed best-effort strategy
Jan 15, 2025
4180784
removed unused import
Jan 15, 2025
88bc290
Rename package
Flova Feb 27, 2025
4a72ac7
Update README.md
Flova Feb 27, 2025
648432e
Update README.md
Flova Feb 27, 2025
58dcc17
Apply formatting
Flova Mar 3, 2025
43c9f7d
Make clippy happy
Flova Mar 3, 2025
c42f4c9
Merge branch 'main' of github.com:bit-bots/bitbots_rust_nav
Flova Mar 3, 2025
0081acf
Add debug gui and fix weird edge cases
Flova Mar 4, 2025
8dab02a
Remove cargo.lock as this is a lib
Flova Mar 8, 2025
25479ab
Commit lock file for reproducible python builds
Flova Jun 18, 2025
98d029a
Bump pyo3
Flova Jun 18, 2025
9cd0669
Merge pull request #1 from bit-bots/fix/lock_file
Flova Jun 18, 2025
5c6c1ed
Move code to src folder
Flova Aug 29, 2025
2fa198e
Ignore move in git blame
Flova Aug 29, 2025
c37c68e
Adapt gitignore
Flova Aug 29, 2025
8e50b01
Fix paths and migrate to just
Flova Aug 29, 2025
179da40
Fix basler target in readme
Flova Aug 29, 2025
a11bdec
Fix webots install
Flova Aug 29, 2025
93fe860
Install webots in CI, but do not perform ping like the basler one
Flova Aug 29, 2025
0c84102
Switch shebang
Flova Aug 29, 2025
ab363bb
Fix bash function call in webots install
Flova Aug 29, 2025
fcb4000
Merge branch 'main' into feature/workspace_repo
Flova Aug 29, 2025
5e78ce8
Fix hlvs entrypoint
Flova Aug 30, 2025
00dd426
Rename pre-commit install githook
Flova Aug 30, 2025
31e6176
Add workspace cpp paths
Flova Aug 30, 2025
cd98013
Adapt docs
Flova Aug 30, 2025
f26b975
Begin porting of setup script
Flova Aug 30, 2025
fd90b0a
Add recommended extentions
Flova Aug 30, 2025
c44b64c
FIx file location
Flova Aug 30, 2025
990ccb5
Add pixi files
Flova Nov 23, 2025
dd57f7e
Small code fixes
Flova Nov 23, 2025
f1949e7
Temporary disable events executors that run is a seperate thread
Flova Nov 23, 2025
808e7f1
Use our own package channel
Flova Nov 23, 2025
a6938d9
Add teamcomm messages
Flova Nov 23, 2025
d90ea5a
Remove vcs tool
Flova Nov 23, 2025
0ff7d0f
Add dynamixel deps
Flova Nov 23, 2025
8f21ab0
Add better launch
Flova Nov 23, 2025
f22970b
mostly working versioms
Flova Nov 24, 2025
a7e0341
add yoeo to pixi deps
Flova Nov 24, 2025
735a25c
Pin versions to fix warnings
Flova Nov 25, 2025
f7935ae
bump better launvh
Flova Nov 25, 2025
baf368c
Begin to migrate justfile
Flova Nov 26, 2025
292fc98
Merge branch 'feature/pixi' of github.com:bit-bots/bitbots_main into …
Flova Nov 26, 2025
e06c9ab
Ignore pixi in vscode search
Flova Nov 26, 2025
7213434
Fix rl walk build
Flova Nov 26, 2025
e24b1bc
Load models from package
Flova Nov 26, 2025
8f8073d
Add bitbots rust nav to the main repo
Flova Nov 27, 2025
9587b13
Remove requirements file
Flova Nov 27, 2025
c8d921c
Use readine hack
Flova Nov 29, 2025
79dc5ad
Use smaller files
Flova Nov 29, 2025
48692f0
Enable events executor again
Flova Dec 7, 2025
4329789
Migrate CI to pixi
Flova Dec 7, 2025
9e6c569
Disable cache
Flova Dec 7, 2025
856bcf5
Install pylon in CI
Flova Dec 7, 2025
1a95681
Fix snapshots
Flova Dec 7, 2025
8d452d4
Organize deps
Flova Dec 7, 2025
743f231
Use pixi for pre-commits
Flova Dec 7, 2025
1e58594
Apply formatting
Flova Dec 7, 2025
8fb1fbf
Use dedicated ci env
Flova Dec 7, 2025
3442936
Add correct env variables
Flova Dec 7, 2025
b8e5e8f
Migrate dev container
Flova Dec 7, 2025
00fb576
Migrate setup script
Flova Dec 7, 2025
8257f89
Remove just
Flova Dec 7, 2025
9f598e1
Make linter happy
Flova Dec 7, 2025
d799619
Try to constrain environment
Flova Dec 7, 2025
4450b96
Try another constraint
Flova Dec 7, 2025
3f1bb5e
Fix pypi deps feature
Flova Dec 7, 2025
6094ba8
Fix pypi deps feature
Flova Dec 7, 2025
165c875
Merge branch 'feature/pixi' of github.com:bit-bots/bitbots_main into …
Flova Dec 7, 2025
ec0b743
Merge branch 'main' into feature/pixi
Flova Dec 7, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
34 changes: 6 additions & 28 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM ros:jazzy
FROM ubuntu:24.04

ARG user=bitbots
ARG uid=1000
Expand Down Expand Up @@ -50,25 +50,10 @@ ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8

# Setup and prioritize packages.bit-bots.de repository
# Update and upgrade all packages
RUN apt update -y \
&& apt upgrade -y --allow-downgrades

# Additional robotics related packages
RUN apt-get install -y \
python3-rosdep \
python3-vcstool \
python3-virtualenv \
ros-jazzy-camera-calibration \
ros-jazzy-desktop \
ros-jazzy-joint-state-publisher-gui \
ros-jazzy-plotjuggler \
ros-jazzy-plotjuggler-msgs \
ros-jazzy-plotjuggler-ros \
ros-jazzy-rmw-cyclonedds-cpp \
ros-jazzy-rqt-robot-monitor \
ros-jazzy-soccer-vision-3d-rviz-markers

# Set zsh as default shell
SHELL ["/bin/zsh", "-c"]

Expand All @@ -84,16 +69,6 @@ RUN groupdel users \

USER $user

# Install pip colcon extensions / patches as user
RUN python3 -m pip install --user --break-system-packages \
git+https://github.com/ruffsl/colcon-clean \
git+https://github.com/timonegk/colcon-core.git@colors \
git+https://github.com/timonegk/colcon-notification.git@colors \
git+https://github.com/timonegk/colcon-output.git@colors

# Create colcon workspace
RUN mkdir -p /home/$user/colcon_ws/src

# Install oh-my-zsh for pretty terminal
RUN sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" && \
git clone https://github.com/zsh-users/zsh-autosuggestions "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-autosuggestions"
Expand All @@ -104,5 +79,8 @@ COPY --chown=$user:$user zshrc /home/$user/.zshrc
# This is required for sharing Xauthority
ENV QT_X11_NO_MITSHM=1

# Install pixi
RUN curl -fsSL https://pixi.sh/install.sh | sh

# Switch to the workspace directory
WORKDIR /home/$user/colcon_ws
WORKDIR /home/$user/bitbots_main
26 changes: 22 additions & 4 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,30 @@
"dev.containers.copyGitConfig": false,
"dev.containers.gitCredentialHelperConfigLocation": "none"
},
"extensions": ["ms-iot.vscode-ros"]
"extensions": [
"charliermarsh.ruff", // Ruff linting and formatting support
"DavidAnson.vscode-markdownlint", // Lints markdown files
"DotJoshJohnson.xml", // XML support
"lextudio.restructuredtext", // Rendering rst files in preview
"Mastermori.dsd", // DSD support
"mohsen1.prettify-json", // JSON formatting
"MS-CEINTL.vscode-language-pack-de", // German language pack
"Ranch-Hand-Robotics.rde-pack", // ROS2 development environment
"ms-python.python", // Python support
"ms-python.vscode-pylance", // Python support
"ms-vscode.cpptools-extension-pack", // C++ support
"ms-vscode.cpptools-themes", // C++ support
"ms-vscode.cpptools", // C++ support
"streetsidesoftware.code-spell-checker-german", // Spell checker
"streetsidesoftware.code-spell-checker", // Spell checker
"tamasfe.even-better-toml", // TOML support
"trond-snekvik.simple-rst" // Syntax highlighting for rst files
]
}
},

"workspaceMount": "type=bind,source=${localWorkspaceFolder},target=/home/bitbots/colcon_ws/src/bitbots_main",
"workspaceFolder": "/home/bitbots/colcon_ws/src/bitbots_main",
"workspaceMount": "type=bind,source=${localWorkspaceFolder},target=/home/bitbots/bitbots_main",
"workspaceFolder": "/home/bitbots/bitbots_main",

"mounts": [
"type=bind,source=${localEnv:HOME},target=/srv/host_home,consistency=cached"
Expand All @@ -41,5 +59,5 @@
"seccomp=unconfined"
],

"postCreateCommand": "git config --global --add safe.directory '*'"
"postCreateCommand": "git config --global --add safe.directory '*' && $HOME/.pixi/bin/pixi install"
}
40 changes: 2 additions & 38 deletions .devcontainer/zshrc
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# If you come from bash you might have to change your $PATH.
export PATH=$HOME/bin:/usr/local/bin:$HOME/.local/bin:$PATH
export PATH=$HOME/bin:/usr/local/bin:$HOME/.local/bin:$HOME/.pixi/bin:$PATH

# Set the default shell to zsh when running zsh
export SHELL="$(which zsh)"
Expand Down Expand Up @@ -48,48 +48,12 @@ bindkey "^H" backward-kill-word
bindkey "^[[1;5C" forward-word
bindkey "^[[1;5D" backward-word


# Settings for the prompt to show that we are in a docker container
export PROMPT="%K{black} 🐋 %K{blue}%F{black} %~ %f%k%F{blue}%f " # Prefix the prompt with DOCKER

# >>> bit-bots initialize >>>

# Ignore some deprecation warnings
export PYTHONWARNINGS="ignore:::setuptools.command.install,ignore:::setuptools.command.easy_install,ignore:::pkg_resources,ignore:easy_install command is deprecated,ignore:setup.py install is deprecated"

# Limit ROS 2 communication to localhost (can be overridden when needed)
export ROS_DOMAIN_ID=24
export ROS_AUTOMATIC_DISCOVERY_RANGE=LOCALHOST

# Set the default colcon workspace
export COLCON_WS="$HOME/colcon_ws"

# Set the default log level for colcon
export COLCON_LOG_LEVEL=30

# Define a log layout
export RCUTILS_COLORIZED_OUTPUT=1
export RCUTILS_CONSOLE_OUTPUT_FORMAT="[{severity}] [{name}]: {message}"

# Set the default Middleware
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp

# Load our ros plugin script containing useful functions and aliases for ROS 2 development
if [[ -f $COLCON_WS/src/bitbots_main/scripts/ros.plugin.sh ]]; then
source $COLCON_WS/src/bitbots_main/scripts/ros.plugin.sh
fi

# <<< bit-bots initialize <<<

# Set default editor
export VISUAL="vim"

# Some user instructions
echo "Hello there! Welcome to the Bit-Bots ROS 2 development environment!"
echo "If you just (re)build this container a few manual steps are nessessary:"
echo "Create a ssh key with 'ssh-keygen -q -f $HOME/.ssh/id_rsa -N \"\" && cat $HOME/.ssh/id_rsa.pub'."
echo "Copy the commands output and add it to your GitHub account ('https://github.com/settings/keys') (ctrl+click to open in browser)."
echo "Now you can install the rest of the workspace and compile everything with 'make install && cba'."
echo "To update an existing workspace you can use 'make update && cba'."
echo "To compile all packages in the workspace use 'cba'. If you want to compile only a specific package use 'cbs <package_name>'."
echo "Run 'xhost local:root' in a terminal on the host machine to enable GUI applications (e.g. rviz2) in the container. This needs to be done after every restart of the host machine."
echo "Now you can install the rest of the workspace and compile everything with 'pixi run build'."
1 change: 1 addition & 0 deletions .git-blame-ignore-revs
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,4 @@ f29fb619aef9f416cbbdc74ec77c23423dcefe07
ae9fbef74c50ba1e462d1b76da16779c76aa0d5b
476e75e3f3d17c35ac89b17f513d93078687d613
cd3280273363807e1b5df2ade0138d48178cb06b
5c6c1edc69b5d4e26bb7bdc3fef3399e2a61567b
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
.vscode/settings.json filter=removeFullHomePath
# SCM syntax highlighting & preventing 3-way merges
pixi.lock merge=binary linguist-language=YAML linguist-generated=true
2 changes: 1 addition & 1 deletion .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

## Checklist

- [ ] Run `colcon build`
- [ ] Run `just build`
- [ ] Write documentation
- [ ] Test on your machine
- [ ] Test on the robot
Expand Down
51 changes: 14 additions & 37 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,62 +4,39 @@ on:
- cron: '0 0 * * *'
push:

env:
PYTHONWARNINGS: "ignore:::setuptools.command.install,ignore:::setuptools.command.easy_install,ignore:::pkg_resources,ignore:easy_install command is deprecated,ignore:setup.py install is deprecated"

jobs:
build:
runs-on: ubuntu-latest
container:
image: ubuntu:noble

steps:
- name: Cancel outdated jobs
uses: fkirc/skip-duplicate-actions@v5
with:
cancel_others: 'true'
# Remove comments to spawn an interactive debigging ssh shell in the ci

# Remove comments to spawn an interactive debugging ssh shell in the ci
#- name: Setup tmate session
# uses: mxschmitt/action-tmate@v3
# with:
# with:
# detached: true

- name: Set up ROS ecosystem
uses: ros-tooling/setup-ros@v0.7

- name: Check out repository
uses: actions/checkout@v4

- name: Configure git to trust repository
run: git config --global --add safe.directory /__w/bitbots_main/bitbots_main

- name: Add '$HOME/.local/bin' to PATH
run: |
mkdir -p $HOME/.local/bin
echo "PATH=$PATH:/github/home/.local/bin" >> "$GITHUB_ENV"
- name: Install host dependencies
run: scripts/make_basler.sh --ci

- name: Pull source code for libraries and install dependencies
run: |
sudo apt-get remove -y python3-pytest-repeat #TODO remove once the upstream apt package reports the correct version on the newest pip version
make install HTTPS=true ARGS="--ci"

- name: Set up colcon workspace
run: |
mkdir -p /colcon_ws/src
ln -s $(realpath .) /colcon_ws/src/bitbots_main
- name: Set up workspace
uses: prefix-dev/setup-pixi@v0.9.3
with:
pixi-version: v0.59.0
cache: false # Disable caching to avoid issues with large pytorch packages

- name: Build packages
run: |
. /opt/ros/jazzy/setup.sh
colcon build --symlink-install
working-directory: /colcon_ws
- name: Build
run: pixi run build

- name: Test packages
run: |
# Source workspace
. /opt/ros/jazzy/setup.sh
. install/setup.sh
# Run tests for all packages
colcon test --event-handlers console_direct+ --return-code-on-test-failure --parallel-workers 1
working-directory: /colcon_ws
- name: Test
run: pixi run test --parallel-workers 1
21 changes: 13 additions & 8 deletions .github/workflows/pre-commit.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,21 @@
name: Code style checks

on:
pull_request:
push:
branches: [main]

jobs:
pre-commit:
runs-on: ubuntu-24.04
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
- name: Install cppcheck
run: sudo apt install cppcheck -y
- uses: pre-commit/action@v3.0.1
- name: Check out repository
uses: actions/checkout@v4

- name: Set up workspace
uses: prefix-dev/setup-pixi@v0.9.3
with:
pixi-version: v0.59.0
cache: true
environments: format

- name: Run pre-commit
run: pixi run -e format format
30 changes: 20 additions & 10 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -203,11 +203,10 @@ bitbots_docs_internal

# VS Code ROS extension
.vscode/browse.vc.*
log/

# Neural Network Model Path
/bitbots_vision/models/
/bitbots_motion/bitbots_rl_motion/rl_walk_models/
/src/bitbots_vision/models/
/src/bitbots_motion/bitbots_rl_motion/rl_walk_models/

**/.*.
.idea/*
Expand All @@ -219,16 +218,27 @@ ansible_robots/*
doc_internal/*
doku/*

# library subdirectories
/lib/

# Path to the protocol buffer definitions, which are a different repository and managed by vcstool
/bitbots_team_communication/bitbots_team_communication/bitbots_team_communication/RobocupProtocol
# Protobuf generated file
/bitbots_team_communication/bitbots_team_communication/bitbots_team_communication/robocup_extension_pb2.py
/bitbots_team_communication/bitbots_team_communication/bitbots_team_communication/robocup_extension_pb2.pyi
/src/bitbots_team_communication/bitbots_team_communication/bitbots_team_communication/robocup_extension_pb2.py
/src/bitbots_team_communication/bitbots_team_communication/bitbots_team_communication/robocup_extension_pb2.pyi

# Workspace git status file from the deploy tool
**/workspace_status.json

# Do not include colcon build files
/install/
/build/
/log/

# Ignore mypy cache
.mypy_cache/

# Pytest cache
.pytest_cache/

# pixi environments
.pixi/
!.pixi/config.toml

CMakeFiles/
CMakeCache.txt
4 changes: 4 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,23 +14,27 @@ repos:
args:
- "-i"
- id: cppcheck
exclude: &exclude_robocup_protocol ^src/bitbots_team_communication/bitbots_team_communication/bitbots_team_communication/RobocupProtocol/
args:
- "--inline-suppr"
- "--suppress=missingIncludeSystem"
- "--suppress=unmatchedSuppression"
- "--suppress=unusedFunction"
- "--suppress=unusedStructMember"
- "--suppress=useStlAlgorithm"
- "--check-level=exhaustive"
- repo: https://github.com/cheshirekow/cmake-format-precommit
rev: v0.6.13
hooks:
- id: cmake-format
- id: cmake-lint
exclude: *exclude_robocup_protocol
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
hooks:
- id: check-merge-conflict
- id: check-toml
- id: check-xml
- id: check-yaml
exclude: *exclude_robocup_protocol
- id: detect-private-key
3 changes: 3 additions & 0 deletions .vscode/c_cpp_properties.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@
"/root/colcon_ws/install/*/include/**",
"/root/colcon_ws/build/**/include/**",
"/root/colcon_ws/build/**/rosidl_generator_cpp/**",
"${workspaceFolder}/install/*/include/**",
"${workspaceFolder}/build/**/include/**",
"${workspaceFolder}/build/**/rosidl_generator_cpp/**",
"${workspaceFolder}/**/include/**",
"/opt/ros/${env:ROS_DISTRO}/include/**",
"/usr/include/**",
Expand Down
6 changes: 6 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -241,4 +241,10 @@
"[jsonc]": {
"editor.defaultFormatter": "vscode.json-language-features"
},
"search.exclude": {
"build": true,
"install": true,
"log": true,
".pixi": true,
},
}
Loading