Skip to content
Bruce Allen edited this page Jun 22, 2020 · 24 revisions

ROS2 Foxy and Connext 6.0.x

As of June 2020, ROS2 Foxy Fitzroy is available. Binary packages are available for Ubuntu Focal 20.04. Currently, per https://index.ros.org/doc/ros2/Installation/DDS-Implementations/Install-Connext-University-Eval/, "the Connext RMW layer in ROS2 is compatible with version 5.3.x of RTI Connext DDS, but not with the most-recent version (6.0.x)." Mininet testbed is currently set to work with Ubuntu 18.04, ROS2 Crystal, eProsima FastRTPS.

Here are our upgrade options:

Ubuntu ROS2 DDS
18.04 Crystal eProsima FastRTPS, Connext 5.3.x (untested)
18.04 Eloquent eProsima FastRTPS (mininet_testbed failed), Connext 5.3.x (untested), Cyclone DDS (untested)
20.04 (untested) Foxy eProsima FastRTPS, Connext 5.3.x, Cyclone DDS
20.04 (untested) (future) eProsima FastRTPS, Connext 5.3.x, Connext 6.0.x, Cyclone DDS

ROS2 Eloquent

It would be nice to use the latest ROS2 to examine latest QoS and Security provisions. Currently, ROS2 Eloquent does not appear to work with Mininet-Wifi. This needs re-tested. To work with Eloquent, port ROS2 Node interfaces create_publisher and create_subscription to handle new parameter requirements.

In the future, to install ROS2 Eloquent:

see https://index.ros.org/doc/ros2/Installation/Eloquent/Linux-Install-Debians/. For Ubuntu 18, you can put these ROS2 setup instructions in a file called, for example, install_ros2.bash:

#!/bin/bash
# abort on error
set -e

sudo apt update && sudo apt install curl gnupg2 lsb-release
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
sudo sh -c 'echo "deb http://packages.ros.org/ros2/ubuntu `lsb_release -cs` main" > /etc/apt/sources.list.d/ros2-latest.list'
sudo apt update
sudo apt install ros-eloquent-desktop
sudo apt install ros-eloquent-ros-base
sudo apt install python3-argcomplete
sudo apt install python3-colcon-common-extensions

and then run it:

 bash install_ros2.bash

Set up your environment to access ROS2 by adding this to the bottom of your .bashrc file:

source /opt/ros/eloquent/setup.bash

If you happen to have multiple ROS versions installed, be sure only one of them is sourced in your .bashrc file.

Mininet-WiFi

The mininet testbed is set up to work with Mininet-WiFi v2.4.3. It should be upgraded to v3.0.0.

Install / Uninstall Mininet-WiFi

Install: See https://github.com/nps-ros2/mininet_testbed/wiki or https://github.com/intrig-unicamp/mininet-wifi

Specifically:

mkdir gits
cd gits
git clone https://github.com/intrig-unicamp/mininet-wifi
cd mininet-wifi
git checkout v2.4.3      # or leave out for v3.0.0
sudo util/install.sh -Wlnfv

Test: Start Python, attempt to import module: type python then type from mn_wifi.cli import CLI_wifi

Uninstall: https://mininet-wifi.github.io/faq/#uninstall-mininet-wifi. This might do:

sudo rm -rf /usr/local/bin/mn /usr/local/lib/python*/*/*mininet*

Mininet-WiFi Hang

When running with 50 Wifi nodes, Mininet-WiFi hung, likely at R1 which was running Wireshark. Attempts to close Wireshark hung. Attempts to close the runner hung and attempts to clean up via sudo mn -c indicated:

*** Killing mac80211_hwsim
rmmod: ERROR: Module mac80211_hwsim is in use

Attempts to re-start a new runner hung. System shutdown failed on each wlan0: No active IBSS STAs - trying to scan for other IBSS networks with same SSID (merge) and A stop job is running for WPA supplicant. Restart cleared the broken state.