robot.cpp
Go to the documentation of this file.
1 
6 #include <std_msgs/String.h>
7 #include "ros/ros.h"
8 #include <signal.h>
9 
10 
11 #include <webots_ros/robot_get_device_list.h>
12 #include <webots_ros/robot_get_device_list.h>
13 
15 
16 #include <iostream>
17 #include <vector>
18 
19 void quit(int sig) {
20  ROS_INFO("User stopped the 'robot_information_parser' node.");
21  ros::shutdown();
22  exit(0);
23 }
24 
25 int main(int argc, char **argv) {
26 
27  // create a node named 'robot_information_parser' on ROS network
28  ros::init(argc, argv, "robot");
29  ros::NodeHandle n;
30  ros::Rate loop_rate(100);
31 
32  std::vector<int> robot_list;
33  if (n.getParam("robot_list", robot_list))
34  {
35  ROS_INFO("Got param: robot_list");
36  }
37  else
38  {
39  ROS_ERROR("Failed to get param 'robot_list'");
40  }
41 
42  Robot robots[robot_list.size()];
43 
44  for (int i=0; i<robot_list.size(); i++)
45  {
46  robots[i].setName(std::to_string(robot_list.at(i)), n);
47  robots[i].setFrames();
48  robots[i].transmitFrames();
49 
50  }
51 
52  Field field(n);
53 
54  field.mapResolution = 0.008;
55  field.mapWidth = 500;
56  field.mapHeight = 500;
57 
58  std::vector<Point_2> points;
59  Point_2 p1(-0.81, 0.8);
60  Point_2 p2(1.43, 0.88);
61  Point_2 p3(1.43, -0.38);
62  Point_2 p4(-0.81, -0.515);
63  Point_2 p5(-0.81, 0.8);
64 
65 
66  points.push_back(p1);
67  points.push_back(p2);
68  points.push_back(p3);
69  points.push_back(p4);
70  points.push_back(p5);
71 
72  Obstacle obstacle("Prvi");
73 
74  std::vector<Point_2> points_2;
75  Point_2 p6(0.5, 0.8);
76  Point_2 p7(0.3, 0);
77 
78  points_2.push_back(p6);
79  points_2.push_back(p7);
80 
81  Obstacle obstacle2("Drugi");
82 
83  obstacle2.setSegments(points_2);
84  obstacle.setSegments(points);
85 
86  field.obstacles.push_back(obstacle);
87 
88  field.obstacles.push_back(obstacle2);
89 
90  field.generateOccupancyGrid();
91 
92  while(ros::ok()){
93 
94  field.publishOccupancyGrid(n);
95 
96  for (int i=0; i<robot_list.size(); i++)
97  {
98  robots[i].transmitPoseFromAlvarPoseMsg();
99  robots[i].transmitFrames();
100  }
101 
102  for (int i=0; i<robot_list.size(); i++)
103  {
104  robots[i].transmitLaserScan(robots, robot_list.size(), &field);
105 
106  }
107 
108  loop_rate.sleep();
109  ros::spinOnce();
110  }
111 }
Robot::transmitFrames
void transmitFrames()
Definition: rosinljubljana_objects.cpp:523
Field::mapHeight
uint32_t mapHeight
Definition: rosinljubljana.h:198
Obstacle::setSegments
void setSegments(std::vector< Point_2 >)
Definition: rosinljubljana_objects.cpp:10
Field::generateOccupancyGrid
void generateOccupancyGrid()
Definition: rosinljubljana_objects.cpp:97
Robot::setFrames
void setFrames()
Definition: rosinljubljana_objects.cpp:219
Field::mapResolution
float mapResolution
several map Parameters
Definition: rosinljubljana.h:196
Field::publishOccupancyGrid
void publishOccupancyGrid(ros::NodeHandle n)
Definition: rosinljubljana_objects.cpp:158
quit
void quit(int sig)
Definition: robot.cpp:19
Robot::transmitLaserScan
void transmitLaserScan(Robot[], int list_length, Field *field)
Definition: rosinljubljana_objects.cpp:431
Obstacle
Definition: rosinljubljana.h:82
Robot
Definition: rosinljubljana.h:212
Field::mapWidth
uint32_t mapWidth
Definition: rosinljubljana.h:197
Robot::transmitPoseFromAlvarPoseMsg
void transmitPoseFromAlvarPoseMsg()
Definition: rosinljubljana_objects.cpp:251
rosinljubljana.h
Field::obstacles
std::vector< Obstacle > obstacles
obstacles variable for storing obstacles
Definition: rosinljubljana.h:184
main
int main(int argc, char **argv)
Definition: robot.cpp:25
Field
Definition: rosinljubljana.h:119
Point_2
Kernel::Point_2 Point_2
Definition: rosinljubljana.h:61
Robot::setName
void setName(std::string, ros::NodeHandle nh)
Definition: rosinljubljana_objects.cpp:197


rosinljubljana
Author(s): Igor Banfi
autogenerated on Mon Feb 24 2020 11:52:30