Repository Summary
Checkout URI | https://github.com/ipa-jfh/robot_recorder.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2019-01-24 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
recordit | 1.0.1 |
robot_recorder | 1.0.1 |
rviz_recorder_buttons | 1.0.1 |
README
Look at me!
… catch more attention with the tool …
RecordIt
“An animation is worth a thousand lines of markdown.”
» See 3D animation » Get started with the tutorial
This package can be used to record a ROS system for the web as a three.js animation. The result can e.g. be displayed in gh-pages or converted to a GIF.
Further examples
See 3D animation </a>
» See source code of application
See 3D animation </a>
Usecases
- Show a 3D demo of your ROS application
- Inspect failed CI test result(s)
- Visualize parameter studies
How to use?
In order to reduce the recorded data it does not apply a fixed rate but keyframes.
-
“Automatic mode”: By default the node records* as soon as it is started and saves data as soon as it is closed. -> Set param
~manual
tofalse
-
“Manual mode”: Control the tool via ROS services. -> Set param
~manual
totrue
Available ROS services (private ns
~
is by defaultrobot_recorder/
):-
~preconfigure
(OPTIONAL): Start ROS subscribers and loadrobot_description
param (Requires 2 secs). -
~start
: Preconfigures if not yet done and then starts recording*. -
~pause
: Pause and unpause the recording. -
~stop
: Stops the recording and saves it to the given file path (param~output_file
) ATTENTION: It will overwrite existing files! By default saved in the path~.ros/
with a timestamped name.
-
*Once the recorder is started it will wait until the robot “moves” (new tf
or joint_states
msgs) before it starts the actual recording. Throttling by change (see What can be recorded?) is recommended.
By default the recorded .json
file will be saved inside the robot_recorder_core
package.
What can be recorded?
-
/joint_states
This topic provides the changes of the robot joints and represents the internal motion of the robot. It can be throttled by rate and by change to reduce the recorded keyframes.
-
/tf
This topic should be used to get the external motion of the robot with respect to a fixed world/map. It can be throttled by change to reduce the recorded keyframes. The referenced node considers by default only the tf change between the frames
map
<–>base_link
.
Which output-format is used?
The recorded robot movements are saved as animation of the JSON Object format
(three.js example) which can be utilized by the three.js animation system.
How is the URDF visualized in the three.js scene?
With the urdf-loader
tool: https://github.com/gkjohnson/urdf-loaders
How to add animations and a GIF converter?
With the urdf-animation
tool, which wraps the urdf-loader
: https://github.com/ipa-jfh/urdf-animation
CONTRIBUTING
Code-Formatting
Install the pre-commit tool
$ pip install pipenv
$ pre-commit install
for auto code-formatting at every commit. Or trigger it manually for all files:
$ pre-commit run --all-files