Skip to content

Commit

Permalink
Add frame_id parameter to aikido:rviz (#183)
Browse files Browse the repository at this point in the history
  • Loading branch information
Pengju Jin authored and mkoval committed Apr 26, 2017
1 parent 797797f commit 1fac8bb
Show file tree
Hide file tree
Showing 11 changed files with 42 additions and 21 deletions.
4 changes: 3 additions & 1 deletion include/aikido/rviz/BodyNodeMarker.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@ class BodyNodeMarker {
BodyNodeMarker(
ResourceServer *resourceServer,
interactive_markers::InteractiveMarkerServer *markerServer,
dart::dynamics::WeakBodyNodePtr const &bodyNode);
dart::dynamics::WeakBodyNodePtr const &bodyNode,
const std::string &frameId);

BodyNodeMarker(BodyNodeMarker const &) = delete;
BodyNodeMarker &operator=(BodyNodeMarker const &) = delete;
Expand All @@ -38,6 +39,7 @@ class BodyNodeMarker {
interactive_markers::InteractiveMarkerServer *mMarkerServer;
visualization_msgs::InteractiveMarker mInteractiveMarker;
visualization_msgs::InteractiveMarkerControl *mVisualControl;
std::string mFrameId;

std::string mName;
ShapeFrameMarkerMap mShapeFrameMarkers;
Expand Down
2 changes: 2 additions & 0 deletions include/aikido/rviz/FrameMarker.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ class FrameMarker {
FrameMarker(
interactive_markers::InteractiveMarkerServer *markerServer,
dart::dynamics::Frame *frame,
const std::string& frameId,
double length = 0.25,
double thickness = 0.02,
double alpha = 1.0);
Expand All @@ -32,6 +33,7 @@ class FrameMarker {
visualization_msgs::InteractiveMarker mInteractiveMarker;

dart::dynamics::Frame *mFrame;
std::string mFrameId;
};

} // namespace rviz
Expand Down
8 changes: 6 additions & 2 deletions include/aikido/rviz/InteractiveMarkerViewer.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ namespace rviz {
class InteractiveMarkerViewer
{
public:
InteractiveMarkerViewer(const std::string& topicNamespace);
InteractiveMarkerViewer(const std::string& topicNamespace,
const std::string& frameId);
virtual ~InteractiveMarkerViewer();

InteractiveMarkerViewer(const InteractiveMarkerViewer&) = delete;
Expand All @@ -36,7 +37,8 @@ class InteractiveMarkerViewer
double thickness = 0.02, double alpha = 1.0);

SkeletonMarkerPtr CreateSkeletonMarker(
const dart::dynamics::SkeletonPtr& skeleton);
const dart::dynamics::SkeletonPtr& skeleton,
const std::string& frameId);

/// Visualizes a TSR.
/// \param tsr TSR constraint
Expand All @@ -62,6 +64,8 @@ class InteractiveMarkerViewer
std::atomic_bool mUpdating;
std::mutex mMutex;
std::thread mThread;

std::string mFrameId;
};

} // namespace rviz
Expand Down
6 changes: 4 additions & 2 deletions include/aikido/rviz/ShapeFrameMarker.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ class ShapeFrameMarker
ResourceServer *resourceServer,
interactive_markers::InteractiveMarkerServer *markerServer,
const std::string &name,
const dart::dynamics::ShapeFrame *shapeFrame);
const dart::dynamics::ShapeFrame *shapeFrame,
const std::string &frameId);

ShapeFrameMarker(ShapeFrameMarker const &) = delete;
ShapeFrameMarker &operator=(ShapeFrameMarker const &) = delete;
Expand All @@ -36,7 +37,8 @@ class ShapeFrameMarker
visualization_msgs::InteractiveMarkerControl *mVisualControl;

const dart::dynamics::ShapeFrame *mShapeFrame;

std::string mFrameId;

