User Tools

Site Tools


how_to_setup_robotino_for_programming_and_navigation

How to Setup Robotino for Programming and Navigation

Author: Dylan Wallace Email: wallad3@unlv.nevada.edu
Date: Last modified on 06/24/16
Keywords: step-by-step, how to, ssh, linux, Robotino, ROS, programming, navigation


The big picture problem is navigation and mapping for robots. Solving this partially or completely is important because it allows for autonomous systems to navigate around autonomously, giving much more power than human control. This tutorial shows you how to setup and generally operate Robotino and takes approximately 1-2 hours to complete.

Motivation and Audience

This tutorial's motivation is to provide a platform to build navigation and mapping programs off of. Readers of this tutorial assumes the reader has the following background and interests:

* Know how to program in linux and C++
* Knowledge in ROS is also very helpful for these tutorials
* Perhaps also know how to ssh and use ftp
* Perhaps additional background needed may include interest in mapping and navigation algorithms
* This tutorial may also attract readers who want to work with other linux-0based systems such as Darwin or MKII


For information on ROS, please refer to this document: https://cse.sc.edu/~jokane/agitr/
For information on Linux, please refer to this webpage: http://www.ee.surrey.ac.uk/Teaching/Unix/
For information on c++, please refer to this webpage: http://www.cplusplus.com/doc/tutorial/
For information on navigation and mapping methods, refer to this internal tutorial: http://daslhub.org/unlv/wiki/doku.php?id=breadth-first_search_and_depth-first_search

The rest of this tutorial is presented as follows:

  Setup
  Operation
  Final Words

Before starting this tutorials you must have cmake 3.0 and ccmake installed onto your Ubuntu computer
For more information on upgrading your version of cmake to 3.x, see This link.

Setup

This section gives step-by-step instructions along with photos to setup Robotino for programming and mapping.

Step 1: Boot up Robotino

Power on Robotino to ensure all systems are working properly. Either connect Robotino to a 24V, 2.5A power supply, or connect two 12V batteries into the two battery slots provided on Robotino. Make sure to read through the Robotino operation manual before plugging anything in, and always make sure to use the proper safety precautions. Provided below are photos of how to hook up the power supply or batteries. Verify thqat

i.imgur.com_gwebpxo.jpg i.imgur.com_xmvv0do.jpg

Step 2: Setup DHCP on Robotino

Do this by accessing Robotino's menu with the buttons on its top side. Press Enter and navigate down to Network. After network navigate to eth0, and then DHCP. Once in the DHCP menu, scroll down to Activate and press Enter. This will setup Robotino with a static IP that is constantly accessible. For my Robotino setup, this IP is 10.42.0.75, but your mileage may vary.

i.imgur.com_aoubcrs.jpg i.imgur.com_gaotxzr.jpg

Step 3: Backup Robotino Data

For this section of the tutorial you will need to locate or buy an additional CF card in order to make a copy of the current image on Robotino's memory. Additionally, you will need an adapter or card reader for reading CF cards on your computer. If you do not have a CF card, I advise buying a cheaper SD card, and using a CF adapter. Once you have acquired the spare CF card and the adapter, power down Robotino and remove all power sources. Remove the CF card from Robotino (it is located right under the USB ports on the top section), and plug in the card to the adapter. In linux, open up a terminal and type the following:

 sudo dd if=/dev/<CF card disk>/ of=~/<your desired path on your computer>/RobotinoBackup<date>.iso
 

Replace <CF card disk> with the name of the CF card's disk (either sdb, sda, sdc, sdd. Do not chose something that has a number like sdb1, as this is only the partition and not the entire disk). Replace <your desired path on your computer> with wherever you want to store this image for use. For example my path would be ~/Robotino/setup/. Additionally, replace the <date> with whatever the month, day, and year it is for the time that you are copying this over. This is to distinguish this file from any other backups created.

Once it has successfuly copied over the information from the card, eject the card in the file system, and then remove the card form the adapter. Now plug in your other media, whether it be an SD card or another CF card, into the adapter for your computer. We will be using a similar command for this process as before, but be careful because it is not exactly the same. This time, type:

 sudo dd if=~/<your path from earlier>/RobotinoBackup<date>.iso of=/dev/<media disk name>
 

