Yörüngeleri Manipüle Etmek
Bir yörünge oluşturulduktan sonra, belirli yöntemleri kullanarak ondan bilgi alabilirsiniz. Bu yöntemler, bu yörüngeleri izlemek için kod yazarken faydalı olacaktır.
Yörüngenin Toplam Süresini Elde Etmek
Tüm yörüngelerin her noktada zaman damgaları olduğundan, bir robotun tüm yörüngeyi geçmesi için gereken süre önceden belirlenir. TotalTime ()
(C ++) / `` getTotalTimeSeconds ()`` (Java) yöntemi yörüngede gezinmek için gereken süreyi belirlemek için kullanılabilir.
// Get the total time of the trajectory in seconds
double duration = trajectory.getTotalTimeSeconds();
// Get the total time of the trajectory
units::second_t duration = trajectory.TotalTime();
Yörüngeyi Örnekleme
Yörünge, o noktada pozu, hızı ve ivmeyi elde etmek için çeşitli zaman adımlarında örneklenebilir. Herhangi bir zaman adımında yörüngeyi örneklemek için Sample(units::second_t time)
(C++) / sample(double timeSeconds)
(Java) yöntemi kullanılabilir. Parametre, 0 saniyeden bu yana geçen süreyi ifade eder (yörüngenin başlangıç noktası). Bu yöntem, o örnek noktası hakkında bilgi içeren bir Trajectory::Sample
döndürür.
// Sample the trajectory at 1.2 seconds. This represents where the robot
// should be after 1.2 seconds of traversal.
Trajectory.Sample point = trajectory.sample(1.2);
// Sample the trajectory at 1.2 seconds. This represents where the robot
// should be after 1.2 seconds of traversal.
Trajectory::State point = trajectory.Sample(1.2_s);
`` Yörünge :: Örnek`` yapısı, örnek nokta hakkında birkaç parça bilgi içerir:
t
: Yörüngenin başlangıcından örnekleme noktasına kadar geçen süre.velocity
: Numune noktasındaki hız.acceleration
: Örnek noktadaki ivme.`` pose``: Örnek noktadaki poz (x, y, başlık).
curvature
: Numune noktasındaki eğrilik (yörünge boyunca mesafeye göre yön değişim oranı).
Not: Numune noktasındaki açısal hız, hızı eğrilik ile çarparak hesaplanabilir.
Yörüngenin Tüm Durumlarını Alma (Gelişmiş)
Daha ileri düzey bir kullanıcı, States()
(C++) / getStates()
(Java) yöntemini çağırarak yörüngenin tüm durumlarının bir listesini alabilir. Her durum yörünge üzerindeki bir noktayı temsil eder. When the trajectory is created TrajectoryGenerator::GenerateTrajectory(...)
kullanılarak yöntem, yörünge noktalarının / durumlarının bir listesi oluşturulur. Kullanıcı belirli bir zaman adımında yörüngeyi örneklediğinde, listedeki iki mevcut nokta / durum arasında yeni bir örnek noktası enterpolasyonu yapılır.