youbot_joy_teleop.cpp
Go to the documentation of this file.
00001 /*********************************************************************
00002  *
00003  * Software License Agreement (BSD License)
00004  *
00005  *  Copyright (c) 2012, Worcester Polytechnic Institute
00006  *  All rights reserved.
00007  *
00008  *  Redistribution and use in source and binary forms, with or without
00009  *  modification, are permitted provided that the following conditions
00010  *  are met:
00011  *
00012  *   * Redistributions of source code must retain the above copyright
00013  *     notice, this list of conditions and the following disclaimer.
00014  *   * Redistributions in binary form must reproduce the above
00015  *     copyright notice, this list of conditions and the following
00016  *     disclaimer in the documentation and/or other materials provided
00017  *     with the distribution.
00018  *   * Neither the name of the Worcester Polytechnic Institute nor the 
00019  *     names of its contributors may be used to endorse or promote 
00020  *     products derived from this software without specific prior 
00021  *     written permission.
00022  *
00023  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
00024  *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
00025  *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
00026  *  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
00027  *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
00028  *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
00029  *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
00030  *  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
00031  *  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
00032  *  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
00033  *  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00034  *  POSSIBILITY OF SUCH DAMAGE.
00035  *
00036  *   Author: Russell Toris
00037  *  Version: Aug 2, 2012
00038  *
00039  *********************************************************************/
00040 
00052 #include <geometry_msgs/Twist.h>
00053 #include <ros/ros.h>
00054 #include <sensor_msgs/Joy.h>
00055 #include <youbot_teleop/youbot_joy_teleop.h>
00056 
00057 using namespace std;
00058 
00059 youbot_joy_teleop::youbot_joy_teleop()
00060 {
00061   // create the ROS topics
00062   cmd_vel = node.advertise<geometry_msgs::Twist>("cmd_vel", 10);
00063   joy_sub = node.subscribe<sensor_msgs::Joy>("joy", 10, &youbot_joy_teleop::joy_cback, this);
00064 
00065   ROS_INFO("YouBot Joystick Teleop Started");
00066 }
00067 
00068 void youbot_joy_teleop::joy_cback(const sensor_msgs::Joy::ConstPtr& joy)
00069 {
00070   // create the twist message
00071   geometry_msgs::Twist twist;
00072   // left joystick controls the linear movement
00073   twist.linear.x = joy->axes.at(1);
00074   twist.linear.y = joy->axes.at(0);
00075   twist.linear.z = 0;
00076   // right joystick controls the angular movement
00077   twist.angular.x = 0;
00078   twist.angular.y = 0;
00079   twist.angular.z = joy->axes.at(2);
00080   // send the twist command
00081   cmd_vel.publish(twist);
00082 }
00083 
00084 int main(int argc, char **argv)
00085 {
00086   // initialize ROS and the node
00087   ros::init(argc, argv, "youbot_joy_teleop");
00088 
00089   // initialize the joystick controller
00090   youbot_joy_teleop controller;
00091 
00092   // continue until a ctrl-c has occurred
00093   ros::spin();
00094 }
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Properties Friends


rail_youbot_teleop
Author(s): Russell Toris
autogenerated on Sun May 19 2013 13:57:33