Giter VIP home page Giter VIP logo

pioneer_teleop's Introduction

Pionner_teleop

A ROS package providing scripts for teleoperation using keyboard, sockets and command line.

The package is compatible with any robot using ROS ecosystem, but is originally implemented for Adept MobileRobots Pioneer and Pioneer-compatible robots (Including Pioneer 2, Pioneer 3, Pioneer LX, AmigoBot, PeopleBot, PatrolBot, PowerBot, Seekur and Seekur Jr.).

In case you have a different robot, please read "What if my robot is not Pionner-compatible?" section

Note: This package have not yet been tested on ROS Kinetic Kame

Installation

1. Dependencies

You need first to get and install pioneer_bringup package, which is available at:

https://github.com/amine_horseman/pionner_bringup.git

2. Get Source

Download or clone this repository in your caktin workspace:

$ cd ~/catkin_ws/src
$ git clone https://github.com/amineHorseman/pioneer_teleop.git
$ rosdep install pioneer_teleop

3. Build the catkin packages from source

$ cd ~/catkin_ws
$ catkin_make

4. Make sure that python scripts are executable

$ cd ~/catkin_ws/src/pioneer_teleop/nodes
$ sudo chmod +x *.py

Usage

##Teleop Modes

In this package, there are three different ways of teleoperation:

1. Keyboard teleoperation:

	$ roslaunch pioneer_teleop keyboard_teleop.launch

You will have to control the robot motors using keyboard arrows, use + and - to increase or decrease the speed, and s to stop

A different version of keyboard teleoperation is also available using this command:

	$ roslaunch pioneer_teleop discrete_keyboard_teleop.launch

In this case, the robot moves only for a small period of time (1.5 seconds by default) and then stops.

2. Sockets teleoperation:

Controls the robot remotely throught socket commands (especially if you want to move the robot using a web interface via internet/LAN).

	$ roslaunch pionner_teleop socket_teleop.launch

The expected commands are "forward", "backward", "left" and "right"

By default, the script listens to port 50001, and the robot moves only for 1.5 seconds. To change these parameters, you can use extra arguments as mentionned bellow:

	$ roslaunch pionner_teleop socket_teleop.launch _port:=12345 _speed:=0.3 _move_time:=2.0

3. Command line teleoperation

Useful if you want to move the robot using command line throught a terminal or ssh

	$ roslaunch pionner_teleop socket_commandline.launch _direction:=forward

The expected commands (_direction argument) are "forward", "backward", "left" and "right"

By default, the robot moves only for 1.5 seconds at 0.2 speed. To change these parameters, you can use extra arguments as mentionned bellow:

	$ roslaunch pionner_teleop socket_teleop.launch _direction:=backward _speed:=0.3 _move_time:=2.0

What if my robot is not Pionner-compatible?

This package is compatible with any robot using ROS as long as:

  • The velocity commands are published in /cmd_vel topic (see the next section).
  • You modify the .launch scripts to remove the pionner_bringup call, or you execute directly the python scripts located in /nodes folder.

Known issues

Velocity command topic

By default, the scripts publish velocity commands to /cmd_vel topic.

In case your velocity commands topic has a different name, or you are not using Pionner-compatible robots, you will have to remap your velocity topic to /cmd_vel or change the topic name in the python scripts in /nodes folder

Other issues

Please report any problem in the issues panel

TODO

Feel free to contribute to this repository

  • Test package in Ros Kinetic Kame
  • Add joystick_teleop mode
  • Add xbox360_teleop mode
  • Add web page example to use it with socket_teleop

pioneer_teleop's People

Contributors

aminehorseman avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.