| config.h | | config.h | |
| | | | |
| skipping to change at line 39 | | skipping to change at line 39 | |
| #else | | #else | |
| #define OPENRAVE_API OPENRAVE_HELPER_DLL_IMPORT | | #define OPENRAVE_API OPENRAVE_HELPER_DLL_IMPORT | |
| #endif // OPENRAVE_DLL_EXPORTS | | #endif // OPENRAVE_DLL_EXPORTS | |
| #define OPENRAVE_LOCAL OPENRAVE_HELPER_DLL_LOCAL | | #define OPENRAVE_LOCAL OPENRAVE_HELPER_DLL_LOCAL | |
| #else // OPENRAVE_DLL is not defined: this means OpenRAVE is a static lib. | | #else // OPENRAVE_DLL is not defined: this means OpenRAVE is a static lib. | |
| #define OPENRAVE_API | | #define OPENRAVE_API | |
| #define OPENRAVE_LOCAL | | #define OPENRAVE_LOCAL | |
| #endif // OPENRAVE_DLL | | #endif // OPENRAVE_DLL | |
| | | | |
| #define OPENRAVE_VERSION_MAJOR 0 | | #define OPENRAVE_VERSION_MAJOR 0 | |
|
| #define OPENRAVE_VERSION_MINOR 5 | | #define OPENRAVE_VERSION_MINOR 6 | |
| #define OPENRAVE_VERSION_PATCH 0 | | #define OPENRAVE_VERSION_PATCH 0 | |
| #define OPENRAVE_VERSION_COMBINED(major, minor, patch) (((major) << 16) | (
(minor) << 8) | (patch)) | | #define OPENRAVE_VERSION_COMBINED(major, minor, patch) (((major) << 16) | (
(minor) << 8) | (patch)) | |
| #define OPENRAVE_VERSION OPENRAVE_VERSION_COMBINED(OPENRAVE_VERSION_MAJOR,
OPENRAVE_VERSION_MINOR, OPENRAVE_VERSION_PATCH) | | #define OPENRAVE_VERSION OPENRAVE_VERSION_COMBINED(OPENRAVE_VERSION_MAJOR,
OPENRAVE_VERSION_MINOR, OPENRAVE_VERSION_PATCH) | |
| #define OPENRAVE_VERSION_EXTRACT_MAJOR(version) (((version)>>16)&0xff) | | #define OPENRAVE_VERSION_EXTRACT_MAJOR(version) (((version)>>16)&0xff) | |
| #define OPENRAVE_VERSION_EXTRACT_MINOR(version) (((version)>>8)&0xff) | | #define OPENRAVE_VERSION_EXTRACT_MINOR(version) (((version)>>8)&0xff) | |
| #define OPENRAVE_VERSION_EXTRACT_PATCH(version) (((version))&0xff) | | #define OPENRAVE_VERSION_EXTRACT_PATCH(version) (((version))&0xff) | |
|
| #define OPENRAVE_VERSION_STRING "0.5.0" | | #define OPENRAVE_VERSION_STRING "0.6.0" | |
| #define OPENRAVE_VERSION_STRING_FORMAT(version) boost::str(boost::format("%
s.%s.%s")%(OPENRAVE_VERSION_EXTRACT_MAJOR(version))%(OPENRAVE_VERSION_EXTRA
CT_MINOR(version))%(OPENRAVE_VERSION_EXTRACT_PATCH(version))) | | #define OPENRAVE_VERSION_STRING_FORMAT(version) boost::str(boost::format("%
s.%s.%s")%(OPENRAVE_VERSION_EXTRACT_MAJOR(version))%(OPENRAVE_VERSION_EXTRA
CT_MINOR(version))%(OPENRAVE_VERSION_EXTRACT_PATCH(version))) | |
| | | | |
| #define OPENRAVE_VERSION_GE(major1, minor1, patch1, major2, minor2, patch2)
(OPENRAVE_VERSION_COMBINED(major1, minor1, patch1) >= OPENRAVE_VERSION_COM
BINED(major2, minor2, patch2)) | | #define OPENRAVE_VERSION_GE(major1, minor1, patch1, major2, minor2, patch2)
(OPENRAVE_VERSION_COMBINED(major1, minor1, patch1) >= OPENRAVE_VERSION_COM
BINED(major2, minor2, patch2)) | |
| #define OPENRAVE_VERSION_MINIMUM(major, minor, patch) OPENRAVE_VERSION_GE(O
PENRAVE_VERSION_MAJOR, OPENRAVE_VERSION_MINOR, OPENRAVE_VERSION_PATCH, majo
r, minor, patch) | | #define OPENRAVE_VERSION_MINIMUM(major, minor, patch) OPENRAVE_VERSION_GE(O
PENRAVE_VERSION_MAJOR, OPENRAVE_VERSION_MINOR, OPENRAVE_VERSION_PATCH, majo
r, minor, patch) | |
| | | | |
| // if 0, single precision | | // if 0, single precision | |
| // if 1, double precision | | // if 1, double precision | |
| #define OPENRAVE_PRECISION 1 | | #define OPENRAVE_PRECISION 1 | |
| | | | |
|
| #define OPENRAVE_PLUGINS_INSTALL_DIR "/home/andrey/upstream-tracker/testing | | #define OPENRAVE_PLUGINS_INSTALL_DIR "/home/andrey/upstream-tracker/testing | |
| /openrave/0.5.0/share/openrave-0.5/plugins" | | /openrave/0.6.0/share/openrave-0.6/plugins" | |
| #define OPENRAVE_DATA_INSTALL_DIR "/home/andrey/upstream-tracker/testing/op | | #define OPENRAVE_DATA_INSTALL_DIR "/home/andrey/upstream-tracker/testing/op | |
| enrave/0.5.0/share/openrave-0.5" | | enrave/0.6.0/share/openrave-0.6" | |
| #define OPENRAVE_PYTHON_INSTALL_DIR "/home/andrey/upstream-tracker/testing/ | | #define OPENRAVE_PYTHON_INSTALL_DIR "/home/andrey/upstream-tracker/testing/ | |
| openrave/0.5.0/lib/python2.7/site-packages" | | openrave/0.6.0/lib/python2.7/site-packages" | |
| | | | |
| #endif | | #endif | |
| | | | |
End of changes. 3 change blocks. |
| 8 lines changed or deleted | | 8 lines changed or added | |
|
| environment.h | | environment.h | |
| | | | |
| skipping to change at line 378 | | skipping to change at line 378 | |
| /// \return first Robot that matches the name | | /// \return first Robot that matches the name | |
| virtual RobotBasePtr GetRobot(const std::string& name) const =0; | | virtual RobotBasePtr GetRobot(const std::string& name) const =0; | |
| | | | |
| /// \brief Get all bodies loaded in the environment (including robots).
<b>[multi-thread safe]</b> | | /// \brief Get all bodies loaded in the environment (including robots).
<b>[multi-thread safe]</b> | |
| /// \param[out] bodies filled with all the bodies | | /// \param[out] bodies filled with all the bodies | |
| virtual void GetBodies(std::vector<KinBodyPtr>& bodies) const = 0; | | virtual void GetBodies(std::vector<KinBodyPtr>& bodies) const = 0; | |
| | | | |
| /// \brief Fill an array with all robots loaded in the environment. <b>
[multi-thread safe]</b> | | /// \brief Fill an array with all robots loaded in the environment. <b>
[multi-thread safe]</b> | |
| virtual void GetRobots(std::vector<RobotBasePtr>& robots) const = 0; | | virtual void GetRobots(std::vector<RobotBasePtr>& robots) const = 0; | |
| | | | |
|
| /// \brief adds a viewer to the environment | | | |
| /// | | | |
| /// \throw openrave_exception Throw if body is invalid or already added | | | |
| virtual void AddViewer(ViewerBasePtr pviewer) = 0; | | | |
| | | | |
| /// \deprecated (11/06/13) see AddViewer | | | |
| virtual bool AttachViewer(ViewerBasePtr pnewviewer) RAVE_DEPRECATED { | | | |
| AddViewer(pnewviewer); return true; | | | |
| } | | | |
| | | | |
| /// \brief Return a viewer with a particular name. | | | |
| /// | | | |
| /// When no name is specified, the first loaded viewer is returned. | | | |
| virtual ViewerBasePtr GetViewer(const std::string& name="") const = 0; | | | |
| | | | |
| /// \brief Returns a list of loaded viewers with a pointer to a lock pr | | | |
| eventing the list from being modified. | | | |
| /// | | | |
| /// As long as the lock is held, the problems are guaranteed to stay lo | | | |
| aded in the environment. | | | |
| /// \return returns a pointer to a Lock. Destroying the shared_ptr will | | | |
| release the lock | | | |
| virtual boost::shared_ptr<boost::mutex::scoped_lock> GetViewers(std::li | | | |
| st<ViewerBasePtr>& listViewers) const = 0; | | | |
| | | | |
| /// \brief Retrieve published bodies, completes even if environment is
locked. <b>[multi-thread safe]</b> | | /// \brief Retrieve published bodies, completes even if environment is
locked. <b>[multi-thread safe]</b> | |
| /// | | /// | |
| /// Note that the pbody pointer might become invalid as soon as GetPubl
ishedBodies returns. | | /// Note that the pbody pointer might become invalid as soon as GetPubl
ishedBodies returns. | |
| virtual void GetPublishedBodies(std::vector<KinBody::BodyState>& vbodie
s) = 0; | | virtual void GetPublishedBodies(std::vector<KinBody::BodyState>& vbodie
s) = 0; | |
| | | | |
| /// updates the published bodies that viewers and other programs listen
ing in on the environment see. | | /// updates the published bodies that viewers and other programs listen
ing in on the environment see. | |
| /// For example, calling this function inside a planning loop allows th
e viewer to update the environment | | /// For example, calling this function inside a planning loop allows th
e viewer to update the environment | |
| /// reflecting the status of the planner. | | /// reflecting the status of the planner. | |
| /// Assumes that the physics are locked. | | /// Assumes that the physics are locked. | |
| virtual void UpdatePublishedBodies() = 0; | | virtual void UpdatePublishedBodies() = 0; | |
| | | | |
| skipping to change at line 432 | | skipping to change at line 411 | |
| /// \param[out] trimesh - The output triangle mesh. The new triangles a
re appended to the existing triangles! | | /// \param[out] trimesh - The output triangle mesh. The new triangles a
re appended to the existing triangles! | |
| /// \param[in] options - Controlls what to triangulate. | | /// \param[in] options - Controlls what to triangulate. | |
| /// \param[in] selectname - name of the body used in options | | /// \param[in] selectname - name of the body used in options | |
| /// \throw openrave_exception Throw if failed to add anything | | /// \throw openrave_exception Throw if failed to add anything | |
| virtual void TriangulateScene(KinBody::Link::TRIMESH& trimesh, Selectio
nOptions options, const std::string& selectname) = 0; | | virtual void TriangulateScene(KinBody::Link::TRIMESH& trimesh, Selectio
nOptions options, const std::string& selectname) = 0; | |
| //@} | | //@} | |
| | | | |
| /// \brief Load a new module, need to Lock if calling outside simulatio
n thread | | /// \brief Load a new module, need to Lock if calling outside simulatio
n thread | |
| virtual int AddModule(ModuleBasePtr module, const std::string& cmdargs)
= 0; | | virtual int AddModule(ModuleBasePtr module, const std::string& cmdargs)
= 0; | |
| | | | |
|
| virtual int LoadProblem(ModuleBasePtr module, const std::string& cmdarg | | /// \deprecated (12/01/30) see \ref EnvironmentBase::AddModule | |
| s) { | | virtual int LoadProblem(ModuleBasePtr module, const std::string& cmdarg | |
| | | s) RAVE_DEPRECATED { | |
| return AddModule(module,cmdargs); | | return AddModule(module,cmdargs); | |
| } | | } | |
| | | | |
| /// \deprecated (10/09/15) see \ref EnvironmentBase::Remove | | /// \deprecated (10/09/15) see \ref EnvironmentBase::Remove | |
| virtual bool RemoveProblem(ModuleBasePtr prob) RAVE_DEPRECATED = 0; | | virtual bool RemoveProblem(ModuleBasePtr prob) RAVE_DEPRECATED = 0; | |
| | | | |
| /// \brief Returns a list of loaded problems with a pointer to a lock p
reventing the list from being modified. | | /// \brief Returns a list of loaded problems with a pointer to a lock p
reventing the list from being modified. | |
| /// | | /// | |
| /// As long as the lock is held, the problems are guaranteed to stay lo
aded in the environment. | | /// As long as the lock is held, the problems are guaranteed to stay lo
aded in the environment. | |
| /// \return returns a pointer to a Lock. Destroying the shared_ptr will
release the lock | | /// \return returns a pointer to a Lock. Destroying the shared_ptr will
release the lock | |
| | | | |
| skipping to change at line 463 | | skipping to change at line 443 | |
| /// is locked, the user is guaranteed that nnothing will change in the
environment. | | /// is locked, the user is guaranteed that nnothing will change in the
environment. | |
| virtual EnvironmentMutex& GetMutex() const = 0; | | virtual EnvironmentMutex& GetMutex() const = 0; | |
| | | | |
| /// \name 3D plotting methods. | | /// \name 3D plotting methods. | |
| /// \anchor env_plotting | | /// \anchor env_plotting | |
| //@{ | | //@{ | |
| | | | |
| /// \deprecated (10/11/05) | | /// \deprecated (10/11/05) | |
| typedef OpenRAVE::GraphHandlePtr GraphHandlePtr RAVE_DEPRECATED; | | typedef OpenRAVE::GraphHandlePtr GraphHandlePtr RAVE_DEPRECATED; | |
| | | | |
|
| | | /// \brief adds a viewer to the environment | |
| | | /// | |
| | | /// \throw openrave_exception Throw if body is invalid or already added | |
| | | virtual void AddViewer(ViewerBasePtr pviewer) = 0; | |
| | | | |
| | | /// \deprecated (11/06/13) see AddViewer | |
| | | virtual bool AttachViewer(ViewerBasePtr pnewviewer) RAVE_DEPRECATED { | |
| | | AddViewer(pnewviewer); return true; | |
| | | } | |
| | | | |
| | | /// \brief Return a viewer with a particular name. | |
| | | /// | |
| | | /// When no name is specified, the first loaded viewer is returned. | |
| | | virtual ViewerBasePtr GetViewer(const std::string& name="") const = 0; | |
| | | | |
| | | /// \brief Returns a list of loaded viewers with a pointer to a lock pr | |
| | | eventing the list from being modified. | |
| | | /// | |
| | | /// As long as the lock is held, the problems are guaranteed to stay lo | |
| | | aded in the environment. | |
| | | /// \return returns a pointer to a Lock. Destroying the shared_ptr will | |
| | | release the lock | |
| | | virtual boost::shared_ptr<boost::mutex::scoped_lock> GetViewers(std::li | |
| | | st<ViewerBasePtr>& listViewers) const = 0; | |
| | | | |
| /// \brief Plot a point cloud with one color. <b>[multi-thread safe]</b
> | | /// \brief Plot a point cloud with one color. <b>[multi-thread safe]</b
> | |
| /// | | /// | |
| /// \param ppoints array of points | | /// \param ppoints array of points | |
| /// \param numPoints number of points to plot | | /// \param numPoints number of points to plot | |
| /// \param stride stride in bytes to next point, ie: nextpoint = (float
*)((char*)ppoints+stride) | | /// \param stride stride in bytes to next point, ie: nextpoint = (float
*)((char*)ppoints+stride) | |
| /// \param fPointSize size of a point in pixels | | /// \param fPointSize size of a point in pixels | |
| /// \param color the rgb color of the point. The last component of the
color is used for alpha blending | | /// \param color the rgb color of the point. The last component of the
color is used for alpha blending | |
| /// \param drawstyle if 0 will draw pixels. if 1, will draw 3D spheres | | /// \param drawstyle if 0 will draw pixels. if 1, will draw 3D spheres | |
| /// \return handle to plotted points, graph is removed when handle is d
estroyed (goes out of scope). This requires the user to always store the ha
ndle in a persistent variable if the plotted graphics are to remain on the
viewer. | | /// \return handle to plotted points, graph is removed when handle is d
estroyed (goes out of scope). This requires the user to always store the ha
ndle in a persistent variable if the plotted graphics are to remain on the
viewer. | |
| virtual OpenRAVE::GraphHandlePtr plot3(const float* ppoints, int numPoi
nts, int stride, float fPointSize, const RaveVector<float>& color = RaveVec
tor<float>(1,0.5,0.5,1), int drawstyle = 0) = 0; | | virtual OpenRAVE::GraphHandlePtr plot3(const float* ppoints, int numPoi
nts, int stride, float fPointSize, const RaveVector<float>& color = RaveVec
tor<float>(1,0.5,0.5,1), int drawstyle = 0) = 0; | |
| | | | |
End of changes. 3 change blocks. |
| 27 lines changed or deleted | | 28 lines changed or added | |
|
| kinbody.h | | kinbody.h | |
| | | | |
| skipping to change at line 629 | | skipping to change at line 629 | |
| virtual void GetTorqueLimits(std::vector<dReal>& vmax, bool bAppend
=false) const; | | virtual void GetTorqueLimits(std::vector<dReal>& vmax, bool bAppend
=false) const; | |
| | | | |
| /// \brief \see GetTorqueLimits | | /// \brief \see GetTorqueLimits | |
| virtual void SetTorqueLimits(const std::vector<dReal>& vmax); | | virtual void SetTorqueLimits(const std::vector<dReal>& vmax); | |
| | | | |
| /// \brief The weight associated with a joint's axis for computing
a distance in the robot configuration space. | | /// \brief The weight associated with a joint's axis for computing
a distance in the robot configuration space. | |
| virtual dReal GetWeight(int axis=0) const; | | virtual dReal GetWeight(int axis=0) const; | |
| /// \brief \see GetWeight | | /// \brief \see GetWeight | |
| virtual void SetWeights(const std::vector<dReal>& weights); | | virtual void SetWeights(const std::vector<dReal>& weights); | |
| | | | |
|
| | | /// \brief Computes the configuration difference values1-values2 an | |
| | | d stores it in values1. | |
| | | /// | |
| | | /// Takes into account joint limits and wrapping of circular joints | |
| | | . | |
| | | virtual void SubtractValues(std::vector<dReal>& values1, const std: | |
| | | :vector<dReal>& values2) const; | |
| | | | |
| /// \brief Return internal offset parameter that determines the bra
nch the angle centers on | | /// \brief Return internal offset parameter that determines the bra
nch the angle centers on | |
| /// | | /// | |
| /// Wrap offsets are needed for rotation joints since the range is
limited to 2*pi. | | /// Wrap offsets are needed for rotation joints since the range is
limited to 2*pi. | |
| /// This allows the wrap offset to be set so the joint can function
in [-pi+offset,pi+offset].. | | /// This allows the wrap offset to be set so the joint can function
in [-pi+offset,pi+offset].. | |
| /// \param iaxis the axis to get the offset from | | /// \param iaxis the axis to get the offset from | |
| inline dReal GetWrapOffset(int iaxis=0) const { | | inline dReal GetWrapOffset(int iaxis=0) const { | |
| return _voffsets.at(iaxis); | | return _voffsets.at(iaxis); | |
| } | | } | |
| | | | |
| inline dReal GetOffset(int iaxis=0) const RAVE_DEPRECATED { | | inline dReal GetOffset(int iaxis=0) const RAVE_DEPRECATED { | |
| | | | |
| skipping to change at line 1163 | | skipping to change at line 1168 | |
| /** \brief Sets the velocity of the base link and each of the joints. | | /** \brief Sets the velocity of the base link and each of the joints. | |
| | | | |
| Computes internally what the correponding velocities of each of the
links should be in order to | | Computes internally what the correponding velocities of each of the
links should be in order to | |
| achieve consistent results with the joint velocities. Sends the vel
ocities to the physics engine. | | achieve consistent results with the joint velocities. Sends the vel
ocities to the physics engine. | |
| Velocities correspond to the link's coordinate system origin. | | Velocities correspond to the link's coordinate system origin. | |
| \param[in] linearvel linear velocity of base link | | \param[in] linearvel linear velocity of base link | |
| \param[in] angularvel angular velocity rotation_axis*theta_dot | | \param[in] angularvel angular velocity rotation_axis*theta_dot | |
| \param[in] vDOFVelocities - velocities of each of the degrees of fr
eeom | | \param[in] vDOFVelocities - velocities of each of the degrees of fr
eeom | |
| \param checklimits if true, will excplicitly check the joint veloci
ty limits before setting the values. | | \param checklimits if true, will excplicitly check the joint veloci
ty limits before setting the values. | |
| */ | | */ | |
|
| virtual void SetDOFVelocities(const std::vector<dReal>& vDOFVelocities,
const Vector& linearvel, const Vector& angularvel,bool checklimits = false
); | | virtual void SetDOFVelocities(const std::vector<dReal>& vDOFVelocities,
const Vector& linearvel, const Vector& angularvel,bool checklimits = true)
; | |
| | | | |
| /// \brief Sets the velocity of the joints. | | /// \brief Sets the velocity of the joints. | |
| /// | | /// | |
| /// Copies the current velocity of the base link and calls SetDOFVeloci
ties(linearvel,angularvel,vDOFVelocities) | | /// Copies the current velocity of the base link and calls SetDOFVeloci
ties(linearvel,angularvel,vDOFVelocities) | |
| /// \param[in] vDOFVelocity - velocities of each of the degrees of free
om | | /// \param[in] vDOFVelocity - velocities of each of the degrees of free
om | |
| /// \praam checklimits if true, will excplicitly check the joint veloci
ty limits before setting the values. | | /// \praam checklimits if true, will excplicitly check the joint veloci
ty limits before setting the values. | |
|
| virtual void SetDOFVelocities(const std::vector<dReal>& vDOFVelocities,
bool checklimits = false); | | virtual void SetDOFVelocities(const std::vector<dReal>& vDOFVelocities,
bool checklimits = true); | |
| | | | |
| /// \brief Returns the linear and angular velocities for each link | | /// \brief Returns the linear and angular velocities for each link | |
| virtual void GetLinkVelocities(std::vector<std::pair<Vector,Vector> >&
velocities) const; | | virtual void GetLinkVelocities(std::vector<std::pair<Vector,Vector> >&
velocities) const; | |
| | | | |
| /** \en \brief set the transform of the first link (the rest of the lin
ks are computed based on the joint values). | | /** \en \brief set the transform of the first link (the rest of the lin
ks are computed based on the joint values). | |
| | | | |
| \param transform affine transformation | | \param transform affine transformation | |
| | | | |
| \ja \brief 胴体の絶対姿勢を設定、残りのリンクは
動学の構造に従って変換される. | | \ja \brief 胴体の絶対姿勢を設定、残りのリンクは
動学の構造に従って変換される. | |
| | | | |
| | | | |
| skipping to change at line 1214 | | skipping to change at line 1219 | |
| /// \return true if changed | | /// \return true if changed | |
| virtual bool SetVisible(bool visible); | | virtual bool SetVisible(bool visible); | |
| | | | |
| /// \return true if any link of the KinBody is visible. | | /// \return true if any link of the KinBody is visible. | |
| virtual bool IsVisible() const; | | virtual bool IsVisible() const; | |
| | | | |
| /// \brief Sets the joint values of the robot. | | /// \brief Sets the joint values of the robot. | |
| /// | | /// | |
| /// \param values the values to set the joint angles (ordered by the do
f indices) | | /// \param values the values to set the joint angles (ordered by the do
f indices) | |
| /// \praam checklimits if true, will excplicitly check the joint limits
before setting the values. | | /// \praam checklimits if true, will excplicitly check the joint limits
before setting the values. | |
|
| virtual void SetDOFValues(const std::vector<dReal>& values, bool checkl
imits = false); | | virtual void SetDOFValues(const std::vector<dReal>& values, bool checkl
imits = true); | |
| | | | |
|
| virtual void SetJointValues(const std::vector<dReal>& values, bool chec
klimits = false) { | | virtual void SetJointValues(const std::vector<dReal>& values, bool chec
klimits = true) { | |
| SetDOFValues(values,checklimits); | | SetDOFValues(values,checklimits); | |
| } | | } | |
| | | | |
| /// \brief Sets the joint values and transformation of the body. | | /// \brief Sets the joint values and transformation of the body. | |
| /// | | /// | |
| /// \param values the values to set the joint angles (ordered by the do
f indices) | | /// \param values the values to set the joint angles (ordered by the do
f indices) | |
| /// \param transform represents the transformation of the first body. | | /// \param transform represents the transformation of the first body. | |
| /// \praam checklimits if true, will excplicitly check the joint limits
before setting the values. | | /// \praam checklimits if true, will excplicitly check the joint limits
before setting the values. | |
|
| virtual void SetDOFValues(const std::vector<dReal>& values, const Trans
form& transform, bool checklimits = false); | | virtual void SetDOFValues(const std::vector<dReal>& values, const Trans
form& transform, bool checklimits = true); | |
| | | | |
|
| virtual void SetJointValues(const std::vector<dReal>& values, const Tra
nsform& transform, bool checklimits = false) | | virtual void SetJointValues(const std::vector<dReal>& values, const Tra
nsform& transform, bool checklimits = true) | |
| { | | { | |
| SetDOFValues(values,transform,checklimits); | | SetDOFValues(values,transform,checklimits); | |
| } | | } | |
| | | | |
| /// \brief sets the transformations of all the links at once | | /// \brief sets the transformations of all the links at once | |
| virtual void SetLinkTransformations(const std::vector<Transform>& trans
forms); | | virtual void SetLinkTransformations(const std::vector<Transform>& trans
forms); | |
| | | | |
| /// \brief sets the transformations of all the links and dof branches a
t once. | | /// \brief sets the transformations of all the links and dof branches a
t once. | |
| /// | | /// | |
| /// Using dof branches allows the full joint state to be recovered | | /// Using dof branches allows the full joint state to be recovered | |
| | | | |
| skipping to change at line 1400 | | skipping to change at line 1405 | |
| virtual const ConfigurationSpecification& GetConfigurationSpecification
() const; | | virtual const ConfigurationSpecification& GetConfigurationSpecification
() const; | |
| | | | |
| /// \brief return the configuration specification of the specified join
t indices. | | /// \brief return the configuration specification of the specified join
t indices. | |
| /// | | /// | |
| /// Note that the return type is by-value, so should not be used in ite
ration | | /// Note that the return type is by-value, so should not be used in ite
ration | |
| virtual ConfigurationSpecification GetConfigurationSpecificationIndices
(const std::vector<int>& indices) const; | | virtual ConfigurationSpecification GetConfigurationSpecificationIndices
(const std::vector<int>& indices) const; | |
| | | | |
| /// \brief sets joint values and transform of the body using configurat
ion values as specified by \ref GetConfigurationSpecification() | | /// \brief sets joint values and transform of the body using configurat
ion values as specified by \ref GetConfigurationSpecification() | |
| /// | | /// | |
| /// \param itvalues the iterator to the vector containing the dof value
s. Must have GetConfigurationSpecification().GetDOF() values! | | /// \param itvalues the iterator to the vector containing the dof value
s. Must have GetConfigurationSpecification().GetDOF() values! | |
|
| virtual void SetConfigurationValues(std::vector<dReal>::const_iterator
itvalues, bool checklimits = false); | | virtual void SetConfigurationValues(std::vector<dReal>::const_iterator
itvalues, bool checklimits = true); | |
| | | | |
| /// \brief returns the configuration values as specified by \ref GetCon
figurationSpecification() | | /// \brief returns the configuration values as specified by \ref GetCon
figurationSpecification() | |
| virtual void GetConfigurationValues(std::vector<dReal>& v) const; | | virtual void GetConfigurationValues(std::vector<dReal>& v) const; | |
| | | | |
| //@} | | //@} | |
| | | | |
| protected: | | protected: | |
| /// \brief constructors declared protected so that user always goes thr
ough environment to create bodies | | /// \brief constructors declared protected so that user always goes thr
ough environment to create bodies | |
| KinBody(InterfaceType type, EnvironmentBasePtr penv); | | KinBody(InterfaceType type, EnvironmentBasePtr penv); | |
| inline KinBodyPtr shared_kinbody() { | | inline KinBodyPtr shared_kinbody() { | |
| | | | |
End of changes. 8 change blocks. |
| 7 lines changed or deleted | | 15 lines changed or added | |
|
| openrave.h | | openrave.h | |
| | | | |
| skipping to change at line 890 | | skipping to change at line 890 | |
| BaseXMLReaderPtr _preader; | | BaseXMLReaderPtr _preader; | |
| }; | | }; | |
| | | | |
| virtual ~ConfigurationSpecification() { | | virtual ~ConfigurationSpecification() { | |
| } | | } | |
| | | | |
| /// \brief return the dimension of the configuraiton space (degrees of
freedom) | | /// \brief return the dimension of the configuraiton space (degrees of
freedom) | |
| virtual int GetDOF() const; | | virtual int GetDOF() const; | |
| | | | |
| /// \brief check if the groups form a continguous space | | /// \brief check if the groups form a continguous space | |
|
| | | /// | |
| | | /// If there are two or more groups with the same semantic names, will | |
| | | fail. Theese groups should be merged into one. | |
| virtual bool IsValid() const; | | virtual bool IsValid() const; | |
| | | | |
| virtual bool operator==(const ConfigurationSpecification& r) const; | | virtual bool operator==(const ConfigurationSpecification& r) const; | |
| virtual bool operator!=(const ConfigurationSpecification& r) const; | | virtual bool operator!=(const ConfigurationSpecification& r) const; | |
| | | | |
| /// \brief return the group whose name begins with a particular string. | | /// \brief return the group whose name begins with a particular string. | |
| /// | | /// | |
| /// If multiple groups exist that begin with the same string, then the
shortest one is returned. | | /// If multiple groups exist that begin with the same string, then the
shortest one is returned. | |
| /// \throw openrave_exception if a group is not found | | /// \throw openrave_exception if a group is not found | |
| virtual const Group& GetGroupFromName(const std::string& name) const; | | virtual const Group& GetGroupFromName(const std::string& name) const; | |
| | | | |
| skipping to change at line 942 | | skipping to change at line 944 | |
| For example given a 'joint_values' group, this will return the clos
est 'joint_velocities' group. | | For example given a 'joint_values' group, this will return the clos
est 'joint_velocities' group. | |
| \param name the name of the group to query | | \param name the name of the group to query | |
| \param exactmatch if true, will only return groups whose name exact
ly matches with g.name | | \param exactmatch if true, will only return groups whose name exact
ly matches with g.name | |
| \return an iterator part of _vgroups that represents the most compa
tible group. If no group is found, will return _vgroups.end() | | \return an iterator part of _vgroups that represents the most compa
tible group. If no group is found, will return _vgroups.end() | |
| */ | | */ | |
| virtual std::vector<Group>::const_iterator FindTimeDerivativeGroup(cons
t std::string& name, bool exactmatch=false) const; | | virtual std::vector<Group>::const_iterator FindTimeDerivativeGroup(cons
t std::string& name, bool exactmatch=false) const; | |
| | | | |
| /** \brief adds a velocity group for every position group. | | /** \brief adds a velocity group for every position group. | |
| | | | |
| If velocities groups already exist, they are checked for and/or mod
ified. Note that the configuration space | | If velocities groups already exist, they are checked for and/or mod
ified. Note that the configuration space | |
|
| might be re-ordered as a result of this function call. | | might be re-ordered as a result of this function call. If a new gro | |
| | | up is added, its interpolation will be | |
| | | the derivative of the position group as returned by \ref GetInterpo | |
| | | lationDerivative. | |
| \param adddeltatime If true will add the 'deltatime' tag, which is
necessary for trajectory sampling | | \param adddeltatime If true will add the 'deltatime' tag, which is
necessary for trajectory sampling | |
| */ | | */ | |
| virtual void AddVelocityGroups(bool adddeltatime); | | virtual void AddVelocityGroups(bool adddeltatime); | |
| | | | |
|
| /// \brief converts all the groups to the corresponding velocity groups | | /** \brief converts all the groups to the corresponding velocity groups | |
| and returns the specification | | and returns the specification | |
| /// | | | |
| /// The velocity configuration space will have a one-to-one corresponde | | The velocity configuration space will have a one-to-one corresponde | |
| nce with the | | nce with the original configuration. | |
| | | The interpolation of each of the groups will correspondingly repres | |
| | | ent the derivative as returned by \ref GetInterpolationDerivative. | |
| | | */ | |
| virtual ConfigurationSpecification ConvertToVelocitySpecification() con
st; | | virtual ConfigurationSpecification ConvertToVelocitySpecification() con
st; | |
| | | | |
| /// \brief returns a new specification of just particular time-derivati
ve groups. | | /// \brief returns a new specification of just particular time-derivati
ve groups. | |
| /// | | /// | |
| /// \param timederivative the time derivative to query groups from. 0 i
s positions/joint values, 1 is velocities, 2 is accelerations, etc | | /// \param timederivative the time derivative to query groups from. 0 i
s positions/joint values, 1 is velocities, 2 is accelerations, etc | |
| virtual ConfigurationSpecification GetTimeDerivativeSpecification(int t
imederivative) const; | | virtual ConfigurationSpecification GetTimeDerivativeSpecification(int t
imederivative) const; | |
| | | | |
| /** \brief set the offsets of each group in order to get a contiguous c
onfiguration space | | /** \brief set the offsets of each group in order to get a contiguous c
onfiguration space | |
| */ | | */ | |
| virtual void ResetGroupOffsets(); | | virtual void ResetGroupOffsets(); | |
| | | | |
| /// \brief adds the deltatime tag to the end if one doesn't exist and r
eturns the index into the configuration space | | /// \brief adds the deltatime tag to the end if one doesn't exist and r
eturns the index into the configuration space | |
| virtual int AddDeltaTimeGroup(); | | virtual int AddDeltaTimeGroup(); | |
| | | | |
|
| /// \brief adds a new group to the specification and returns its new of | | /** \brief Adds a new group to the specification and returns its new of | |
| fset. | | fset. | |
| /// | | | |
| /// If the new group's semantic name exists in the current specificatio | | If the new group's semantic name does not exist in the current spec | |
| n and it exactly matches, then succeeds. If the match | | ification, adds it and returns the new offset. | |
| /// isn't exact, then an openrave_exception is throw. | | If the new group's semantic name exists in the current specificatio | |
| | | n and it exactly matches, then function returns the old group's index. If t | |
| | | he semantic names match, but parameters do not match, then an openrave_exce | |
| | | ption is thrown. | |
| | | This method is not responsible for merging semantic information | |
| | | */ | |
| virtual int AddGroup(const std::string& name, int dof, const std::strin
g& interpolation = ""); | | virtual int AddGroup(const std::string& name, int dof, const std::strin
g& interpolation = ""); | |
| | | | |
|
| /// \brief merges all the information from the input group into this gr | | /** \brief Merges all the information from the input group into this gr | |
| oup | | oup | |
| /// | | | |
| /// For groups that are merged, the interpolation method is not changed | | For groups that are merged, the interpolation is overwritten if the | |
| . | | source group has an empty string. | |
| /// \throw openrave_exception throws if groups do not contain enough in | | \throw openrave_exception throws if groups do not contain enough in | |
| formation to be merged | | formation to be merged or interpolations do not match. | |
| | | */ | |
| virtual ConfigurationSpecification& operator+= (const ConfigurationSpec
ification& r); | | virtual ConfigurationSpecification& operator+= (const ConfigurationSpec
ification& r); | |
| | | | |
|
| /// \brief return a new specification that holds the merged information | | /** \brief Return a new specification that holds the merged information | |
| from the current and input specification and the input parameter.. | | from the current and input specification and the input parameter.. | |
| /// | | | |
| /// For groups that are merged, the interpolation method is not changed | | For groups that are merged, the interpolation either has to match f | |
| . | | or both groups, or one of the groups needs an empty interpolation. | |
| /// \throw openrave_exception throws if groups do not contain enough in | | \throw openrave_exception throws if groups do not contain enough in | |
| formation to be merged | | formation to be merged or interpolations do not match. | |
| | | */ | |
| virtual ConfigurationSpecification operator+ (const ConfigurationSpecif
ication& r) const; | | virtual ConfigurationSpecification operator+ (const ConfigurationSpecif
ication& r) const; | |
| | | | |
| /** \brief extracts an affine transform given the start of a configurat
ion space point | | /** \brief extracts an affine transform given the start of a configurat
ion space point | |
| | | | |
| Looks for 'affine_transform' groups. If pbody is not initialized, w
ill choose the first affine_transform found. | | Looks for 'affine_transform' groups. If pbody is not initialized, w
ill choose the first affine_transform found. | |
| \param[inout] t the transform holding the default values, which wil
l be overwritten with the new values. | | \param[inout] t the transform holding the default values, which wil
l be overwritten with the new values. | |
| \param[in] itdata data in the format of this configuration specific
ation. | | \param[in] itdata data in the format of this configuration specific
ation. | |
| \return true if at least one group was found for extracting | | \return true if at least one group was found for extracting | |
| */ | | */ | |
| virtual bool ExtractTransform(Transform& t, std::vector<dReal>::const_i
terator itdata, KinBodyConstPtr pbody) const; | | virtual bool ExtractTransform(Transform& t, std::vector<dReal>::const_i
terator itdata, KinBodyConstPtr pbody) const; | |
| | | | |
| skipping to change at line 1044 | | skipping to change at line 1053 | |
| \return true if at least one group was found for inserting | | \return true if at least one group was found for inserting | |
| */ | | */ | |
| virtual bool InsertJointValues(std::vector<dReal>::iterator itdata, std
::vector<dReal>::const_iterator itvalues, KinBodyConstPtr pbody, const std:
:vector<int>& indices, int timederivative=0) const; | | virtual bool InsertJointValues(std::vector<dReal>::iterator itdata, std
::vector<dReal>::const_iterator itvalues, KinBodyConstPtr pbody, const std:
:vector<int>& indices, int timederivative=0) const; | |
| | | | |
| /** \brief sets the deltatime field of the data if one exists | | /** \brief sets the deltatime field of the data if one exists | |
| | | | |
| \param[inout] itdata data in the format of this configuration speci
fication. | | \param[inout] itdata data in the format of this configuration speci
fication. | |
| \param[in] deltatime the delta time of the time stamp (from previou
s point) | | \param[in] deltatime the delta time of the time stamp (from previou
s point) | |
| \return true if at least one group was found for inserting | | \return true if at least one group was found for inserting | |
| */ | | */ | |
|
| virtual bool InsertDeltaTime(std::vector<dReal>::iterator itdata, dReal
deltatime); | | virtual bool InsertDeltaTime(std::vector<dReal>::iterator itdata, dReal
deltatime) const; | |
| | | | |
| /** \brief given two compatible groups, convers data represented in the
source group to data represented in the target group | | /** \brief given two compatible groups, convers data represented in the
source group to data represented in the target group | |
| | | | |
| \param ittargetdata iterator pointing to start of target group data
that should be overwritten | | \param ittargetdata iterator pointing to start of target group data
that should be overwritten | |
| \param targetstride the number of elements that to go from the next
target point. Necessary if numpoints > 1. | | \param targetstride the number of elements that to go from the next
target point. Necessary if numpoints > 1. | |
| \param gtarget the target configuration group | | \param gtarget the target configuration group | |
| \param itsourcedata iterator pointing to start of source group data
that should be read | | \param itsourcedata iterator pointing to start of source group data
that should be read | |
| \param sourcestride the number of elements that to go from the next
source point. Necessary if numpoints > 1. | | \param sourcestride the number of elements that to go from the next
source point. Necessary if numpoints > 1. | |
| \param gsource the source configuration group | | \param gsource the source configuration group | |
| \param numpoints the number of points to convert. The target and so
urce strides are gtarget.dof and gsource.dof | | \param numpoints the number of points to convert. The target and so
urce strides are gtarget.dof and gsource.dof | |
| | | | |
| skipping to change at line 1073 | | skipping to change at line 1082 | |
| \param ittargetdata iterator pointing to start of target group data
that should be overwritten | | \param ittargetdata iterator pointing to start of target group data
that should be overwritten | |
| \param targetspec the target configuration specification | | \param targetspec the target configuration specification | |
| \param itsourcedata iterator pointing to start of source group data
that should be read | | \param itsourcedata iterator pointing to start of source group data
that should be read | |
| \param sourcespec the source configuration specification | | \param sourcespec the source configuration specification | |
| \param numpoints the number of points to convert. The target and so
urce strides are gtarget.dof and gsource.dof | | \param numpoints the number of points to convert. The target and so
urce strides are gtarget.dof and gsource.dof | |
| \param penv [optional] The environment which might be needed to fil
l in unknown data. Assumes environment is locked. | | \param penv [optional] The environment which might be needed to fil
l in unknown data. Assumes environment is locked. | |
| \param filluninitialized If there exists target groups that cannot
be initialized, then will set default values using the current environment.
For example, the current joint values of the body will be used. | | \param filluninitialized If there exists target groups that cannot
be initialized, then will set default values using the current environment.
For example, the current joint values of the body will be used. | |
| */ | | */ | |
| static void ConvertData(std::vector<dReal>::iterator ittargetdata, cons
t ConfigurationSpecification& targetspec, std::vector<dReal>::const_iterato
r itsourcedata, const ConfigurationSpecification& sourcespec, size_t numpoi
nts, EnvironmentBaseConstPtr penv, bool filluninitialized = true); | | static void ConvertData(std::vector<dReal>::iterator ittargetdata, cons
t ConfigurationSpecification& targetspec, std::vector<dReal>::const_iterato
r itsourcedata, const ConfigurationSpecification& sourcespec, size_t numpoi
nts, EnvironmentBaseConstPtr penv, bool filluninitialized = true); | |
| | | | |
|
| | | /// \brief gets the name of the interpolation that represents the deriv | |
| | | ative of the passed in interpolation. | |
| | | /// | |
| | | /// For example GetInterpolationDerivative("quadratic") -> "linear" | |
| | | static std::string GetInterpolationDerivative(const std::string& interp | |
| | | olation); | |
| | | | |
| std::vector<Group> _vgroups; | | std::vector<Group> _vgroups; | |
| }; | | }; | |
| | | | |
| OPENRAVE_API std::ostream& operator<<(std::ostream& O, const ConfigurationS
pecification &spec); | | OPENRAVE_API std::ostream& operator<<(std::ostream& O, const ConfigurationS
pecification &spec); | |
| OPENRAVE_API std::istream& operator>>(std::istream& I, ConfigurationSpecifi
cation& spec); | | OPENRAVE_API std::istream& operator>>(std::istream& I, ConfigurationSpecifi
cation& spec); | |
| | | | |
| typedef boost::shared_ptr<ConfigurationSpecification> ConfigurationSpecific
ationPtr; | | typedef boost::shared_ptr<ConfigurationSpecification> ConfigurationSpecific
ationPtr; | |
| typedef boost::shared_ptr<ConfigurationSpecification const> ConfigurationSp
ecificationConstPtr; | | typedef boost::shared_ptr<ConfigurationSpecification const> ConfigurationSp
ecificationConstPtr; | |
| | | | |
| /** \brief Parameterization of basic primitives for querying inverse-kinema
tics solutions. | | /** \brief Parameterization of basic primitives for querying inverse-kinema
tics solutions. | |
| | | | |
End of changes. 8 change blocks. |
| 27 lines changed or deleted | | 50 lines changed or added | |
|
| planningutils.h | | planningutils.h | |
| | | | |
| skipping to change at line 32 | | skipping to change at line 32 | |
| #define OPENRAVE_PLANNINGUTILS_H | | #define OPENRAVE_PLANNINGUTILS_H | |
| | | | |
| #include <openrave/openrave.h> | | #include <openrave/openrave.h> | |
| | | | |
| namespace OpenRAVE { | | namespace OpenRAVE { | |
| | | | |
| namespace planningutils { | | namespace planningutils { | |
| | | | |
| /// \brief Jitters the active joint angles of the robot until it escapes co
llision. | | /// \brief Jitters the active joint angles of the robot until it escapes co
llision. | |
| /// | | /// | |
|
| /// Return 0 if jitter failed and robot is in collision, -1 if robot origin
ally not in collision, 1 if jitter succeeded. | | /// Return 0 if jitter failed and robot is in collision, -1 if robot origin
ally not in collision, 1 if jitter succeeded and position is different. | |
| OPENRAVE_API int JitterActiveDOF(RobotBasePtr robot,int nMaxIterations=5000
,dReal fRand=0.03f,const PlannerBase::PlannerParameters::NeighStateFn& neig
hstatefn = PlannerBase::PlannerParameters::NeighStateFn()); | | OPENRAVE_API int JitterActiveDOF(RobotBasePtr robot,int nMaxIterations=5000
,dReal fRand=0.03f,const PlannerBase::PlannerParameters::NeighStateFn& neig
hstatefn = PlannerBase::PlannerParameters::NeighStateFn()); | |
| | | | |
| /// \brief Jitters the transform of a body until it escapes collision. | | /// \brief Jitters the transform of a body until it escapes collision. | |
| OPENRAVE_API bool JitterTransform(KinBodyPtr pbody, float fJitter, int nMax
Iterations=1000); | | OPENRAVE_API bool JitterTransform(KinBodyPtr pbody, float fJitter, int nMax
Iterations=1000); | |
| | | | |
| /** \brief validates a trajectory with respect to the planning constraints.
<b>[multi-thread safe]</b> | | /** \brief validates a trajectory with respect to the planning constraints.
<b>[multi-thread safe]</b> | |
| | | | |
| checks internal data structures and verifies that all trajectory via po
ints do not violate joint position, velocity, and acceleration limits. | | checks internal data structures and verifies that all trajectory via po
ints do not violate joint position, velocity, and acceleration limits. | |
| \param trajectory trajectory of points to be checked | | \param trajectory trajectory of points to be checked | |
| \param parameters the planner parameters passed to the planner that ret
urned the trajectory | | \param parameters the planner parameters passed to the planner that ret
urned the trajectory | |
|
| \param samplingstep If == 0, then will only test the supports points in
trajectory->GetPoints(). If > 0, then will sample the trajectory at this t
ime interval. | | \param samplingstep If == 0, then will only test the supports points in
trajectory->GetPoints(). If > 0, then will sample the trajectory at this t
ime interval and check that smoothness is satisfied along with segment cons
traints. | |
| \throw openrave_exception If the trajectory is invalid, will throw ORE_
InconsistentConstraints. | | \throw openrave_exception If the trajectory is invalid, will throw ORE_
InconsistentConstraints. | |
| */ | | */ | |
| OPENRAVE_API void VerifyTrajectory(PlannerBase::PlannerParametersConstPtr p
arameters, TrajectoryBaseConstPtr trajectory, dReal samplingstep=0.002); | | OPENRAVE_API void VerifyTrajectory(PlannerBase::PlannerParametersConstPtr p
arameters, TrajectoryBaseConstPtr trajectory, dReal samplingstep=0.002); | |
| | | | |
| /** \brief Smooth the trajectory points consisting of active dofs of the ro
bot while avoiding collisions. <b>[multi-thread safe]</b> | | /** \brief Smooth the trajectory points consisting of active dofs of the ro
bot while avoiding collisions. <b>[multi-thread safe]</b> | |
| | | | |
| Only initial and goal configurations are preserved. | | Only initial and goal configurations are preserved. | |
| \param traj the trajectory that initially contains the input points, it
is modified to contain the new re-timed data. | | \param traj the trajectory that initially contains the input points, it
is modified to contain the new re-timed data. | |
| \param robot use the robot's active dofs to initialize the trajectory s
pace | | \param robot use the robot's active dofs to initialize the trajectory s
pace | |
| \param plannername the name of the planner to use to smooth. If empty,
will use the default trajectory re-timer. | | \param plannername the name of the planner to use to smooth. If empty,
will use the default trajectory re-timer. | |
| | | | |
| skipping to change at line 90 | | skipping to change at line 90 | |
| | | | |
| Collision is not checked. Every waypoint in the trajectory is guarantee
d to be hit. | | Collision is not checked. Every waypoint in the trajectory is guarantee
d to be hit. | |
| \param traj the trajectory that initially contains the input points, it
is modified to contain the new re-timed data. | | \param traj the trajectory that initially contains the input points, it
is modified to contain the new re-timed data. | |
| \param maxvelocities the max velocities of each dof | | \param maxvelocities the max velocities of each dof | |
| \param maxaccelerations the max acceleration of each dof | | \param maxaccelerations the max acceleration of each dof | |
| \param plannername the name of the planner to use to retime. If empty,
will use the default trajectory re-timer. | | \param plannername the name of the planner to use to retime. If empty,
will use the default trajectory re-timer. | |
| \param hastimestamps if true, use the already initialized timestamps of
the trajectory | | \param hastimestamps if true, use the already initialized timestamps of
the trajectory | |
| */ | | */ | |
| OPENRAVE_API void RetimeAffineTrajectory(TrajectoryBasePtr traj, const std:
:vector<dReal>& maxvelocities, const std::vector<dReal>& maxaccelerations,
bool hastimestamps=false, const std::string& plannername=""); | | OPENRAVE_API void RetimeAffineTrajectory(TrajectoryBasePtr traj, const std:
:vector<dReal>& maxvelocities, const std::vector<dReal>& maxaccelerations,
bool hastimestamps=false, const std::string& plannername=""); | |
| | | | |
|
| | | /** \brief Inserts a waypoint into a trajectory at the index specified, and | |
| | | retimes the segment before and after the trajectory. <b>[multi-thread safe | |
| | | ]</b> | |
| | | | |
| | | Collision is not checked on the modified segments of the trajectory. | |
| | | \param index The index where to start modifying the trajectory. | |
| | | \param dofvalues the configuration to insert into the trajectcory (acti | |
| | | ve dof values of the robot) | |
| | | \param dofvelocities the velocities that the inserted point should star | |
| | | t with | |
| | | \param traj the trajectory that initially contains the input points, it | |
| | | is modified to contain the new re-timed data. | |
| | | \param robot use the robot's active dofs to initialize the trajectory s | |
| | | pace | |
| | | \param plannername the name of the planner to use to retime. If empty, | |
| | | will use the default trajectory re-timer. | |
| | | */ | |
| | | OPENRAVE_API void InsertActiveDOFWaypointWithRetiming(int index, const std: | |
| | | :vector<dReal>& dofvalues, const std::vector<dReal>& dofvelocities, Traject | |
| | | oryBasePtr traj, RobotBasePtr robot, dReal fmaxvelmult=1, const std::string | |
| | | & plannername=""); | |
| | | | |
| /// \brief convert the trajectory and all its points to a new specification | | /// \brief convert the trajectory and all its points to a new specification | |
| OPENRAVE_API void ConvertTrajectorySpecification(TrajectoryBasePtr traj, co
nst ConfigurationSpecification& spec); | | OPENRAVE_API void ConvertTrajectorySpecification(TrajectoryBasePtr traj, co
nst ConfigurationSpecification& spec); | |
| | | | |
| /// \brief reverses the order of the trajectory waypoints and times. | | /// \brief reverses the order of the trajectory waypoints and times. | |
| /// | | /// | |
| /// Velocities are just negated and the new trajectory is not guaranteed to
be executable or valid | | /// Velocities are just negated and the new trajectory is not guaranteed to
be executable or valid | |
| OPENRAVE_API TrajectoryBasePtr ReverseTrajectory(TrajectoryBaseConstPtr tra
j); | | OPENRAVE_API TrajectoryBasePtr ReverseTrajectory(TrajectoryBaseConstPtr tra
j); | |
| | | | |
| /// \brief merges the contents of multiple trajectories into one so that ev
erything can be played simultaneously. | | /// \brief merges the contents of multiple trajectories into one so that ev
erything can be played simultaneously. | |
| /// | | /// | |
| /// Each trajectory needs to have a 'deltatime' group for timestamps. The t
rajectories cannot share common configuration data because only one | | /// Each trajectory needs to have a 'deltatime' group for timestamps. The t
rajectories cannot share common configuration data because only one | |
| /// trajectories's data can be set at a time. | | /// trajectories's data can be set at a time. | |
| /// \throw openrave_exception throws an exception if the trajectory data is
incompatible and cannot be merged. | | /// \throw openrave_exception throws an exception if the trajectory data is
incompatible and cannot be merged. | |
| OPENRAVE_API TrajectoryBasePtr MergeTrajectories(const std::list<Trajectory
BaseConstPtr>& listtrajectories); | | OPENRAVE_API TrajectoryBasePtr MergeTrajectories(const std::list<Trajectory
BaseConstPtr>& listtrajectories); | |
| | | | |
|
| | | /** \brief sets the planner parameters structure from a configuration speci | |
| | | fication | |
| | | | |
| | | Attempt to set default values for all parameters | |
| | | */ | |
| | | OPENRAVE_API void SetPlannerParametersFromSpecification(PlannerBase::Planne | |
| | | rParametersPtr parameters, const ConfigurationSpecification& spec); | |
| | | | |
| /// \brief Line collision | | /// \brief Line collision | |
| class OPENRAVE_API LineCollisionConstraint | | class OPENRAVE_API LineCollisionConstraint | |
| { | | { | |
| public: | | public: | |
| LineCollisionConstraint(); | | LineCollisionConstraint(); | |
| bool Check(PlannerBase::PlannerParametersWeakPtr _params, KinBodyPtr ro
bot, const std::vector<dReal>& pQ0, const std::vector<dReal>& pQ1, Interval
Type interval, PlannerBase::ConfigurationListPtr pvCheckedConfigurations); | | bool Check(PlannerBase::PlannerParametersWeakPtr _params, KinBodyPtr ro
bot, const std::vector<dReal>& pQ0, const std::vector<dReal>& pQ1, Interval
Type interval, PlannerBase::ConfigurationListPtr pvCheckedConfigurations); | |
| | | | |
| protected: | | protected: | |
| std::vector<dReal> _vtempconfig, dQ; | | std::vector<dReal> _vtempconfig, dQ; | |
| CollisionReportPtr _report; | | CollisionReportPtr _report; | |
| | | | |
End of changes. 4 change blocks. |
| 2 lines changed or deleted | | 32 lines changed or added | |
|
| robot.h | | robot.h | |
| | | | |
| skipping to change at line 392 | | skipping to change at line 392 | |
| | | | |
| /// \brief Returns the manipulators of the robot | | /// \brief Returns the manipulators of the robot | |
| virtual std::vector<ManipulatorPtr>& GetManipulators() { | | virtual std::vector<ManipulatorPtr>& GetManipulators() { | |
| return _vecManipulators; | | return _vecManipulators; | |
| } | | } | |
| | | | |
| virtual std::vector<AttachedSensorPtr>& GetAttachedSensors() { | | virtual std::vector<AttachedSensorPtr>& GetAttachedSensors() { | |
| return _vecSensors; | | return _vecSensors; | |
| } | | } | |
| | | | |
|
| virtual void SetDOFValues(const std::vector<dReal>& vJointValues, bool | | virtual void SetDOFValues(const std::vector<dReal>& vJointValues, bool | |
| bCheckLimits = false); | | checklimits = true); | |
| virtual void SetDOFValues(const std::vector<dReal>& vJointValues, const | | virtual void SetDOFValues(const std::vector<dReal>& vJointValues, const | |
| Transform& transbase, bool bCheckLimits = false); | | Transform& transbase, bool checklimits = true); | |
| | | | |
| virtual void SetLinkTransformations(const std::vector<Transform>& trans
forms); | | virtual void SetLinkTransformations(const std::vector<Transform>& trans
forms); | |
| virtual void SetLinkTransformations(const std::vector<Transform>& trans
forms, const std::vector<int>& dofbranches); | | virtual void SetLinkTransformations(const std::vector<Transform>& trans
forms, const std::vector<int>& dofbranches); | |
| | | | |
| /// Transforms the robot and updates the attached sensors and grabbed b
odies. | | /// Transforms the robot and updates the attached sensors and grabbed b
odies. | |
| virtual void SetTransform(const Transform& trans); | | virtual void SetTransform(const Transform& trans); | |
| | | | |
| /** Methods using the active degrees of freedoms of the robot. Active D
OFs are a way for the | | /** Methods using the active degrees of freedoms of the robot. Active D
OFs are a way for the | |
| user to specify degrees of freedom of interest for a current execut
ion block. All planners | | user to specify degrees of freedom of interest for a current execut
ion block. All planners | |
| by default use the robot's active DOF and active manipultor. For ev
ery Get* method, there is | | by default use the robot's active DOF and active manipultor. For ev
ery Get* method, there is | |
| | | | |
| skipping to change at line 526 | | skipping to change at line 526 | |
| virtual Vector GetAffineRotationAxisWeights() const { | | virtual Vector GetAffineRotationAxisWeights() const { | |
| return _vRotationAxisWeights; | | return _vRotationAxisWeights; | |
| } | | } | |
| virtual Vector GetAffineRotation3DWeights() const { | | virtual Vector GetAffineRotation3DWeights() const { | |
| return _vRotation3DWeights; | | return _vRotation3DWeights; | |
| } | | } | |
| virtual dReal GetAffineRotationQuatWeights() const { | | virtual dReal GetAffineRotationQuatWeights() const { | |
| return _fQuatAngleResolution; | | return _fQuatAngleResolution; | |
| } | | } | |
| | | | |
|
| virtual void SetActiveDOFValues(const std::vector<dReal>& values, bool
bCheckLimits=false); | | virtual void SetActiveDOFValues(const std::vector<dReal>& values, bool
checklimits=true); | |
| virtual void GetActiveDOFValues(std::vector<dReal>& v) const; | | virtual void GetActiveDOFValues(std::vector<dReal>& v) const; | |
|
| virtual void SetActiveDOFVelocities(const std::vector<dReal>& velocitie
s, bool bCheckLimits=false); | | virtual void SetActiveDOFVelocities(const std::vector<dReal>& velocitie
s, bool checklimits=true); | |
| virtual void GetActiveDOFVelocities(std::vector<dReal>& velocities) con
st; | | virtual void GetActiveDOFVelocities(std::vector<dReal>& velocities) con
st; | |
| virtual void GetActiveDOFLimits(std::vector<dReal>& lower, std::vector<
dReal>& upper) const; | | virtual void GetActiveDOFLimits(std::vector<dReal>& lower, std::vector<
dReal>& upper) const; | |
| virtual void GetActiveDOFResolutions(std::vector<dReal>& v) const; | | virtual void GetActiveDOFResolutions(std::vector<dReal>& v) const; | |
| virtual void GetActiveDOFWeights(std::vector<dReal>& v) const; | | virtual void GetActiveDOFWeights(std::vector<dReal>& v) const; | |
| virtual void GetActiveDOFVelocityLimits(std::vector<dReal>& v) const; | | virtual void GetActiveDOFVelocityLimits(std::vector<dReal>& v) const; | |
| virtual void GetActiveDOFAccelerationLimits(std::vector<dReal>& v) cons
t; | | virtual void GetActiveDOFAccelerationLimits(std::vector<dReal>& v) cons
t; | |
| virtual void GetActiveDOFMaxVel(std::vector<dReal>& v) const { | | virtual void GetActiveDOFMaxVel(std::vector<dReal>& v) const { | |
| return GetActiveDOFVelocityLimits(v); | | return GetActiveDOFVelocityLimits(v); | |
| } | | } | |
| virtual void GetActiveDOFMaxAccel(std::vector<dReal>& v) const { | | virtual void GetActiveDOFMaxAccel(std::vector<dReal>& v) const { | |
| | | | |
End of changes. 3 change blocks. |
| 6 lines changed or deleted | | 6 lines changed or added | |
|