This package allows you to programmatically change the camera view for a variety of environments (for example pybullet simulation, and RViz visualization).
pip install view-animator
Each animator may have specific environment installation pre-requisites, listed below.
The core of it is an animator object and its update()
method. You can either update()
the animator
manually, or automatically in a separate daemon thread.
Example automatic orbiting animation
from view_animator import animate_view_in_background
from view_animator.pybullet_animator import PybulletOrbitter
import pybullet as p
p.connect(p.GUI)
# other simulator configurations
# animate an orbit in the background at a distance of 0.5 away from the origin
# one orbit will be completed in 10 seconds and by default will loop forever
orbiter = PybulletOrbitter(update_period=0.01, dist=0.5, target=(0, 0, 0), period=10)
animate_view_in_background(orbiter)
# set up objects
p.setRealTimeSimulation(1)
while True:
# do sim computations
time.sleep(0.001)
Manual updating of an RViz orbiter
from view_animator.rviz_animator import RVizOrbiter
import rospy
# the target specified will be relative to the world_frame
orbiter = RVizOrbiter(period=5, world_frame="world")
rate = rospy.Rate(1 / orbiter.update_period)
while not rospy.is_shutdown():
# visualization and other processing
orbiter.update()
rate.sleep()
While you can subclass view_animator.base_animator.ViewAnimator
directly to suit your specific environment
and desired animation, there are a few predefined animators listed below. Note that you do not have to
have the environment installed to install this package.
Install pybullet with
pip install pybullet
view_animator.pybullet_animator.PybulletOrbitter
for orbitting around a position with fixed pitch at a constant rate
Requires the rviz_animated_view_controller
plugin that can be installed with
sudo apt install ros-<ros-distro>-rviz-animated-view-controller
e.g.
sudo apt install ros-noetic-rviz-animated-view-controller
view_animator.rviz_animator.RVizOrbitter
for orbitting around a position with fixed pitch at a constant rate