hi! I noticed something strange about exercise 3.1. Pasting code below:
#include “rosbot_control/rosbot_class.h”
#include
#include
#include <ros/ros.h>
std::list move_and_inform(RosbotClass rosbot, int n_secs) {
float why = rosbot.get_position(1);
std::cout << why << “________” << std::endl; // MAIN PROBLEM: why and newx have the same value even though the robot moved
rosbot.move_forward(n_secs);
float newx = rosbot.get_position(1);
std::cout << newx << “________” << std::endl;
float newy = rosbot.get_position(2);
std::cout << newy << “________” << std::endl;
std::list newcoordinates({newx, newy});
return newcoordinates;
}
int main(int argc, char **argv) {
ros::init(argc, argv, “rosbot_node”);
RosbotClass rosbot;
float x = rosbot.get_position(1); // to see the inital coordinates
float y = rosbot.get_position(2);
ROS_INFO_STREAM(“old coordinates:” << x << ", " << y);
std::list results = move_and_inform(rosbot, 2.0);
for (float result : results) {
std::cout << result << " ,";
}
std::cout << std::endl
return 0;
}
The problem is explained in the comments, you can clearly see that get_position() does not give different positions even though the robot moved. So far, all the rosbot commands were working fine and now I cannot get the initial and final position.
I would like to know whether there is a problem with my code or the code of get_position()??
Thanks for the help!