- Tried with Jetson SDK Desktop at first: https://developer.nvidia.com/embedded/jetpack-sdk-60
- Disabled network manager service to avoid fighting configurations.
- Result: Onboard Realtek wifi hardware/drivers report adhoc (ibss) available, but commands failed silently.
- Update BIOS
- Flash ubuntu server 22 for Jetso Orin Nano: https://ubuntu.com/download/nvidia-jetson
- Update general ubuntu packages
sudo apt dist-upgrade sudo reboot
- Install nvidia-tegra drivers per doc Install NVIDIA proprietary software
sudo add-apt-repository ppa:ubuntu-tegra/updates sudo apt install -y nvidia-tegra-drivers-36 sudo usermod -a -G render,video ubuntu sudo reboot
- WARNING: When using Ubuntu Desktop 22 from Jetson SDK, installing the
nvidia-tegra
drivers inexplicably nukes all other drivers (display, network, etc) on the device.
- WARNING: When using Ubuntu Desktop 22 from Jetson SDK, installing the
- Install ubuntu package
iw
to manage wireless configsudo apt install -y iw
- Result: Onboard Realtek wifi hardware/drivers report adhoc (ibss) available, but commands still failed silently.
- Some links for linux-friendly adapters, including second link of 802.11s mesh point compatible ones:
- Added Panda wifi USB adapter: https://www.amazon.com/Panda-Ultra-150Mbps-Wireless-Adapter/dp/B00762YNMG
- Result: USB Panda wifi hardware/drivers report adhoc (ibss) and mesh available, both sets of commands worked.
sudo apt install slim ubuntu-desktop
sudo apt install iw
sudo ./iwup.sh
python3 ping.py
- Given nodes
A, B, C, D
arranged "linearly" by position and physical wireless links:802.11s will automatically route the entire network from/to each nodeA ---------- B ------------- C ---------- D
- When the network topology fragments, e.g.
A ---------- B C ---------- D
- Naturally cell division will occur and nodes
A,B
will still be able to communicate with each other, as willC,D
. Connection drops can be simulated by simply setting TX power to 0, which will limit viable connection range to a few feet.
- Naturally cell division will occur and nodes
- When either
A,B
andC,D
come back within range of each other, the network will re-merge and be restored for full routing from/to each node once again.B ---------- A ------------- C ---------- D
- Note: In simple wireless adhoc mode, this remerge after fragmentation is unreliable, and in fact even first ad-hoc network initialization can result in cell division despite what should be viable physical wireless links.
Per https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debs.html
sudo apt install software-properties-common
sudo add-apt-repository universe
sudo apt update
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
sudo apt update && sudo apt upgrade -y
And either ROS default graphical bundle if using wiith Ubuntu Desktop, ROS2 and RViz will be installed
sudo apt install ros-humble-desktop
OR just ros-base
for ROS2 CLI-only
sudo apt install ros-humble-ros-base
We create an example of using UDP to bridge MQTT messages with conceptually similar publish/subscribe functionality. While in this case there is a shared MQTT broker, a drop-in replacement with ROS2 would have each device subscribing and publishing to its own respective local ROS instance.
- Set ROS to loopback only (don't let it interact with mesh subnet)
- Setup Isaac ROS Dev Base containers