Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Visualization tools for ApplyForceTorque #2051

Merged
merged 35 commits into from
Aug 23, 2023
Merged
Show file tree
Hide file tree
Changes from 30 commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
89c5b9c
Create ApplyForceTorque GUI
Henrique-BO Jun 4, 2023
15746ef
Apply forces using the apply_link_wrench system
Henrique-BO Jun 5, 2023
992a6f5
Add the ability to select the link of wrench application
Henrique-BO Jun 6, 2023
2c69d18
Clean up ApplyForceTorque and improve debug messages
Henrique-BO Jun 7, 2023
5d63bdf
Merge branch 'gazebosim:gz-sim7' into apply_force_torque
Henrique-BO Jun 13, 2023
5af8dfc
Merge branch 'gazebosim:gz-sim7' into apply_force_torque
Henrique-BO Jun 14, 2023
2364fc9
Fix codecheck
Henrique-BO Jun 14, 2023
17693a0
Merge branch 'gazebosim:gz-sim7' into apply_force_torque
Henrique-BO Jun 30, 2023
6fbbfc0
Remove force offset from interface and store only the selected entity
Henrique-BO Jun 30, 2023
814d501
Merge branch 'gazebosim:gz-sim7' into apply_force_torque
Henrique-BO Jul 11, 2023
7450833
Merge branch 'gazebosim:gz-sim7' into apply_force_torque
Henrique-BO Jul 14, 2023
ca1c904
Apply force to COM and minor changes
Henrique-BO Jul 14, 2023
de6000b
Merge branch 'gazebosim:gz-sim7' into apply_force_torque
Henrique-BO Jul 17, 2023
4243567
Wrench specified in link-fixed frame
Henrique-BO Jul 17, 2023
12f6fbe
Merge branch 'gazebosim:gz-sim7' into apply_force_torque
Henrique-BO Jul 19, 2023
3f08e6d
Merge branch 'gazebosim:gz-sim7' into apply_force_torque
Henrique-BO Jul 24, 2023
3911d73
Automatically load ApplyLinkWrench and minor fixes
Henrique-BO Jul 26, 2023
cc162ca
Add force and torque visual indicators
Henrique-BO Jul 26, 2023
10f6873
Merge branch 'gz-sim7' into apply_force_torque_vis
Henrique-BO Jul 27, 2023
5b31c43
Add GizmoVisual to rotate force vector
Henrique-BO Jul 28, 2023
86be94c
Enable selecting vector for rotation
Henrique-BO Jul 28, 2023
bfbb1bd
New WrenchVisualizer class and fix rotation tool bugs
Henrique-BO Aug 3, 2023
7a12d22
Merge branch 'gazebosim:gz-sim7' into apply_force_torque_vis
Henrique-BO Aug 3, 2023
d9e7b7a
Fixed rotation tool behavior
Henrique-BO Aug 3, 2023
bcac463
Merge branch 'apply_force_torque_vis' of github.com:Henrique-BO/gz-si…
Henrique-BO Aug 3, 2023
b0890b7
Merge branch 'gazebosim:gz-sim7' into apply_force_torque_vis
Henrique-BO Aug 7, 2023
ad8911e
Merge branch 'gazebosim:gz-sim7' into apply_force_torque_vis
Henrique-BO Aug 10, 2023
c5f5cb6
Merge branch 'gazebosim:gz-sim7' into apply_force_torque_vis
Henrique-BO Aug 16, 2023
b5cafc3
Minor changes
Henrique-BO Aug 16, 2023
f3ee0d6
Merge branch 'gazebosim:gz-sim7' into apply_force_torque_vis
Henrique-BO Aug 17, 2023
8f31b53
Merge branch 'gazebosim:gz-sim7' into apply_force_torque_vis
Henrique-BO Aug 21, 2023
d6afb10
Use SensorCount instead of NodeCount
Henrique-BO Aug 21, 2023
9561e68
Merge branch 'gazebosim:gz-sim7' into apply_force_torque_vis
Henrique-BO Aug 21, 2023
2a2bf8f
Merge branch 'gazebosim:gz-sim7' into apply_force_torque_vis
Henrique-BO Aug 22, 2023
419b34f
Update ApplyForceTorque interface
Henrique-BO Aug 22, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 85 additions & 0 deletions include/gz/sim/rendering/WrenchVisualizer.hh
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
/*
* Copyright (C) 2023 Open Source Robotics Foundation
*
* 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.
*
*/
#ifndef GZ_SIM_WRENCHVISUALIZER_HH_
#define GZ_SIM_WRENCHVISUALIZER_HH_

#include <memory>

#include <gz/sim/config.hh>
#include <gz/sim/rendering/Export.hh>
#include <gz/utils/ImplPtr.hh>

#include <gz/math/Vector3.hh>
#include <gz/rendering/RenderTypes.hh>

namespace gz
{
namespace sim
{
// Inline bracket to help doxygen filtering.
inline namespace GZ_SIM_VERSION_NAMESPACE
{
namespace detail
{
/// \brief Creates, deletes, and maintains force and torque visuals
class GZ_SIM_RENDERING_VISIBLE WrenchVisualizer
{
/// \brief Constructor
public: WrenchVisualizer();

/// \brief Destructor
public: ~WrenchVisualizer();

/// \brief Initialize the Wrench visualizer
/// \param[in] _scene The rendering scene where the visuals are created
/// \return True if the scene is valid
bool Init(rendering::ScenePtr _scene);

/// \brief Create a new force visual
/// \param[in] _material The material used for the visual
/// \return Pointer to the created ArrowVisual
public: rendering::ArrowVisualPtr CreateForceVisual(
rendering::MaterialPtr _material);

/// \brief Create a new torque visual
/// \param[in] _material The material used for the visual
/// \return Pointer to the created Visual
public: rendering::VisualPtr CreateTorqueVisual(
rendering::MaterialPtr _material);

/// \brief Update the visual of a vector to match its direction and position
/// \param[in] _visual Pointer to the vector visual to be updated
/// \param[in] _direction Direction of the vector
/// \param[in] _position Position of the arrow
/// \param[in] _size Size of the arrow in meters
/// \param[in] _tip True if _position specifies the tip of the vector,
/// false if it specifies tha base of the vector
public: void UpdateVectorVisual(rendering::VisualPtr _visual,
const math::Vector3d &_direction,
const math::Vector3d &_position,
const double _size,
const bool _tip = false);

/// \internal
/// \brief Private data pointer
GZ_UTILS_UNIQUE_IMPL_PTR(dataPtr)
};
}
}
}
}
#endif
Loading