So far for networking the JetsonBot we’ve been relying on an existing wireless network for communication between the JetsonBot and the Robot Operating Center (ROC). However, there are times when it would be nice to have the JetsonBot and the ROC have their own separate network and not have to rely on any existing infrastructure. This video shows how to accomplish that goal. Looky here:
In a lot of situations, like at a group gathering, trade show or conference, there may be no wireless network available to allow the JetsonBot to communicate with a ROC. Fortunately the JetsonBot is capable of creating its own Wireless Access Point (WAP) which allows other computers to join the JetsonBot on its own wireless network to talk robot goodness.
The Network Interface Card (NIC) on the JetsonBot is an Intel 7260 Wireless/BT NIC card. The Intel 7260 is installed on the Jetson TK1 that drives the JetsonBot. One of the features of the Intel 7260 is the ability to act as an access point. Note that not all wireless NICs have this ability.
On the JetsonBot, open the network connections panel. Create a new connection (in the demo video the name ‘JetsonBot-Wifi’ was used) and enter the name, the SSID, and select the wireless card’s MAC address. Under the ‘Wi-Fi Security’ tab, select the personal WPA and enter a password. To finish up, go to the ‘IPv4 Settings’ tab and set the ‘Method’ to ‘Shared to other computers’. Save and exit.
Next, open up a Terminal and:
$ sudo gedit /etc/NetworkManager/system-connections/JetsonBot-Wifi
Under the [802-11] section, change the ‘mode’ from ‘infrastructure’ to ‘ap’ and then save the file. At that point you’re ready to ‘connect’ to the JetsonBot-Wifi network. This extra step sets the JetsonBot-Wifi network as an access point for other devices.
Disconnect from a wired ethernet network if connected. Go back to the Network menu and select ‘Connect to Hidden Wi-Fi Network…’. You will see the JetsonBot-Wifi network. Select it and enter the Password and press ‘Connect’. After a few moments, the machine will be connected and an IP address assigned. The address will be 10.42.0.1. You can find the IP address using the ifconfig command under the wlan0 entry. At this point, the JetsonBot will be acting as a wireless access point, making the JetsonBot-Wifi network available.
The ROS environment variables will need to be updated to reflect the new JetsonBot network. On the JetsonBot the environment variable ROS_IP should be updated to 10.42.0.1. If you recall from previous articles, these variables are set in the ~/.bashrc setup script.
On the ROC (in the demo video another, separate Jetson TK1), go to the Network menu and select ‘Edit Connections’. Select JetsonBot-Wifi and set the password in the ‘Wi-Fi Security’ tab. Save and Close the dialog box. Then, open the Network menu again and select JetsonBot-Wifi. The machine will connect to the JetsonBot-Wifi network, and robot goodness can commence.
On the ROC you will have to set the ROS environment variables ROS_MASTER_URI to the JetsonBot IP address, and the ROS_IP to be the IP address of the ROC. These environment variable settings are usually stored in ~/.bashrc.
To test from the ROC, ssh into the JetsonBot and start up the minimal.launch script on ROS. You should be able to start the JetsonBot dashboard and see usual messages being passed.