Again make sure you replace <your path from earlier> with the path that you copied the original CF card information over from, and replace <date> with whatever date you listed for the backup file. This time, replace the <media disk name> with whatever comes up as the name of the disk (again this will be either sda, sdb, sdc, sdd, etc.).

Once this has finished successfully copying over, you are good to go with plugging in either media card, as they will be identical. Use one as a constant backup, so that you will always have a version to go back to if you mess up somewhere.

After taking these steps, you may still want to go through another backup process to make sure you have access to all of Robotino's old files in case they get corrupted. The best way to do this is by using an ftp service such as filezilla. Open up your ftp service, and login to a booted up and connected robotino with the following information: Host:<robotino_ip> , Username: robotino , Password: robotino , Port: 22 .

Once successfully connected, select all of the files from Robotino's drive, and copy it over to a folder on your computer from within the ftp service. This can be used with simple drag and drop in programs like filezilla. Once you have completed this step, you have successfully backed up all important data, and you can begin working on seting up the software for Robotino.

Step 4: SSH into Robotino

Start by opening up a terminal window in Linux. In order to SSH into Robotino you will need to be connected to Robotino with a network cable. Also make sure that you are connected to the Robotino wireless connection in Linux. You can do this by simply going to your network settings in Ubuntu and connecting to the wireless network that you are using for Robotino. Now you can go back to your terminal and type the following (replace <your_robotino_ip> with the ip address setup during Step 2):

 ssh [email protected]<your_robotino_ip>
 

When prompted for a password, type “robotino”.

You are also going to want to login as root in a separate terminal. To do this, open up another terminal, and type in the following:

 ssh [email protected]<your_robotino_ip>

The password for this root user is “dorp6”.

Step 5: Download and Setup ROS

For information on installing ROS for your PC, refer to this tutorial (if running Ubuntu 14.04): http://wiki.ros.org/indigo/Installation/Ubuntu. You will want to install at least ROS Hydro, as we will be using catkin to build our ROS packages. Indigo is the ROS version that I chose to best suit my need on 14.04 with Robotino.

If you are running a different distro, please refer to: http://wiki.ros.org/ROS/Installation

After ROS is installed, you will want to setup your catkin workspace. Do this by entering the following commands:

 mkdir -p ~/catkin_ws/src
 cd ~/catkin_ws/src
 catkin_init_workspace
 cd ../
 catkin_make
 echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
 source ~/.bashrc

Step 6: Install the Robotino API2

Follow this tutorial for setting up the API2 files onto your computer: http://wiki.openrobotino.org/index.php?title=API2_source_build.

After setting up the API on your computer, you will need to intall the API onto Robotino. Begin by opening up the root ssh terminal for Robotino. In this terminal, enter the following:

 echo "echo "deb http://doc.openrobotino.org/download/packages/i386 ./" >> /etc/apt/sources.list
 vim /etc/apt/sources.list
 

After the last command, the sources.list file will pop-up in vim, and you should check at the bottom of the file to make sure that the Robotino API source was added. Once that is confirmed, quit vim by pressing <esc> and then “:q”. now, in the root terminal still, enter the following:

  apt-get update
  apt-get install robotino-api2 robotino-examples
  

Step 7: Download and Setup the ROS packages for Robotino

Due to outdated revisions to the Robotino sources, the existing tutorials for setting up the ROS packages no longer work properly. Here I will explain the necessary steps to go around this problem. First you will want to install the necessary daemons. First open up a terminal on your computer, and enter the following commands one after another (replace the * with the most current version listed here):

 wget http://doc.openrobotino.org/download/packages/i386/rec-rpc-qt4.5.0_*_i386.deb
 wget http://doc.openrobotino.org/download/packages/i386/robotino-common_*_i386.deb
 wget http://doc.openrobotino.org/download/packages/i386/robotino_daemons_*_i386.deb
 wget http://doc.openrobotino.org/download/packages/i386/robotino-api2_*_i386.deb
 wget http://doc.openrobotino.org/download/packages/i386/robotino-examples_*_i386.deb

After these packages are downloaded, you will want to transfer them over to Robotino. We can achieve this using a similar ftp service such as what was used previously to backup the data on Robotino. Refer to the 3rd step for more information on this process. Once the files are transferred to Robotino, you will want to unpackage and install the files onto Robotino. Go into your Robotino ssh terminal, and enter the following commands (again replace the * with the version you downloaded to your computer):

 dpkg -i rec-rpc-qt4.5.0_*_i386.deb
 dpkg -i robotino-common_*_i386.deb
 dpkg -i --auto-deconfigure robotino-daemons_*_i386.deb
 dpkg -i robotino-api2_*_i386.deb
 dpkg -i robotino-examples_*_i386.deb

