-
Notifications
You must be signed in to change notification settings - Fork 12
Euler Viewer
Robert Haschke edited this page May 5, 2021
·
12 revisions
The application euler allows to inspect Euler angles and quaternions of rotations.
It displays a simple interactive marker in rviz (on topic: /euler/updates).
- Download and compile the
lecturerepository as explained here. - Source your
devel space:source ~/ros/devel/setup.bash. - Launch
rvizand theeulerbinary:roslaunch lecture euler.launch. - Ensure that the
fixed frameofrvizis set toworld(instead ofmapwhich is the default usually).
- Inspect the commits (e.g. using
githuborqgit) to learn about creating interactive rviz markers and interconnecting them to the app. - Augment the marker display with a frame (composed from three arrows).
- Modify the
MainWindowclass to update the orientation offrame1+2(adding Euler angles) andframe1*2(correctly composing orientations by quaternion multiplication). To this end,connectthevalueChanged()signal offrame1andframe2widgets to a newslotmethod that computes the corresponding results and updates the other widget's orientation values. - Analyze and describe when orientations of
frame1+2andframe1*2are identical. - Implement Quaternion slerp to perform interpolation between
frame1andframe2(see quaternion slides of lectures). To this end, augment an additionalRotationControlwidget to theMainWindowclass, to visualize the interpolation result. The interpolation should be performed continuously, e.g. using a QTimer or QThread. - Augment
MainWindowwith anotherRotationControlinstance to display the same orientation asframe1, but using a different set of Euler axes. Interlink the corresponding instances ofRotationControlby their signalvalueChangedand the slotsetValue. Analyze how the Euler angles are connected to each other.