#include "ros/ros.h"
#include "geometry_msgs/Twist.h"
#include "sensor_msgs/LaserScan.h"
#include "nav_msgs/Odometry.h"
#include "tf/tf.h"
#include <tf/transform_listener.h>
#include <fstream>
Go to the source code of this file.
Defines | |
#define | ANGULAR_VELOCITY_MINIMUM_THRESHOLD 0.4 |
#define | LINEAR_VELOCITY_MINIMUM_THRESHOLD 0.2 |
Functions | |
double | calculateYaw (double x1, double y1, double x2, double y2) |
double | degree2radian (double degreeAngle) |
int | main (int argc, char **argv) |
void | move_v1 (double speed, double distance, bool isForward) |
void | move_v2 (double speed, double distance, bool isForward) |
void | move_v3 (double speed, double distance, bool isForward) |
void | moveSquare (double sideLength) |
void | poseCallback (const nav_msgs::Odometry::ConstPtr &pose_message) |
double | radian2degree (double radianAngle) |
double | rotate (double ang_vel, double angle_radian, bool isClockwise) |
Variables | |
ros::Subscriber | pose_subscriber |
ros::Subscriber | scanSubscriber |
nav_msgs::Odometry | turtlebot_odom_pose |
ros::Publisher | velocityPublisher |
#define ANGULAR_VELOCITY_MINIMUM_THRESHOLD 0.4 |
Definition at line 35 of file free_space_navigation.cpp.
#define LINEAR_VELOCITY_MINIMUM_THRESHOLD 0.2 |
Definition at line 34 of file free_space_navigation.cpp.
double calculateYaw | ( | double | x1, |
double | y1, | ||
double | x2, | ||
double | y2 | ||
) |
Definition at line 438 of file free_space_navigation.cpp.
double degree2radian | ( | double | degreeAngle | ) |
Definition at line 454 of file free_space_navigation.cpp.
int main | ( | int | argc, |
char ** | argv | ||
) |
Definition at line 62 of file free_space_navigation.cpp.
void move_v1 | ( | double | speed, |
double | distance, | ||
bool | isForward | ||
) |
a function that makes the robot move straight
speed,: | represents the speed of the robot the robot |
distance,: | represents the distance to move by the robot |
isForward,: | if true, the robot moves forward,otherwise, it moves backward |
Method 1: using tf and Calculate the distance between the two transformations
Definition at line 129 of file free_space_navigation.cpp.
void move_v2 | ( | double | speed, |
double | distance, | ||
bool | isForward | ||
) |
a function that makes the robot move straight
speed,: | represents the speed of the robot the robot |
distance,: | represents the distance to move by the robot |
isForward,: | if true, the robot moves forward,otherwise, it moves backward |
Method 2: using tf and we calculate the relative transform, then we determine its length
Definition at line 228 of file free_space_navigation.cpp.
void move_v3 | ( | double | speed, |
double | distance, | ||
bool | isForward | ||
) |
a function that makes the robot move straight
speed,: | represents the speed of the robot the robot |
distance,: | represents the distance to move by the robot |
isForward,: | if true, the robot moves forward,otherwise, it moves backward |
Method 3: we use coordinates of the robot to estimate the distance
Definition at line 317 of file free_space_navigation.cpp.
void moveSquare | ( | double | sideLength | ) |
Definition at line 113 of file free_space_navigation.cpp.
void poseCallback | ( | const nav_msgs::Odometry::ConstPtr & | pose_message | ) |
Definition at line 102 of file free_space_navigation.cpp.
double radian2degree | ( | double | radianAngle | ) |
Definition at line 448 of file free_space_navigation.cpp.
void rotate | ( | double | ang_vel, |
double | angle_radian, | ||
bool | isClockwise | ||
) |
Definition at line 352 of file free_space_navigation.cpp.
Definition at line 41 of file free_space_navigation.cpp.
Definition at line 40 of file free_space_navigation.cpp.
nav_msgs::Odometry turtlebot_odom_pose |
Definition at line 43 of file free_space_navigation.cpp.
Definition at line 38 of file free_space_navigation.cpp.