diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..e9736ff --- /dev/null +++ b/.gitattributes @@ -0,0 +1,9 @@ +*.bmp filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.STL filter=lfs diff=lfs merge=lfs -text +*.stl filter=lfs diff=lfs merge=lfs -text +*.jpg filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.tar.gz filter=lfs diff=lfs merge=lfs -text +*.ompldb filter=lfs diff=lfs merge=lfs -text +*.npy filter=lfs diff=lfs merge=lfs -text diff --git a/CMakeLists.txt b/CMakeLists.txt index d82f6e5..ca116ca 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -198,6 +198,13 @@ install( RUNTIME DESTINATION lib/${PROJECT_NAME} ) +# Install shared resources +install(DIRECTORY launch DESTINATION share/${PROJECT_NAME}) +install( + DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/meshes" + DESTINATION "share/${PROJECT_NAME}" +) + # Install header files install( DIRECTORY include/ @@ -244,4 +251,4 @@ if (BUILD_TESTING) ) endif() -ament_package() \ No newline at end of file +ament_package() diff --git a/meshes/bishop.stl b/meshes/bishop.stl new file mode 100644 index 0000000..58bbc03 --- /dev/null +++ b/meshes/bishop.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:76a40294e09568b51e9c21aa0a6d3f877fa56e4bb3c3c74a2d43428bb1633a27 +size 18984 diff --git a/meshes/king.stl b/meshes/king.stl new file mode 100644 index 0000000..4fcbe4f --- /dev/null +++ b/meshes/king.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:467d2b302f63c5287a1fc9e2b0a068018a00ba1d81f21e0966dbfcdaf71a6df2 +size 25084 diff --git a/meshes/knight.stl b/meshes/knight.stl new file mode 100644 index 0000000..1e86c32 --- /dev/null +++ b/meshes/knight.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:18e2b531c2b5a735be0b85eebeae42061a307ed51ac7c4c98ab3432b5f7abb72 +size 24184 diff --git a/meshes/pawn.stl b/meshes/pawn.stl new file mode 100644 index 0000000..39655c5 --- /dev/null +++ b/meshes/pawn.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:26ed9c604ecf94dda2674376e321c2e3ad4a578d15106b6ab15861a5ae50565a +size 12784 diff --git a/meshes/queen.stl b/meshes/queen.stl new file mode 100644 index 0000000..024d5f8 --- /dev/null +++ b/meshes/queen.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6703c0df91f3836d67aaab7188350baab02c60ab328939a35464c787bb2f03d8 +size 22384 diff --git a/meshes/rook.stl b/meshes/rook.stl new file mode 100644 index 0000000..fd641b0 --- /dev/null +++ b/meshes/rook.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7b28442d43bce4665199d19b6ae26194d90186abe2808b658a0fca4f4161ff95 +size 11884 diff --git a/src/rviz_visual_tools_demo.cpp b/src/rviz_visual_tools_demo.cpp index af5f4b8..230a332 100644 --- a/src/rviz_visual_tools_demo.cpp +++ b/src/rviz_visual_tools_demo.cpp @@ -358,7 +358,33 @@ class RvizVisualToolsDemo : public rclcpp::Node */ // -------------------------------------------------------------------- - // TODO(davetcoleman): publishMesh + RCLCPP_INFO(get_logger(), "Displaying Meshes"); + pose1 = Eigen::Isometry3d::Identity(); + y += space_between_rows; + pose1.translation().y() = y; + + step = 0.2; + const std::array thetas = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }; + const std::array meshes = { + "pawn", "knight", "bishop", "rook", "queen", "king" + }; // "pig" }; + const std::array mesh_colors = { rvt::RED, rvt::ORANGE, rvt::YELLOW, + rvt::GREEN, rvt::BLACK, rvt::WHITE }; + const std::array scales = { 0.05, 0.05, 0.05, 0.05, 0.05, 0.05 }; + + for (size_t i = 0; i < meshes.size(); ++i) + { + visual_tools_->publishMesh(pose1 * Eigen::AngleAxisd(thetas[i], Eigen::Vector3d::UnitZ()), + "package://rviz_visual_tools/meshes/" + meshes[i] + ".stl", + mesh_colors[i], scales[i]); + if (i == 0.0) + { + publishLabelHelper(pose1, "Meshes"); + } + + pose1.translation().x() += step; + } + visual_tools_->trigger(); // -------------------------------------------------------------------- // TODO(davetcoleman): publishPolygon @@ -656,7 +682,7 @@ int main(int argc, char* argv[]) // Allow the action server to recieve and send ros messages executor->add_node(demo); - executor->spin_some(); + executor->spin_once(); double x_location = 0; demo->testRows(x_location);