Installation

Note

Learn ROS and get your ROS certificate by enrolling in the Udemy course (Highest Rated course): ROS for Beginners: Basics, Motion and OpenCV.

Learn ROS-Navigation and get your ROS-Navigation certificate by enrolling in the Udemy course (Highest Rated course): ROS for Beginners II: Localization, Navigation and SLAM.

Learn about ROS2: ROS Next Generation by enrolling in the Udemy course ROS2 How To: Discover Next Generation ROS

Step 1: installing required packages:

To control any robot you have to install ROSLink packages with a suitable bridge for your robot. Gaitech Scope is using ROSLink-ba version which has WebSocket connection in both sides robot and client sides, which improves the ability to send a video stream.

Note

ROSLink bridges are developed continuously for each ROS-robot comes to the market now FEB 2019 we have bridges for (turtlebot2, turtlebot3, Gapter, ARdrones and ria)_

To install and compile roslink-ba open terminal and type

cd ~/catkin_ws/src
git clone https://github.com/gaitech-robotics/gaitech_roslink.git
cd ../
catkin_make

The launch should start working without any problems or errors.

We need also to install a script that runs as a WebSockets server to manage the communication between the robot and the user which is available in this link

THis websocket package may not be installed in the robot, so lets install it

  • First we need to install pip (if it is already installed you can skip this step):

    open the terminal and type these commands:

    sudo apt-get update
    
    sudo curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
    
    python get-pip.py
    

you can check by type this command:

pip --version
pip 18.0 from /usr/local/lib/python2.7/dist-packages/pip (python 2.7)
  • Secound is to install the websocket package, type in the termenal this command:
pip install git+https://github.com/dpallot/simple-websocket-server.git

Step 2: Networking configration:

From an Android Device open this link here to download the .apk file. Also you can install the app from Google Play Store.

There is also a web-app version of Gaitech Scope. You can open this page and when it gets loaded it will work exactly as the .apk file. apk file is a bit faster, but the web-app version can be working on any platform (windows, ios, ubuntu, etc)

Step 3: Networking configration:

The main thing to care about it when using Gaitech Scope is to be sure that your robot and smartphone are connected to the SAME NETWORK.

The next thing to do is to put the IP of the machine that runs the WebSocket server script.

Note

To know the IP address you can type “ifconfig” in the terminal.

Type this IP in the options page in the app as shown in these screenshots.

../_images/gaitech_scope.jpg

Figure 1: type on the setting button to go to options page

../_images/change_IP_2.jpeg

Figure 2: fill the IP, press Change IP, then press back button.

Step 4: running robot:

In the robot terminal run the bringup launch file, the command depends on the robot itself, e.g for ria robots the bring up is:

roslaunch e100_bringup minimal.launch

In another terminal run the python WebSocket server.

python /path/to/the/file/

The last thing is to launch the rolsink bridge, this command depends on the robot you are using let’s go with ria this time also, so the command will be:

roslaunch roslink-ba riae100.launch

Now open the app, make sure that the IP address is correct and enjoy controlling your robot.

Running RIA-E100 over the internet

To run and control RIA-e100 over public network you need just a public server with a public IP address. The python webosocket server has the abillty to run on a public server as will, and to do that follow these steps.

  • Do the prevoise installation steps that related to websocket server above on the server.
  • Run the python secript on the server and make sure there is no errors messages
  • On the robot PC go to this dirctory
catkin_ws/src/roslink/src/launch
  • open the riae100.launch file and change the ground_station_ip value to be the public IP address for your server
  • save the file and run the code as if it on a local network.