Aikido
TrajectoryMarker.hpp
Go to the documentation of this file.
1 #ifndef AIKIDO_RVIZ_TRAJECTORYMARKER_HPP_
2 #define AIKIDO_RVIZ_TRAJECTORYMARKER_HPP_
3 
4 #include <dart/dynamics/Frame.hpp>
5 #include <interactive_markers/interactive_marker_server.h>
6 #include <visualization_msgs/InteractiveMarker.h>
7 
10 
11 namespace aikido {
12 namespace rviz {
13 
14 AIKIDO_DECLARE_POINTERS(TrajectoryMarker)
15 
16 class TrajectoryMarker final
19 {
20 public:
40  interactive_markers::InteractiveMarkerServer* markerServer,
41  const std::string& frameId,
42  const std::string& markerName,
44  dart::dynamics::MetaSkeletonPtr skeleton,
45  const dart::dynamics::Frame& frame,
46  const Eigen::Vector4d& rgba = Eigen::Vector4d::Constant(0.75),
47  double thickness = 0.01,
48  std::size_t numLineSegments = 16u);
49 
52 
60 
63 
65  void setColor(const Eigen::Vector3d& rgb);
66 
68  Eigen::Vector3d getColor() const;
69 
71  void setAlpha(double alpha);
72 
74  double getAlpha() const;
75 
77  void setRGBA(const Eigen::Vector4d& rgb);
78 
80  Eigen::Vector4d getRBGA() const;
81 
83  void setThickness(double thickness);
84 
86  double getThickness() const;
87 
89  void setNumLineSegments(std::size_t numLineSegments);
90 
92  std::size_t getNumLineSegments() const;
93 
99  void update();
100 
101 private:
105  void updatePoints();
106 
108  visualization_msgs::Marker& getMarker();
109 
111  const visualization_msgs::Marker& getMarker() const;
112 
114  interactive_markers::InteractiveMarkerServer* mMarkerServer;
115 
117  visualization_msgs::InteractiveMarker mInteractiveMarker;
118 
120  std::string mFrameId;
121 
124 
126  std::size_t mNumLineSegments;
127  // TODO(JS): Consider switching to resolution once arc-length calculation is
128  // available for Trajectoy.
129 
132  dart::dynamics::MetaSkeletonPtr mSkeleton;
133 
135  const dart::dynamics::Frame& mFrame;
136 
139 
142 };
143 
144 } // namespace rviz
145 } // namespace aikido
146 
147 #endif // AIKIDO_RVIZ_TRAJECTORYMARKER_HPP_
aikido::rviz::TrajectoryMarker::setAlpha
void setAlpha(double alpha)
Sets or updates alpha of visualized trajectory.
aikido
Format of serialized trajectory in YAML.
Definition: algorithm.hpp:4
aikido::rviz::TrajectoryMarker::mMarkerServer
interactive_markers::InteractiveMarkerServer * mMarkerServer
RViz marker server.
Definition: TrajectoryMarker.hpp:114
aikido::rviz::TrajectoryMarker::setNumLineSegments
void setNumLineSegments(std::size_t numLineSegments)
Sets or updates number of line segments of the visualizing trajectory.
aikido::rviz::TrajectoryMarker::mNeedPointsUpdate
bool mNeedPointsUpdate
Whether the trajectory points need to be updated.
Definition: TrajectoryMarker.hpp:141
aikido::rviz::TrajectoryMarker::getColor
Eigen::Vector3d getColor() const
Returns color (RGB) of visualized trajectory.
aikido::trajectory::ConstTrajectoryPtr
std::shared_ptr< const Trajectory > ConstTrajectoryPtr
Definition: Trajectory.hpp:13
aikido::rviz::TrajectoryMarker::getMarker
visualization_msgs::Marker & getMarker()
Returns marker.
aikido::rviz::TrajectoryMarker::getRBGA
Eigen::Vector4d getRBGA() const
Returns RGBA of visualized trajectory.
aikido::rviz::TrajectoryMarker::mInteractiveMarker
visualization_msgs::InteractiveMarker mInteractiveMarker
RViz interactive marker.
Definition: TrajectoryMarker.hpp:117
aikido::rviz::TrajectoryMarker::mTrajectory
trajectory::ConstTrajectoryPtr mTrajectory
C-space (or joint-space) trajectory.
Definition: TrajectoryMarker.hpp:123
aikido::rviz::TrajectoryMarker::setTrajectory
void setTrajectory(trajectory::ConstTrajectoryPtr trajectory)
Sets or updates trajectory to visualize.
aikido::rviz::TrajectoryMarker::getNumLineSegments
std::size_t getNumLineSegments() const
Returns number of line segments of the visualizing trajectory.
pointers.hpp
aikido::rviz::TrajectoryMarker::mNumLineSegments
std::size_t mNumLineSegments
Number of line segments of the discretized task-space trajectory.
Definition: TrajectoryMarker.hpp:126
aikido::rviz::TrajectoryMarker::mNeedUpdate
bool mNeedUpdate
Whether the associated RViz maker needs to be updated.
Definition: TrajectoryMarker.hpp:138
aikido::rviz::TrajectoryMarker::getThickness
double getThickness() const
Returns thickness of visualized trajectory.
Trajectory.hpp
aikido::rviz::TrajectoryMarker::mSkeleton
dart::dynamics::MetaSkeletonPtr mSkeleton
Target DART meta skeleton that the C-space trajectory will be applied to compute the visualizing task...
Definition: TrajectoryMarker.hpp:132
aikido::rviz::TrajectoryMarker::mFrameId
std::string mFrameId
Frame name of RViz interactive marker.
Definition: TrajectoryMarker.hpp:120
aikido::rviz::TrajectoryMarker::update
void update()
Updates this marker.
aikido::rviz::TrajectoryMarker::getTrajectory
trajectory::ConstTrajectoryPtr getTrajectory() const
Returns trajectory associated with this marker.
aikido::rviz::TrajectoryMarker::getAlpha
double getAlpha() const
Returns alpha of visualized trajectory.
aikido::rviz::TrajectoryMarker::TrajectoryMarker
TrajectoryMarker(interactive_markers::InteractiveMarkerServer *markerServer, const std::string &frameId, const std::string &markerName, trajectory::ConstTrajectoryPtr trajectory, dart::dynamics::MetaSkeletonPtr skeleton, const dart::dynamics::Frame &frame, const Eigen::Vector4d &rgba=Eigen::Vector4d::Constant(0.75), double thickness=0.01, std::size_t numLineSegments=16u)
Constructor.
aikido::rviz::TrajectoryMarker::setColor
void setColor(const Eigen::Vector3d &rgb)
Sets or updates color (RGB) of visualized trajectory.
aikido::rviz::TrajectoryMarker::setRGBA
void setRGBA(const Eigen::Vector4d &rgb)
Sets or updates RGBA of visualized trajectory.
aikido::rviz::TrajectoryMarker::setThickness
void setThickness(double thickness)
Sets or updates thickness of visualized trajectory.
aikido::rviz::TrajectoryMarker::~TrajectoryMarker
~TrajectoryMarker()
Destructor.
AIKIDO_DECLARE_POINTERS
#define AIKIDO_DECLARE_POINTERS(X)
Definition: pointers.hpp:21
aikido::rviz::TrajectoryMarker::mFrame
const dart::dynamics::Frame & mFrame
Target DART frame where the trajectory of its origin will be visualized.
Definition: TrajectoryMarker.hpp:135
aikido::rviz::TrajectoryMarker::updatePoints
void updatePoints()
Updates trajectory points based on trajectory and number of line-segments.