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();

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);

`` 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.