로그 수신 및 오버레이 표시

2591 단어 ROS2ROS
rviz2 플러그인을 만드는 방법 톱 페이지로
rcl_interfaces::msg::Log 를 받고 표시하는 플러그인을 만듭니다.

실행 예





ROS1 버전



이 코드를 rviz2 용으로 다시 작성하십시오.
ROS 강좌 118 overlay로 표시 rviz display plugind 만들기

ROS1의 주요 변경 사항



log_display.hpp



함수 추가
    virtual void onInitialize();
    virtual void reset();

주제 수신 RosTopicDisplay
class LogDisplay : public rviz_common::RosTopicDisplay<rcl_interfaces::msg::Log>
{
private:
    // 以下は使用しない
    // ros::NodeHandle nh_;
    // ros::Subscriber log_sub_;
};

log_display.cpp



다음 파일을 읽는 것을 잊지 마십시오.
Dashing 환경(아마 Eloquent에서도)에서는 이 파일이 include 디렉토리에 존재하지 않고 include 할 수 없기 때문에
Github에서 가져 오거나 로컬 환경에있는 render_system.hpp/opt/ros/[distribution]/include/rviz_rendering 아래에 배치하십시오.
#include <rviz_rendering/render_system.hpp> // 重要
void LogDisplay::onInitialize()
{
    rviz_rendering::RenderSystem::get()->prepareOverlays(scene_manager_); // 重要
    RTDClass::onInitialize();
}

void LogDisplay::reset()
{
    RTDClass::reset();
}
prepareOverlays() 에 대한 호출을 추가하고 있습니다. 이것이 없으면 rviz에서 그리기 처리가 실행되지 않으므로 아무 것도 표시되지 않습니다.

좋은 웹페이지 즐겨찾기