/robotino

ROS packages for Robotino

Primary LanguageC++

Repository description

The repository contains a minimum set of ROS packages for working with Robotino. These packages are modified version of their namesakes from revision 3303 of the official repository.

The contents of the packages:

  • robotino_node:

    ROS drivers for Robotino and some of extra devices such as webcam and lidar;

  • robotino_msgs:

    files with description of msg and srv message types which are used within robotino_node package;

  • robotino_description

    files with URDF description of robot and some of extra devices such as webcam and lidar.

Installation

  1. Add a needed repository as it is described here.

  2. Update information about available repositories

    $ sudo apt-get update
  3. Install RobotinoAPI2 library by typing the command

    $ sudo apt-get install robotino-api2

    Note: Alternatively RobotinoAPI2 library can be built from sources as it is described here.

  4. Copy this repository into src subfolder of your workspace by for example this way

    $ cd PATH_TO_YOUR_WORKSPACE/src
    $ git clone https://github.com/red-itmo/robotino.git
  5. Run catkin_make command:

    $ cd PATH_TO_YOUR_WORKSPACE
    $ catkin_make

Decription of nodes from robotino_node package

Some part of the information below was taken from robotino_node package description on appropriate page of wiki.ros.

1. robotino_node

Provided services

Subscribed topics

Published topics

Parameters

  • ~hostname (string, default: 172.26.1.1)

    Robotino's IP Address

  • ~max_linear_vel (double, default: 0.2)

    Maximum linear velocity in m/s

  • ~min_linear_vel (double, default: 0.05)

    Minimum linear velocity in m/s

  • ~max_angular_vel (double, default: 1.0)

    Maximum angular velocity in rad/s

  • ~min_angular_vel (double, default: 0.1)

    Minimum angular velocity in rad/s

  • ~ns_room_id (int, default: 3)

    The room id parameter for NorthStar

  • ~ns_ceil_height (double, default: 3.0)

    Calibration parameter for NorthStar

  • ~tf_prefix(string, default: "no_prefix")

    If value of this parameter isn't equal to "no_prefix", all robot's links are put to subspace which name coincides with the value of this parameter; for example, when tf_prefix = "robot1", link "base_link" gets new name "robot1/base_link"

2. robotino_odometry_node

Provided services

Published topics

Parameters

  • ~hostname (string, default: 172.26.1.1)

    Robotino's IP Address

  • ~tf_prefix(string, default: "no_prefix")

    If value of this parameter isn't equal to "no_prefix", "odom" and "base_link" links are put to subspace which name coincides with the value of this parameter; for example, when tf_prefix = "robot1", link "base_link" gets new name "robot1/base_link"

Provided tf transforms

  • odom --> base_link

    The node updates this transform using odometry data

3. robotino_laserrangefinder_node

Published topics

Parameters

  • ~hostname (string, default: 172.26.1.1)

    Robotino's IP Address

  • ~tf_prefix(string, default: "no_prefix")

    If value of this parameter isn't equal to "no_prefix", "laser_link" link is put to subspace which name is coincide with the value of this parameter; for example, when tf_prefix = "robot1", link "laser_link" gets new name "robot1/laser_link"

  • ~laserRangeFinderNumber(int, default: 0)

    The number of lidar. If it is equal to 0, then lidar has topic "scan" and link "laser_link". If it is equal to 1, then lidar has topic "scan1" and link "laser_link1". And so on.

4. robotino_camera_node

Published topics

Parameters

  • ~hostname (string, default: 172.26.1.1)

    Robotino's IP Address

  • ~cameraNumber(int, default: 0)

    The number of webcam. If it is equal to 0, then image from webcam is available from topic "image_raw". If it is equal to 1, then it uses topic "image_raw1". And so on.

Launching

All nodes which are needed for work of only one robot can be started using this command

$ roslaunch robotino_node robotino_node.launch hostname:=IP_ADRESS_OF_YOUR_ROBOT

For several robots (for 2 in example below) type these commands in different terminals:

$ roslaunch robotino_node robotino_node.launch hostname:=IP_ADRESS_OF_FIRST_ROBOT tf_prefix:=robot1 use_tf_prefix:=true __ns:=robot1
$ roslaunch robotino_node robotino_node.launch hostname:=IP_ADRESS_OF_SECOND_ROBOT tf_prefix:=robot2 use_tf_prefix:=true __ns:=robot2