Path Recorder¶
This is a Utility we use to save a human generated path in the global frame: /ecef
.
Indyav Path Recorder inherits from the mil_tools TopicRecorder
. We override the CallBack function to record odometry messages at a fixed rate.
Basic Usage Example¶
Launch SubjuGator in gazebo, clear the kill, and bring up subviz.
In a new panel, launch the recorder on odom topic:
roslaunch indyav_launch path_recorder.launch record_topic:=/odom
NOTE: This will start to spew the warning :
path_recorder frame id is not in ECEF
. you can safely ignore this warning for this example.In a new panel, start recording:
service call /path/path_recorder/enable "data: true"
In a new panel, command a move forward:
submove f 5
Watch the sub move forward 5m in the rviz window
Stop recording in the same panel as you enabled (doesn’t actually matter where this command is issued):
service call /path/path_recorder/enable "data: false"
If you like, you can now kill the path recorder by going to the terminal where it was launch and pressing:
Ctrl + c
Play back the recording as a normal rosbag on a different topic and visualize it:
rosbag play ~/test.bag /odom:=/odom2 -l
Visualize this new topic in rviz by clicking Add and then /odom2 -> Odometry
Watch the red arrow advance from where the sub started to where the sub stopped updating approximately 10 times a second.
Source Files¶
- indyav_path PathRecorder:
- header:
rosed indyav_path path_recorder.hpp
- source:
rosed indyav_path path_recorder.cpp
- mil_tools TopicRecorder:
- header:
rosed mil_tools topic_recorder.hpp
- source:
rosed mil_tools topic_recorder.cpp
- launch file:
rosed indyav_launch path_recorder.launch