Main Page
Namespaces
Classes
Files
File List
File Members
test
common
src
ackermann_steering_bot.cpp
Go to the documentation of this file.
1
// Copyright (C) 2013, PAL Robotics S.L.
3
//
4
// Redistribution and use in source and binary forms, with or without
5
// modification, are permitted provided that the following conditions are met:
6
// * Redistributions of source code must retain the above copyright notice,
7
// this list of conditions and the following disclaimer.
8
// * Redistributions in binary form must reproduce the above copyright
9
// notice, this list of conditions and the following disclaimer in the
10
// documentation and/or other materials provided with the distribution.
11
// * Neither the name of PAL Robotics, Inc. nor the names of its
12
// contributors may be used to endorse or promote products derived from
13
// this software without specific prior written permission.
14
//
15
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
19
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25
// POSSIBILITY OF SUCH DAMAGE.
27
29
30
// NOTE: The contents of this file have been taken largely from the ros_control wiki tutorials
31
32
// ROS
33
#include <
ros/ros.h
>
34
35
// ros_control
36
#include <controller_manager/controller_manager.h>
37
38
#include "./../include/ackermann_steering_bot.h"
39
40
int
main
(
int
argc,
char
**argv)
41
{
42
ros::init
(argc, argv,
"ackermann_steering_bot"
);
43
ros::NodeHandle
nh;
44
45
AckermannSteeringBot
robot;
46
ROS_WARN_STREAM
(
"period: "
<< robot.
getPeriod
().
toSec
());
47
controller_manager::ControllerManager cm(&robot, nh);
48
49
ros::Rate
rate(1.0 / robot.
getPeriod
().
toSec
());
50
ros::AsyncSpinner
spinner
(1);
51
spinner.start();
52
while
(
ros::ok
())
53
{
54
ROS_WARN_STREAM
(
"period: "
<< robot.
getPeriod
().
toSec
());
55
robot.
read
();
56
cm.update(robot.
getTime
(), robot.
getPeriod
());
57
robot.
write
();
58
rate.sleep();
59
}
60
spinner.stop();
61
62
return
0;
63
}
DurationBase< Duration >::toSec
double toSec() const
ros::NodeHandle
ros::init
ROSCPP_DECL void init(int &argc, char **argv, const std::string &name, uint32_t options=0)
ros::Rate
AckermannSteeringBot::read
void read()
Definition:
ackermann_steering_bot.h:78
AckermannSteeringBot
Definition:
ackermann_steering_bot.h:55
spinner
void spinner()
AckermannSteeringBot::getTime
ros::Time getTime() const
Definition:
ackermann_steering_bot.h:75
AckermannSteeringBot::write
void write()
Definition:
ackermann_steering_bot.h:109
ros::ok
ROSCPP_DECL bool ok()
ROS_WARN_STREAM
#define ROS_WARN_STREAM(args)
main
int main(int argc, char **argv)
Definition:
ackermann_steering_bot.cpp:40
ros.h
AckermannSteeringBot::getPeriod
ros::Duration getPeriod() const
Definition:
ackermann_steering_bot.h:76
ros::AsyncSpinner
ackermann_steering_controller
Author(s): Masaru Morita
autogenerated on Thu Apr 11 2019 03:08:13