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: