From ff66754c5de3c0d2584bfec3675b27bc1dcb7cbb Mon Sep 17 00:00:00 2001 From: Aaron Wu Date: Mon, 24 Aug 2026 15:56:06 -0400 Subject: [PATCH 1/4] Add qixstack.toml for containerized development and deployment --- qixstack.toml | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 qixstack.toml diff --git a/qixstack.toml b/qixstack.toml new file mode 100644 index 0000000..0cd8daf --- /dev/null +++ b/qixstack.toml @@ -0,0 +1,51 @@ +[stack] +name = "stinger-software" +version = "26.08.1" + +[container] +base = "ros:humble" +package-manager = "apt" + +[container.optional-mounts] +bot = [ + { source="/dev", target="/dev" }, + { source="/run/udev", target="/run/udev:ro" } +] + +[system.apt] +dependencies = [ + # Core ROS 2 packages + "ros-humble-robot-localization", + "ros-humble-foxglove-bridge", + "ros-humble-xacro", + "ros-humble-cv-bridge", + "ros-humble-sensor-msgs-py", + "ros-humble-tf-transformations", + "ros-humble-ros-gz-sim", + "ros-humble-ros-gz-bridge", + + # Utilities & build tools + "python3-pip", + "python3-colcon-common-extensions", + "v4l-utils", + "i2c-tools", + "iputils-ping", + "tmux", + "nano", + "git" +] + +[system.pip] +break-system-packages = true +dependencies = [ + "pyserial", + "adafruit-circuitpython-icm20x", + "board", + "RPi.GPIO", + "numpy<2", + "transforms3d", + "pigpio" +] + +[tool.colcon.dependencies] +sllidar_ros2 = { git = "https://github.com/Slamtec/sllidar_ros2.git", version = "main" } From c03f8505b3ff22fe77f88f9192f3ec8041517baf Mon Sep 17 00:00:00 2001 From: Aaron Wu Date: Mon, 24 Aug 2026 21:49:10 -0400 Subject: [PATCH 2/4] feat(qixstack): add ROS 2 Jazzy stack configuration with GUI tools and sllidar dependency --- qixstack.toml | 43 +++++++++++++++++++++++++++---------------- 1 file changed, 27 insertions(+), 16 deletions(-) diff --git a/qixstack.toml b/qixstack.toml index 0cd8daf..078d767 100644 --- a/qixstack.toml +++ b/qixstack.toml @@ -3,8 +3,11 @@ name = "stinger-software" version = "26.08.1" [container] -base = "ros:humble" +base = "ros:jazzy" package-manager = "apt" +pre-setup = [ + "touch /var/mail/ubuntu && chown ubuntu /var/mail/ubuntu && userdel -r ubuntu" +] [container.optional-mounts] bot = [ @@ -14,23 +17,35 @@ bot = [ [system.apt] dependencies = [ - # Core ROS 2 packages - "ros-humble-robot-localization", - "ros-humble-foxglove-bridge", - "ros-humble-xacro", - "ros-humble-cv-bridge", - "ros-humble-sensor-msgs-py", - "ros-humble-tf-transformations", - "ros-humble-ros-gz-sim", - "ros-humble-ros-gz-bridge", + # Core ROS 2 & Simulation + "ros-jazzy-robot-localization", + "ros-jazzy-tf-transformations", + "ros-jazzy-urdfdom-py", + "ros-jazzy-xacro", + "ros-jazzy-cv-bridge", + "ros-jazzy-sensor-msgs-py", + "ros-jazzy-ros-gz-sim", + "ros-jazzy-ros-gz-bridge", + "ros-jazzy-rosbridge-suite", + "ros-jazzy-foxglove-bridge", - # Utilities & build tools + # GUI & Tutorial Analysis Tools + "ros-jazzy-rviz2", + "ros-jazzy-rqt", + "ros-jazzy-rqt-image-view", + "ros-jazzy-plotjuggler-ros", + + # Utilities, Vision & Build Tools "python3-pip", "python3-colcon-common-extensions", + "python3-pytest", + "python3-opencv", + "libgoogle-glog-dev", "v4l-utils", "i2c-tools", "iputils-ping", "tmux", + "tmuxp", "nano", "git" ] @@ -39,13 +54,9 @@ dependencies = [ break-system-packages = true dependencies = [ "pyserial", - "adafruit-circuitpython-icm20x", - "board", - "RPi.GPIO", "numpy<2", "transforms3d", - "pigpio" ] [tool.colcon.dependencies] -sllidar_ros2 = { git = "https://github.com/Slamtec/sllidar_ros2.git", version = "main" } +sllidar_ros2 = { server = "github.com", namespace = "Slamtec", name = "sllidar_ros2", version = "main" } From 4124161819da4773001d6c6eb8eb899d6d96b77c Mon Sep 17 00:00:00 2001 From: Aaron Wu Date: Mon, 24 Aug 2026 22:00:18 -0400 Subject: [PATCH 3/4] feat(qixstack): make device mounts default without needing [bot] option --- qixstack.toml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/qixstack.toml b/qixstack.toml index 078d767..c9707df 100644 --- a/qixstack.toml +++ b/qixstack.toml @@ -9,8 +9,7 @@ pre-setup = [ "touch /var/mail/ubuntu && chown ubuntu /var/mail/ubuntu && userdel -r ubuntu" ] -[container.optional-mounts] -bot = [ +mounts = [ { source="/dev", target="/dev" }, { source="/run/udev", target="/run/udev:ro" } ] From c9d451665e7a85418a333540b262744df4f7dd09 Mon Sep 17 00:00:00 2001 From: Aaron Wu Date: Mon, 24 Aug 2026 22:04:07 -0400 Subject: [PATCH 4/4] feat(qixstack): add $HOME/bags mount for recording rosbags --- qixstack.toml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/qixstack.toml b/qixstack.toml index c9707df..3cbb654 100644 --- a/qixstack.toml +++ b/qixstack.toml @@ -11,7 +11,8 @@ pre-setup = [ mounts = [ { source="/dev", target="/dev" }, - { source="/run/udev", target="/run/udev:ro" } + { source="/run/udev", target="/run/udev:ro" }, + { source="$HOME/bags", target="/home/stinger-software/bags" } ] [system.apt]