Monday, June 13, 2011

Next Step, Navigation


fter your map is built and save, you realized that some of the areas are still unknown. So we edited the map such a way that we can easily figure out the places shows in the map. Below is the edited map:

Move both .pgm and .yaml extension files into
"/opt/ros/diamondback/stacks/robotino_drivers/robotino_navigation/maps"
Next, enter into map_server.launch to change the name of the map.


Next, we created another "robotino_navigation.sh" file in the fyp_ros folder which will include several command which will be needed to run for the navigation parts.
  • roslaunch robotino_base robotino_configuration_kinect.launch &
  • roslaunch robotino_base kinect_laser.launch &
  • roslaunch robotino_navigation move_base.launch &
  • rosrun rviz rviz
  • killall openni_node
  • killall python
  • killall rosout
  • killall robotino_base_n
  • killall rviz


Setting Up RVIZ for Navigation Stacks

2D Nav Goal

  • Topic: move_base_simple/goal

  • Description: Allows the user to send a goal to the navigation by setting a desired pose for the robot to achieve.

2D Pose Estimate

  • Topic: initialpose

  • Desctiption: Allows the user to initialize the localization system used by the navigation stack by setting the pose of the robot in the world.

Static Map

Particle Cloud

  • Topic: particlecloud

  • Type: geometry_msgs/PoseArray

  • Description: Displays the particle cloud used by the robot's localization system. The spread of the cloud represents the localization system's uncertainty about the robot's pose. A cloud that is very spread out reflects high uncertainty, while a condensed cloud represents low uncertainty.

Robot Footprint

  • Topic: local_costmap/robot_footprint

  • Type: geometry_msgs/Polygon

  • Description: Displays the footprint of the robot

Obstacles

  • Topic: local_costmap/obstacles

  • Type: nav_msgs/GridCells

  • Desctiption: Displays the obstacles that the navigation stack sees in its costmap. For the robot to avoid collision, the robot footprint should never intersect with a cell that contains an obstacle.

Inflated Obstacles

  • Topic: local_costmap/inflated_obstacles

  • Type: nav_msgs/GridCells

  • Description: Displays obstacles in the navigation stack's costmap inflated by the inscribed radius of the robot. For the robot to avoid collision, the center point of the robot should never overlap with a cell that contains an inflated obstacle.

Unknown Space

  • Topic: local_costmap/unknown_space

  • Type: nav_msgs/GridCells

  • Description: Displays any unknown space contained in the navigation stack's costmap_2d.

Global Plan

  • Topic: TrajectoryPlannerROS/global_plan

  • Type: nav_msgs/Path

  • Description: Displays the portion of the global plan that the local planner is currently pursuing.

Local Plan

  • Topic: TrajectoryPlannerROS/local_plan

  • Type: nav_msgs/Path

  • Description: Displays the trajectory associated with the velocity commands currently being commanded to the base by the local planner.

Planner Plan

Current Goal

  • Topic: current_goal

  • Type: geometry_msgs/PoseStamped

  • Description: Displays the goal pose that the navigation stack is attempting to achieve.

Wednesday, May 11, 2011

ROS: Robotino Base, Kinect, Mapping


Since we are using Robotino base, we have to install openrobotino into your laptop.svn co http://svn.openrobotino.org/trunk/ros

ROS Kinect is an open source project focused on the integration of the Microsoft Kinect sensor with ROS.

-------------------------------------------------------------------------------------------------

ROS Gmapping

In order for the kinect to generate a map, we need to download the ROS Gmapping package.This package contains GMapping, from OpenSlam, and a ROS wrapper. The gmapping package provides laser-based SLAM (Simultaneous Localization and Mapping), as a ROS node called slam_gmapping.


-------------------------------------------------------------------------------------------------

In order not to run so many terminals at the same time, we created a ".sh" file with the command : vim kinect_mapping.sh

Next, we changed the properties of this file to make the file available to write, read and execute with the command : chmod 777 kinect_mapping.sh

This file is created with the intention of running several commands one after another, so that we do not need to open too many terminal box. Thus inside this file, we included the following:
  • roslaunch robotino_base robotino_configuration_kinect.launch
  • roslaunch robotino_teleop teleop_joystick.launch
  • roslaunch ardros kinect_laser.launch
  • rosrun gmapping slam_gmapping
  • rosrun rviz rviz
An rviz window pops up, set fixed frame: /map , target frame: /openni_depth_optical. Add laser scan and map as well. Navigates the robot around the room. You will get something like this:

To save the map built, we typed in a command: rosrun map_server map_saver

Monday, May 9, 2011

Getting started with ROS

Project Title: Automatic positioning and localization through sensor fusion

Our project aims is to allow Robotino to be able to generate a map using kinect, and able to localize and navigate itself accurately with the help of the technology of kinect and RFID.

In order to get our project running, we decided on using software from ROS.org because hese packages are more efficient than source-based builds and are our preferred installation method for Ubuntu.

  1. Installation
    Setup your computer to accept software from ROS.org.

    Ubuntu 10.10 (Maverick)

    • sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu maverick main" > /etc/apt/sources.list.d/ros-latest.list'

    Set up your keys

    • wget http://packages.ros.org/ros.key -O - | sudo apt-key add -

    Installation

    Make sure you have re-indexed the ROS.org server:

    • sudo apt-get update

    Desktop-Full Install: (Recommended): ROS, rx, rviz, robot-generic libraries, 2D/3D simulators, navigation and 2D/3D perception

    • sudo apt-get install ros-diamondback-desktop-full

    Reference : http://www.ros.org/wiki/diamondback/Installation/Ubuntu