After these succeed installing, you can now focus on getting the Robotino ROS packages setup onto your computer. First, you will want to open up a fresh terminal and navigate into your catkin workspace. This should be located in your home directory. Then navigate to the src folder. When you are there your directory should be ~/catkin_ws/src . Once here you will want to type the following into your terminal:

 svn co http://svn.openrobotino.org/robotino-ros-pkg/trunk/catkin-pkg/
 cd catkin-pkg
 svn up -r3621

This will ensure that you collect the correct version from the depository, and not the newer, broken versions. After this you are able to build these packages. Navigate back to your workspace (~/catkin_ws/). Enter the following in order to build the packages:

 rosdep install robotino_node
 catkin_make

If this goes smoothly without any errors, then you will be good to go! If not, you will need to debug this issue to figure out what is causing the packages to build improperly. If you need any help with debugging this feel free to email me. After this is finished, Robotino should be all setup and ready to be programmed!

Operation

Step 1: Boot up Robotino

Power on Robotino to ensure all systems are working properly. Either connect Robotino to a 24V, 2.5A power supply, or connect two 12V batteries into the two battery slots provided on Robotino. Make sure to read through the Robotino operation manual before plugging anything in, and always make sure to use the proper safety precautions. Provided below are photos of how to hook up the power supply or batteries. Verify that

i.imgur.com_gwebpxo.jpg i.imgur.com_xmvv0do.jpg

Step 2: Setup DHCP on Robotino

Do this by accessing Robotino's menu with the buttons on its top side. Press Enter and navigate down to Network. After network navigate to eth0, and then DHCP. Once in the DHCP menu, scroll down to Activate and press Enter. This will setup Robotino with a static IP that is constantly accessible. For my Robotino setup, this IP is 10.42.0.75, but your mileage may vary.

i.imgur.com_aoubcrs.jpg i.imgur.com_gaotxzr.jpg

Step 4: SSH into Robotino

Start by opening up a terminal window in Linux. In order to SSH into Robotino you will need to be connected to Robotino with a network cable. Also make sure that you are connected to the Robotino wireless connection in Linux. You can do this by simply going to your network settings in Ubuntu and connecting to the wireless network that you are using for Robotino. Now you can go back to your terminal and type the following (replace <your_robotino_ip> with the ip address setup during Step 2):

 ssh [email protected]<your_robotino_ip>
 

When prompted for a password, type “robotino”.

You are also going to want to login as root in a separate terminal. To do this, open up another terminal, and type in the following:

 ssh [email protected]<your_robotino_ip>

The password for this root user is “dorp6”.

Step 5: Run your Program

Refer to the specific tutorial page for the instructions specific to the program that you are attempting to run on Robotino. For example, here are the commands used to launch the Breadth-First Navigation program from this tutorial.

Once you have powered on and configured DHCP on Robotino after setup is complete, make sure that you download the BFNav ROS package to your catkin workspace src folder, and run catkin_make. Once this has built correctly, open a terminal and type the following:

 roslaunch robotino_node robotino_node.launch hostname:=<robotinoIP>
 

Now open a second terminal and type the following:

 rosrun robotino_control_bfnav BFNavigatorNode

Now the BFNav program should run successfully. Please note that the configuration of the obstacles and the grid is detailed in the BFNavigator Node file, and can be edited for your use there. The current configuration given is using the map given at the very beginning of the tutorial.

Final Words

This tutorial's objective was to guide a user through setting up Robotino for programming, and then being able to run programs on Robotino. Once the concepts were conveyed the reader could run any test programs on Robotino, and hopefully run their own programs on Robotino after other programming tutorails.

Speculating future work derived from this tutorial, includes implementing BFS, DFS, and other navigation methods on Robotino. In the big picture, the problem of robotic localization and navigation can be solved with this tutorial and its future work.

For questions, clarifications, etc, Email: wallad3@unlv.nevada.edu

how_to_setup_robotino_for_programming_and_navigation.txt · Last modified: 2016/10/23 19:50 by dwallace