User Tools

Site Tools


how_to_setup_robotino_for_programming_and_navigation

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
how_to_setup_robotino_for_programming_and_navigation [2016/06/14 17:31] dwallacehow_to_setup_robotino_for_programming_and_navigation [2016/10/23 19:50] (current) dwallace
Line 1: Line 1:
 =======How to Setup Robotino for Programming and Navigation======= =======How to Setup Robotino for Programming and Navigation=======
  
-Author: Dylan Wallace Email: [email protected] \\  +**Author:** Dylan Wallace Email: <[email protected]
-Date: Last modified on 06/13/16 \\  +\\  
-Keywords: step-by-step, how to, ssh, linux, Robotino, programming, navigation +**Date:** Last modified on 06/24/16 
- +\\  
 +**Keywords:** step-by-step, how to, ssh, linux, Robotino, ROS, programming, navigation 
 +\\ \\  
 +{{ :dylanw:img_1322.jpg?700 |}} 
 +\\ 
 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. 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.
  
Line 12: Line 15:
 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: 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++ \\  +<fc blue> 
-* Perhaps also know how to ssh and use ftp \\  +* Know how to program in linux and C++ 
-* 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 \\ +* 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 
 +</fc> 
 +\\ \\  
 + 
 +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: The rest of this tutorial is presented as follows:
Line 22: Line 38:
     Operation     Operation
     Final Words     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 [[http://stackoverflow.com/questions/18615451/cmake-missing-modules-directory|This link]].
  
 =====Setup===== =====Setup=====
Line 29: Line 48:
 ===Step 1: Boot up Robotino=== ===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.+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
  
-<Power supply/battery photos>+{{ http://i.imgur.com/gweBPxO.jpg?500x500 }} 
 +{{ http://i.imgur.com/XMvV0dO.jpg?500x500 }}
  
 ===Step 2: Setup DHCP on Robotino=== ===Step 2: Setup DHCP on Robotino===
Line 37: Line 57:
 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. 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.
  
-<DHCP menu pic>+{{ http://i.imgur.com/aOuBCRs.jpg?500x500 }} 
 +{{ http://i.imgur.com/gaoTxZR.jpg?500x500 }}
  
-===Step 3: SSH into Robotino===+===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): \\  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): \\ 
Line 47: Line 88:
 When prompted for a password, type "robotino". 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 root@<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 [[http://doc.openrobotino.org/download/packages/i386/|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===== =====Operation=====
  
-A link to the source code can be found <provide URL to your code, probably saved in this DASL Wiki>. +===Step 1: Boot up Robotino===
-The goal of the code is <brief explanation>. It works in the following way+
  
-<!- Insert snippet of your code hereTry to keep to less than 0.5 page long –>+Power on Robotino to ensure all systems are working properly. Either connect Robotino to 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 batteriesVerify that
  
 +{{ http://i.imgur.com/gweBPxO.jpg?500x500 }}
 +{{ http://i.imgur.com/XMvV0dO.jpg?500x500 }}
 +
 +===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.
 +
 +{{ http://i.imgur.com/aOuBCRs.jpg?500x500 }}
 +{{ http://i.imgur.com/gaoTxZR.jpg?500x500 }}
 +
 +===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 robotino@<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 root@<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:
  
-The snippet above serves to <fill in the blank>. It does this by <fill in the blank>.+   rosrun robotino_control_bfnav BFNavigatorNode
  
-<!- Insert another snippet of your code hereTry to keep to less than 0.5 page long –>+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 thereThe current configuration given is using the map given at the very beginning of the tutorial.
  
-Next, the code does <fill in the blank>. It does this by <fill in the blank>+======Final Words======
-Final Words+
  
-This tutorial's objective was to <fill in the blank>. Complete <choose: construction detailssource code and program descriptions> for <fill in the blank>. Once the concepts were conveyed the reader could <fill in the blank>.+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 <fill in the blank>. In the big picture, the problem of <fill in the blank> can be solved with this tutorial.+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: paul.oh@unlv.edu+For questions, clarifications, etc, Email: <wallad3@unlv.nevada.edu>
  
how_to_setup_robotino_for_programming_and_navigation.1465950698.txt.gz · Last modified: 2016/06/14 17:31 by dwallace