bool mExists;
bool mForceUpdate;
size_t mVersion;
Expand Down
4 changes: 3 additions & 1 deletion include/aikido/rviz/SkeletonMarker.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ class SkeletonMarker {
SkeletonMarker(
ResourceServer *resourceServer,
interactive_markers::InteractiveMarkerServer *markerServer,
dart::dynamics::WeakSkeletonPtr const &skeleton);
dart::dynamics::WeakSkeletonPtr const &skeleton,
const std::string &frameId);

dart::dynamics::SkeletonPtr getSkeleton() const;
std::vector<BodyNodeMarkerPtr> bodynode_markers() const;
Expand All @@ -37,6 +38,7 @@ class SkeletonMarker {
BodyNodeMarkerPtr> mBodyNodeMarkers;

bool mHasColor;
std::string mFrameId;
Eigen::Vector4d mColor;
};

Expand Down
2 changes: 0 additions & 2 deletions src/perception/AprilTagsModule.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,6 @@ bool AprilTagsModule::detectObjects(const dart::simulation::WorldPtr& env, ros::

if(env_skeleton == nullptr){
// Getting the model for the new object
std::cout << "getting new thing" << std::endl;
is_new_skel = true;
dart::utils::DartLoader urdfLoader;
skel_to_update =
Expand Down Expand Up @@ -157,7 +156,6 @@ bool AprilTagsModule::detectObjects(const dart::simulation::WorldPtr& env, ros::
if(is_new_skel){
//Adding new skeleton to the world env
env->addSkeleton(skel_to_update);
std::cout << "added new thing" << std::endl;
}

}
Expand Down
6 changes: 4 additions & 2 deletions src/rviz/BodyNodeMarker.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,12 @@ using interactive_markers::InteractiveMarkerServer;

BodyNodeMarker::BodyNodeMarker(ResourceServer *resourceServer,
InteractiveMarkerServer *markerServer,
WeakBodyNodePtr const &bodyNodeWeak)
WeakBodyNodePtr const &bodyNodeWeak,
const std::string &frameId)
: mBodyNode(bodyNodeWeak)
, mResourceServer(resourceServer)
, mMarkerServer(markerServer)
, mFrameId(frameId)
{
// Register callbacks on BodyNode changes.
BodyNodePtr const bodyNode = mBodyNode.lock();
Expand Down Expand Up @@ -66,7 +68,7 @@ bool BodyNodeMarker::update()

mShapeFrameMarkers.emplace(shapeNode, std::unique_ptr<ShapeFrameMarker>(
new ShapeFrameMarker(mResourceServer, mMarkerServer, shapeNodeName.str(),
shapeNode)));
shapeNode, mFrameId)));
}

