I did some extra work yesterday to get the robot's Gazebo poses publishing as a ROS message, and I'm glad I did. I hadn't been sure it would be a good use of time, since I already have a script that prints the poses to a text file, but at the time, I did it just to make things ship-shape. It led to an important discovery, though:
In all of my simulations, I've had the starting AMCL pose adjusted for the wrong map. Yikes! I suspect this was going on in the previous round of simulations, too.
I've corrected this by forcing the AMCL pose to (0,0) through a command line parameter added to my Bash script (another reason I'm loving the Bash scripts for starting ROS nodes). Another addition to the start_driving_robot Bash script is a couple commands that execute after the playback of the driving route is finished:
rosnode kill -a
Purpose :Kills everything - specifically, the rosrecord node, so that I can walk away from the simulation after I start it up, and I won't get data from the robot sitting still at the end.
killall -9 gzserver
Purpose: rosnode kill apparently wasn't shutting down Gazebo nicely, and when I would immediately start a new instance of Gazebo, it would fail because there was already a gzserver process running. This step seems to help prevent this.
Really feeling the benefits of my improvements to the research infrastructure.
No comments:
Post a Comment