Install command for Vesc + firmware (temp):
1) Go to the repo
cd ~/Vnavros2setup
2) Ensure flatpak + flathub
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo``` 3) Try installing the exact pinned commit (preferred)
COMMIT=$(cat external/vesc_tool/vesc_tool.flatpak.commit) echo "Installing VESC Tool at commit: $COMMIT" flatpak install -y --noninteractive flathub com.vesc_project.VescTool//stable --commit="$COMMIT" || FALLBACK=1else
FALLBACK=1fi 4) If commit install didn’t run, try your flatpakref from the repo
if [ -f external/vesc_tool/vesc_tool.flatpak.info ]; then cp external/vesc_tool/vesc_tool.flatpak.info /tmp/vesc_tool.flatpakref flatpak install -y /tmp/vesc_tool.flatpakref || SECOND_FALLBACK=1 else SECOND_FALLBACK=1 fifi 5) Final fallback (only if neither repo file worked)
flatpak install -y flathub com.vesc_project.VescToolfi 6) Serial permissions (once per user session)
newgrp dialout 7) Run it
flatpak run com.vesc_project.VescTool
Install command for Vesc + firmware [if not flatpak] (temp):
1) Dev packages
sudo add-apt-repository -y universe
sudo apt update
sudo apt install -y \
build-essential git \ qtbase5-dev qtdeclarative5-dev qtquickcontrols2-5-dev \ qtmultimedia5-dev libqt5svg5-dev libqt5serialport5-dev \ qtconnectivity5-dev qtpositioning5-dev libqt5gamepad5-dev \ qttools5-dev qttools5-dev-tools \ qml-module-qtquick2 qml-module-qtquick-controls qml-module-qtquick-controls2 \ qml-module-qtquick-layouts qml-module-qtgraphicaleffects \ qml-module-qtmultimedia qml-module-qtbluetooth qml-module-qtpositioning \ qtbase5-private-dev qtdeclarative5-private-dev \ libgl1-mesa-dev libglu1-mesa-dev
2) Clone and configure with Qt5 qmake
git clone https://github.com/vedderb/vesc_tool.git
cd vesc_tool
Force Qt5 toolchain (avoid Qt6 being picked)
/usr/lib/qt5/bin/qmake -v # should say "Using Qt version 5..."
rm -f Makefile .qmake.stash
/usr/lib/qt5/bin/qmake -config release "CONFIG += release_lin build_original exclude_fw"
3) Build & run
While debugging packages, do serial to see first error:
make -j1
Once clean, go parallel:
make -j”$(nproc)“
Run (name matches current tag)
./build/lin/vesc_tool_6.06
Instructions to launch teleop & vesc:
1) Go to Workspace
cd ~/Vnavros2setup/workspaces/f1tenth_ws
2) Install deps
source /opt/ros/jazzy/setup.bash
rosdep update
rosdep install --from-paths src --ignore-src -r -y || true
sudo apt install -y ros-jazzy-asio-cmake-module ros-jazzy-io-context ros-jazzy-serial-driver
3) Build & source
colcon build --symlink-install
source install/setup.bash
3) Find VESC and Joystick ports
ls -l /dev/serial/by-id/
ls -l /dev/input/js*
# Vesc example result:
# usb-STMicroelectronics_ChibiOS_RT_Virtual_COM_Port_304-if00 -> ../../ttyACM0
# Joystick example result:
# /dev/input/js0
4) Run the driver + bridge (defaults: VESC at /dev/ttyACM0)
export VESC_DEV=/dev/ttyACM0
ros2 launch launches vesc.launch.py vesc_port:=$VESC_DEV
5) In a second terminal (build env again) run teleop (defaults: Joy at /dev/input/js0)
source /opt/ros/jazzy/setup.bash
cd ~/Vnavros2setup/workspaces/f1tenth_ws
source install/setup.bash
export JOY_DEV=/dev/input/js0
ros2 launch launches teleop.launch.py joy_dev:=ttyUSB0
Install command for 435i (temp):
sudo apt update
sudo apt install -y v4l-utils \
ros-jazzy-librealsense2=2.56.4-1noble.20250722.140707 \ ros-jazzy-realsense2-camera=4.56.4-1noble.20250814.083109 \ ros-jazzy-realsense2-camera-msgs=4.56.4-1noble.20250806.110923```
# permissions (safe to re-run)
sudo udevadm control --reload-rules && sudo udevadm trigger
sudo usermod -aG video $USER
# Launch command for 435i (old):
ros2 launch realsense2_camera rs_launch.py device_type:=d435i enable_color:=true enable_depth:=true pointcloud.enable:=true align_depth:=true rgb_camera.profile:=1280x720x30 depth_module.profile:=1280x720x30
# Launch command for 435i:
ros2 run realsense2_camera realsense2_camera_node --ros-args -p enable_color:=true -p spatial_filter.enable:=true -p temporal_filter.enable:=true -p accel_qos:=DEFAULT
# Install commands for S2Pro Lidar (temp):
# Launch command for S2Pro Lidar: