Mujoco KDL Wrapper  0.2.2
MuJoCo + KDL bridge for robot kinematics and dynamics
Loading...
Searching...
No Matches
mj_kdl_wrapper.hpp File Reference
#include <mujoco/mujoco.h>
#include <GLFW/glfw3.h>
#include <kdl/chain.hpp>
#include <kdl/frames.hpp>
#include <kdl/jntarray.hpp>
#include <cstdio>
#include <cstring>
#include <functional>
#include <sstream>
#include <string>
#include <vector>
#include <chrono>

Go to the source code of this file.

Classes

struct  mj_kdl::AttachTarget
struct  mj_kdl::AttachmentSpec
struct  mj_kdl::RobotSpec
struct  mj_kdl::SceneObject
struct  mj_kdl::CameraSpec
struct  mj_kdl::SceneSpec
struct  mj_kdl::ForceTorqueSensorSpec
struct  mj_kdl::ForceTorqueSensor
struct  mj_kdl::ToolFrameSpec
struct  mj_kdl::Robot
struct  mj_kdl::Viewer
struct  mj_kdl::VideoRecorder
struct  mj_kdl::ResetOptions
struct  mj_kdl::ResetInfo
struct  mj_kdl::ResetContext
struct  mj_kdl::Env

Namespaces

namespace  mj_kdl

Macros

#define MJ_FILENAME_   (::strrchr(__FILE__, '/') ? ::strrchr(__FILE__, '/') + 1 : __FILE__)
#define MJ_LOG_(lvl_enum, color, label, expr)
#define LOG_INFO(expr)
#define LOG_WARN(expr)
#define LOG_ERROR(expr)

Typedefs

using mj_kdl::ResetHook = std::function<void(ResetContext *)>

Enumerations

enum class  mj_kdl::LogLevel { mj_kdl::LogLevel::NONE = 0 , mj_kdl::LogLevel::INFO = 1 , mj_kdl::LogLevel::WARN = 2 , mj_kdl::LogLevel::ERROR = 3 }
enum class  mj_kdl::AttachKind { mj_kdl::AttachKind::World , mj_kdl::AttachKind::Body , mj_kdl::AttachKind::Site , mj_kdl::AttachKind::Frame }
enum class  mj_kdl::Shape { mj_kdl::Shape::Unspecified , mj_kdl::Shape::BOX , mj_kdl::Shape::SPHERE , mj_kdl::Shape::CYLINDER }
enum class  mj_kdl::Condim : int { mj_kdl::Condim::Tangential = 3 , mj_kdl::Condim::Torsional = 4 , mj_kdl::Condim::Rolling = 6 }
enum class  mj_kdl::CtrlMode { mj_kdl::CtrlMode::POSITION , mj_kdl::CtrlMode::TORQUE }
enum class  mj_kdl::VideoResolution {
  mj_kdl::VideoResolution::R360p = 360 , mj_kdl::VideoResolution::R480p = 480 , mj_kdl::VideoResolution::R720p = 720 , mj_kdl::VideoResolution::R1080p = 1080 ,
  mj_kdl::VideoResolution::R2K = 1440 , mj_kdl::VideoResolution::R4K = 2160
}

Functions

void mj_kdl::set_log_level (LogLevel level)
LogLevel mj_kdl::get_log_level ()
bool mj_kdl::save_model_xml (const mjModel *model, const char *path)
bool mj_kdl::init_robot_from_mjcf (Robot *r, mjModel *model, mjData *data, const char *base_body, const char *tip_body, const char *prefix="", const ToolFrameSpec *tool=nullptr)
const ForceTorqueSensormj_kdl::find_ft_sensor (const Robot *r, const char *name)
std::vector< double > mj_kdl::joint_force_limits (const Robot *r, double fallback=1e6)
bool mj_kdl::attach_to_spec (mjSpec *robot_spec, const AttachmentSpec *a)
bool mj_kdl::build_scene (mjModel **out_model, mjData **out_data, const SceneSpec *spec)
void mj_kdl::destroy_scene (mjModel *model, mjData *data)
bool mj_kdl::init_env (Env *env, const SceneSpec *spec)
void mj_kdl::env_add_robot (Env *env, Robot *robot)
ResetInfo mj_kdl::reset (Env *env, const ResetOptions *options=nullptr)
bool mj_kdl::init_window (Viewer *v, Robot *r, const char *title="MuJoCo", int width=1280, int height=720)
bool mj_kdl::init_window_sim (Viewer *v, Robot *r, const char *title="MuJoCo")
bool mj_kdl::init_window_sim (Viewer *v, mjModel *m, mjData *d, const char *title="MuJoCo")
void mj_kdl::clear_trace (Viewer *v)
void mj_kdl::add_trace_segment (Viewer *v, const KDL::Vector &a, const KDL::Vector &b, const float rgba[4]=nullptr)
void mj_kdl::cleanup (Robot *r)
void mj_kdl::cleanup (Env *env)
void mj_kdl::cleanup (Viewer *v)
bool mj_kdl::init_video_recorder (VideoRecorder *vr, mjModel *model, const char *out_path, int width=1280, int height=720, int fps=60)
bool mj_kdl::init_video_recorder (VideoRecorder *vr, mjModel *model, const char *out_path, VideoResolution resolution, int fps=60)
bool mj_kdl::record_frame (VideoRecorder *vr, mjModel *model, mjData *data)
void mj_kdl::cleanup (VideoRecorder *vr)
bool mj_kdl::step (Robot *s)
bool mj_kdl::step_n (Robot *s, int n)
bool mj_kdl::step (Viewer *v, mjModel *m, mjData *d)
bool mj_kdl::is_running (const Viewer *v)
bool mj_kdl::render (Viewer *v, const Robot *r)
bool mj_kdl::render (Viewer *v, mjModel *m, mjData *d)
void mj_kdl::update (Robot *r)
void mj_kdl::set_joint_pos (Robot *r, const KDL::JntArray &q, bool call_forward=true)
void mj_kdl::set_body_pose (mjModel *model, mjData *data, const char *body_name, const double pos[3], const double *quat=nullptr)
bool mj_kdl::scene_add_object (mjModel **model, mjData **data, SceneSpec *spec, const SceneObject &obj)
bool mj_kdl::scene_add_object (Env *env, const SceneObject &obj)
bool mj_kdl::scene_remove_object (mjModel **model, mjData **data, SceneSpec *spec, const std::string &name)
bool mj_kdl::scene_remove_object (Env *env, const std::string &name)
std::string mj_kdl::scene_object_site_name (const SceneObject &obj, const char *site_name)
bool mj_kdl::get_site_frame (const mjModel *model, mjData *data, const char *site_name, KDL::Frame *out)
bool mj_kdl::get_body_frame (const mjModel *model, mjData *data, const char *body_name, KDL::Frame *out)
bool mj_kdl::get_joint_position (const mjModel *model, mjData *data, const char *name, double *out)
std::vector< std::string > mj_kdl::get_camera_names (const mjModel *model)
bool mj_kdl::use_camera (Viewer *v, const mjModel *model, const char *name)
void mj_kdl::set_free_camera (Viewer *v, double distance, double azimuth, double elevation, const std::array< double, 3 > &lookat)
bool mj_kdl::use_camera (VideoRecorder *vr, const mjModel *model, const char *name)
void mj_kdl::add_skybox_to_spec (mjSpec *spec)
void mj_kdl::add_floor_to_spec (mjSpec *spec)
void mj_kdl::add_objects_to_spec (mjSpec *spec, const std::vector< SceneObject > &objects)
bool mj_kdl::compile_and_make_data (mjSpec *spec, mjModel **out_model, mjData **out_data)
void mj_kdl::ensure_plugins_loaded ()

Variables

LogLevel mj_kdl::g_log_level = LogLevel::ERROR

Macro Definition Documentation

◆ LOG_ERROR

#define LOG_ERROR ( expr)
Value:
MJ_LOG_(ERROR, "\033[31m", "ERROR", expr)
#define MJ_LOG_(lvl_enum, color, label, expr)

Definition at line 74 of file mj_kdl_wrapper.hpp.

◆ LOG_INFO

#define LOG_INFO ( expr)
Value:
MJ_LOG_(INFO, "", "INFO ", expr)

Definition at line 72 of file mj_kdl_wrapper.hpp.

◆ LOG_WARN

#define LOG_WARN ( expr)
Value:
MJ_LOG_(WARN, "\033[33m", "WARN ", expr)

Definition at line 73 of file mj_kdl_wrapper.hpp.

◆ MJ_FILENAME_

#define MJ_FILENAME_   (::strrchr(__FILE__, '/') ? ::strrchr(__FILE__, '/') + 1 : __FILE__)

Definition at line 54 of file mj_kdl_wrapper.hpp.

◆ MJ_LOG_

#define MJ_LOG_ ( lvl_enum,
color,
label,
expr )
Value:
do { \
if (::mj_kdl::g_log_level >= ::mj_kdl::LogLevel::lvl_enum) { \
std::ostringstream _mj_oss; \
_mj_oss << expr; /* NOLINT(bugprone-macro-parentheses) */ \
std::fprintf( \
stderr, \
color "[mj_kdl " label "] %s:%d (%s): %s\033[0m\n", \
__LINE__, \
__func__, \
_mj_oss.str().c_str() \
); \
} \
} while (0)
LogLevel g_log_level
#define MJ_FILENAME_

Definition at line 56 of file mj_kdl_wrapper.hpp.