User Tools

Site Tools


robotino_nav_tutorial

Robotino Demo Tutorial

Background

Path-finding is an important method for mobile robots to find the shortest path or obstacle avoidance between two points.Since Robotino doesn’t have any sensors, it requires certain algorithms to avoid obstacles. This tutorial focuses on how to set up and run the Robotino pathfinding demo.

Setting Up Robotino

The batteries are old so it may only run for 15-20 min.

Attach both batteries (located in cabinet) Connect the D-Link router to the LAN network Plug Robotino into the router using an ethernet cable Once you are able to access Robotino’s main menu, select the following menu sequence

  • “Network”
  • “Eth0”
  • “DHCP”
  • “Activate”

Once the menu says “success,” press the left arrow key until you get back to “Network.” Double check the IP address - you will need it for the ROS node.

Place a grid on the floor. The bottom right corner will be location (0,0) on the grid. After securely taping the cloth, make a grid with tape - make sure each square is big enough for Robotino. Note, the size of each square can be user-defined.


Using Robotino for Potential Field Demo

Creating the Grid

To change the size of each box in the program, go to the PFNav.cpp file and change the “scale” variable in the “tileGridGoal” function. Units are in meters.

Changing Goal/Obstacles

To change the goal/obstacle locations, go to the PFNavNode.cpp in the vikram package. In the navigator object in the main function, there are two specific methods - “navigator.tileGridGoal(x,y,w)” and “navigator.tileGridObstacle(x,y,w,d) ” - that you can use to define where the Robotino’s goal is and which obstacles are in its way.

The program will have two “navigator.tileGridGoal(x,y,z) functions called. The first is to go to the intended destination and the second is to return to the origin. x and y are positions on the grid, starting from (0,0) z is the total length of the grid in terms of squares d is the maximum range from the obstacle you would like Robotino to move.

After updating any of the values, make sure you catkin_make in the catkin_ws directory.

Note: Potential Field only works well with one obstacle.


To use Robotino Potential Field demonstration, open a terminal and input the following:

  • “roslaunch robotino_node robotino_node.launch hostname:=<Robotino IP Address>”

Then open a new terminal and input the following commands in the shell:

  • “cd catkin_ws/”
  • “catkin_make”
  • “rosrun vikram yahoo”

The Robotino demonstration will run once you input the rosrun command.

Potential field




Using Robotino for Breadth First Demo

Updating the Grid

To change the size of each box in the program, go to the BFNavigatorNode.cpp. The “myMap.createGrid” method allows you to define the size of the grid. The parameters to the “createGrid” method are the length of the x and y axes.

The “myMap.setOriginOnGrid” method allows you to define the origin of the grid, with (0,0) being the bottom right hand corner.

Goal/Obstacles

The goal can be set by changing the parameters to the “myMap.addGoal” method. Obstacles can be set by changing the parameters to the “myMap.addObstacle” method. Note that obstacles in this demo are placed in a for loop. This allows you to place multiple obstacles along an axis.

After updating any of the values, make sure you cakin_make in the catkin_ws directory.

Note: Breadth First works well with less than four obstacles.


To use Robotino Breadth First demonstration, open a terminal and input the following:

  • “roslaunch robotino_node robotino_node.launch hostname:=<Robotino IP Address>”

Then open a new terminal and input the following commands in the shell:

  • “cd catkin_ws/”
  • “catkin_make”
  • “rosrun vikram bfs” (if bfs doesn't work, use “move”)

The Robotino demonstration will run once you input the rosrun command.

Breadth First



robotino_nav_tutorial.txt · Last modified: 2018/12/05 15:08 by jkreitz