// Update all of the ShapeFrameMarkers.
Expand Down
4 changes: 3 additions & 1 deletion src/rviz/FrameMarker.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -42,13 +42,15 @@ static void CreateAxis(
FrameMarker::FrameMarker(
interactive_markers::InteractiveMarkerServer *markerServer,
dart::dynamics::Frame *frame,
const std::string& frameId,
double length, double thickness, double alpha)
: mMarkerServer(markerServer)
, mFrame(frame)
, mFrameId(frameId)
{
using visualization_msgs::InteractiveMarkerControl;

mInteractiveMarker.header.frame_id = "map";
mInteractiveMarker.header.frame_id = mFrameId;
mInteractiveMarker.name = str(format("Frame[%s]") % frame->getName());
mInteractiveMarker.pose.orientation.w = 1;
mInteractiveMarker.scale = 1;
Expand Down
15 changes: 9 additions & 6 deletions src/rviz/InteractiveMarkerViewer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,11 @@ namespace aikido {
namespace rviz {

InteractiveMarkerViewer::InteractiveMarkerViewer(
const std::string& topicNamespace)
const std::string& topicNamespace, const std::string& frameId)
: mMarkerServer(topicNamespace, "", true),
mRunning(false),
mUpdating(false)
mUpdating(false),
mFrameId(frameId)
{
}

Expand All @@ -34,7 +35,7 @@ SkeletonMarkerPtr InteractiveMarkerViewer::addSkeleton(
const SkeletonPtr& skeleton)
{
std::lock_guard<std::mutex> lock(mMutex);
const SkeletonMarkerPtr marker = CreateSkeletonMarker(skeleton);
const SkeletonMarkerPtr marker = CreateSkeletonMarker(skeleton, mFrameId);
mSkeletonMarkers.insert(marker);
return marker;
}
Expand All @@ -44,7 +45,7 @@ FrameMarkerPtr InteractiveMarkerViewer::addFrame(
{
std::lock_guard<std::mutex> lock(mMutex);
const FrameMarkerPtr marker = std::make_shared<FrameMarker>(
&mMarkerServer, frame, length, thickness, alpha);
&mMarkerServer, frame, mFrameId, length, thickness, alpha);
mFrameMarkers.insert(marker);
return marker;
}
Expand Down Expand Up @@ -97,11 +98,13 @@ TSRMarkerPtr InteractiveMarkerViewer::addTSRMarker(


SkeletonMarkerPtr InteractiveMarkerViewer::CreateSkeletonMarker(
const SkeletonPtr& skeleton)
const SkeletonPtr& skeleton, const std::string& frameId)
{
return std::make_shared<SkeletonMarker>(nullptr, &mMarkerServer, skeleton);
return std::make_shared<SkeletonMarker>(
nullptr, &mMarkerServer, skeleton, frameId);
}


void InteractiveMarkerViewer::setAutoUpdate(bool flag)
{
mUpdating.store(flag, std::memory_order_release);
Expand Down
6 changes: 4 additions & 2 deletions src/rviz/ShapeFrameMarker.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,12 @@ ShapeFrameMarker::ShapeFrameMarker(
ResourceServer *resourceServer,
InteractiveMarkerServer *markerServer,
const std::string &name,
ShapeFrame const *shapeFrame)
ShapeFrame const *shapeFrame,
const std::string &frameId)
: mResourceServer(resourceServer)
, mMarkerServer(markerServer)
, mShapeFrame(shapeFrame)
, mFrameId(frameId)
, mExists(false)
, mForceUpdate(true)
, mVersion()
Expand All @@ -38,7 +40,7 @@ ShapeFrameMarker::ShapeFrameMarker(
using std::placeholders::_1;
using std::placeholders::_2;

mInteractiveMarker.header.frame_id = "map";
mInteractiveMarker.header.frame_id = mFrameId;
mInteractiveMarker.scale = 1.;
mInteractiveMarker.controls.resize(1);
mInteractiveMarker.name = name;
Expand Down
6 changes: 4 additions & 2 deletions src/rviz/SkeletonMarker.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,13 @@ using interactive_markers::InteractiveMarkerServer;

SkeletonMarker::SkeletonMarker(ResourceServer *resourceServer,
InteractiveMarkerServer *markerServer,
WeakSkeletonPtr const &skeleton)
WeakSkeletonPtr const &skeleton,
const std::string &frameId)
: mSkeleton(skeleton)
, mResourceServer(resourceServer)
, mMarkerServer(markerServer)
, mHasColor(false)
, mFrameId(frameId)
{
}

Expand All @@ -39,7 +41,7 @@ bool SkeletonMarker::update()

if (result.second) {
bodyNodeMarker = std::make_shared<BodyNodeMarker>(
mResourceServer, mMarkerServer, WeakBodyNodePtr(bodyNode));
mResourceServer, mMarkerServer, WeakBodyNodePtr(bodyNode), mFrameId);

if (mHasColor)
bodyNodeMarker->SetColor(mColor);
Expand Down

0 comments on commit 1fac8bb

Please sign in to comment.