.. _program_listing_file__tmp_ws_src_turtlebot3_turtlebot3_node_include_turtlebot3_node_sensors_joint_state.hpp: Program Listing for File joint_state.hpp ======================================== |exhale_lsh| :ref:`Return to documentation for file ` (``/tmp/ws/src/turtlebot3/turtlebot3_node/include/turtlebot3_node/sensors/joint_state.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp // Copyright 2019 ROBOTIS CO., LTD. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // Author: Darby Lim #ifndef TURTLEBOT3_NODE__SENSORS__JOINT_STATE_HPP_ #define TURTLEBOT3_NODE__SENSORS__JOINT_STATE_HPP_ #include #include #include #include "turtlebot3_node/sensors/sensors.hpp" namespace robotis { namespace turtlebot3 { namespace sensors { constexpr uint8_t JOINT_NUM = 2; // ref) http://emanual.robotis.com/docs/en/dxl/x/xl430-w250/#goal-velocity104 constexpr double RPM_TO_MS = 0.229 * 0.0034557519189487725; // 0.087890625[deg] * 3.14159265359 / 180 = 0.001533981f constexpr double TICK_TO_RAD = 0.001533981; class JointState : public Sensors { public: explicit JointState( std::shared_ptr & nh, const std::string & topic_name = "joint_states", const std::string & frame_id = "base_link"); void publish( const rclcpp::Time & now, std::shared_ptr & dxl_sdk_wrapper) override; private: rclcpp::Publisher::SharedPtr pub_; }; } // namespace sensors } // namespace turtlebot3 } // namespace robotis #endif // TURTLEBOT3_NODE__SENSORS__JOINT_STATE_HPP_