Gazebo Sim

API Reference

8.3.0
JointStatePublisher.hh
Go to the documentation of this file.
1/*
2 * Copyright (C) 2019 Open Source Robotics Foundation
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 *
16 */
17
18#ifndef GZ_SIM_SYSTEMS_STATE_PUBLISHER_HH_
19#define GZ_SIM_SYSTEMS_STATE_PUBLISHER_HH_
20
21#include <memory>
22#include <set>
23#include <string>
24#include <gz/sim/Model.hh>
25#include <gz/transport/Node.hh>
26#include <gz/sim/System.hh>
27
28namespace gz
29{
30namespace sim
31{
32// Inline bracket to help doxygen filtering.
33inline namespace GZ_SIM_VERSION_NAMESPACE {
34namespace systems
35{
54 : public System,
55 public ISystemConfigure,
57 {
60
62 public: ~JointStatePublisher() override = default;
63
64 // Documentation inherited
65 public: void Configure(const Entity &_entity,
67 EntityComponentManager &_ecm, EventManager &) override;
68
69 // Documentation inherited
70 public: void PostUpdate(const UpdateInfo &_info,
71 const EntityComponentManager &_ecm) final;
72
76 private: void CreateComponents(EntityComponentManager &_ecm,
77 sim::Entity _joint);
78
80 private: Model model;
81
83 private: transport::Node node;
84
87
89 private: std::set<Entity> joints;
90
92 private: std::string topic;
93 };
94 }
95}
96}
97}
98
99#endif