Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
a614cd7
Have toPyArray return py::array_t
Nov 4, 2025
a711d95
Split PyViewerBase to h and cpp
Nov 4, 2025
0cb7670
Improve typestub
Nov 4, 2025
728e77d
Write misc.pyi and openravepy_ext.pyi by mypy
Nov 4, 2025
ed7ebcd
Merge remote-tracking branch 'origin/production' into fixtypestub
Nov 6, 2025
474f49d
Move more to openravepy_viewer.cpp
Nov 6, 2025
6a30bf9
Moved PyAABB to header
Nov 6, 2025
38d9569
Have some APIs return PyAABBPtr
Nov 6, 2025
5a50b8c
Fix GetKinBody type
Nov 6, 2025
cd290cb
Fix Save and WriteToMemory types
Nov 6, 2025
6886594
Add py::array overload for InitFromBoxes
Nov 6, 2025
a8fa144
Add KinBody/Link/Joint types
Nov 6, 2025
7ba6fb0
Have Save default value enum
Nov 6, 2025
239e671
Add more types
Nov 6, 2025
5a5d256
Add more types
Nov 7, 2025
26ade65
Have some APIs to return PyIkParameterization. Ensure that PlannerSta…
Nov 7, 2025
be83968
Add more types
Nov 7, 2025
7684d35
Move SelectionOptions values up as it is used as the default value of…
Nov 7, 2025
1d83337
a bit more types
Nov 10, 2025
6686552
Introduce py::typing::Optional
Nov 10, 2025
3edb5d6
Set PyAABB dtor virtual
Nov 10, 2025
24c7176
Fix Trajectory.serialize type
Nov 11, 2025
2cd12fb
Resolved ConvertStringToUnicode type (finally)
Nov 12, 2025
fcd6098
Add more types
Nov 12, 2025
2b143fd
more types
Nov 13, 2025
118d02b
test import version
Nov 13, 2025
98725b2
improve pyi generation
Nov 13, 2025
3438200
more types
Nov 13, 2025
178ad56
more types
Nov 14, 2025
09ce5f1
Generate databases typestub using mypy
Nov 14, 2025
3717f1e
type SerializeJSON
Nov 14, 2025
b748e11
More types
Nov 16, 2025
d89cef2
typo
Nov 16, 2025
38b69d7
Merge remote-tracking branch 'origin/production' into fixtypestub
Nov 20, 2025
2ff4ff5
Merge remote-tracking branch 'origin/production' into fixtypestub
Dec 2, 2025
0712cda
Merge remote-tracking branch 'origin/production' into fixtypestub
Dec 30, 2025
f74c23d
Fix GetChuckingDirection type to int
Jan 5, 2026
75890b0
Changed GetPublishedBody type to optional
Jan 5, 2026
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
6 changes: 4 additions & 2 deletions plugins/configurationcache/openravepy_configurationcache.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ namespace py = boost::python;

#include <openravepy/openravepy_int.h>
#include <openravepy/openravepy_module.h>
#include <openravepy/openravepy_robotbase.h>
#include <openravepy/openravepy_environmentbase.h>
using py::object;
using py::extract;
using py::extract_;
Expand Down Expand Up @@ -70,7 +72,7 @@ class PyConfigurationCache
public:
PyConfigurationCache(object pyrobot)
{
_pyenv = openravepy::toPyEnvironment(pyrobot);
_pyenv = py::to_object(openravepy::toPyEnvironment(pyrobot));
_cache.reset(new configurationcache::ConfigurationCache(openravepy::GetRobot(pyrobot)));
}
virtual ~PyConfigurationCache(){
Expand Down Expand Up @@ -174,7 +176,7 @@ class PyConfigurationCache
return _cache->GetInsertionDistanceMult();
}

object GetRobot() {
openravepy::PyKinBodyPtr GetRobot() {
return openravepy::toPyKinBody(_cache->GetRobot(), _pyenv);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,11 @@

namespace boost {
namespace python {
namespace typing {
template <typename T>
using Optional = boost::python::object;
}

template <typename T>
inline object to_object(const T& t) {
return object(t);
Expand All @@ -35,6 +40,8 @@ inline object none_() {
return object();
}
using array_int = object; // py::array_int
template <typename T>
using array_t = numeric::array;
} // namespace boost::python
} // namespace boost

Expand All @@ -52,9 +59,9 @@ namespace openravepy {

namespace py = boost::python;

inline py::object ConvertStringToUnicode(const std::string& s)
inline py::str ConvertStringToUnicode(const std::string& s)
{
return py::handle_to_object(PyUnicode_Decode(s.c_str(), s.size(), "utf-8", nullptr));
return py::str(py::handle<>(PyUnicode_Decode(s.c_str(), s.size(), "utf-8", nullptr)));
}

#ifdef OPENRAVE_BINDINGS_PYARRAY
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,9 @@ class OPENRAVEPY_API PyCollisionCheckerBase : public PyInterfaceBase

bool SetBodyGeometryGroup(PyKinBodyPtr pybody, const std::string& groupname);

object GetGeometryGroup();
py::str GetGeometryGroup();

object GetBodyGeometryGroup(PyKinBodyPtr pybody);
py::str GetBodyGeometryGroup(PyKinBodyPtr pybody);

void RemoveKinBody(PyKinBodyPtr pbody);

Expand Down Expand Up @@ -86,7 +86,7 @@ class OPENRAVEPY_API PyCollisionCheckerBase : public PyInterfaceBase

bool CheckCollision(OPENRAVE_SHARED_PTR<PyRay> pyray, PyLinkPtr plink, PyCollisionReportPtr pReport);

object CheckCollisionRays(object rays, PyKinBodyPtr pbody,bool bFrontFacingOnly=false, object oCheckPreemptFn=py::none_());
py::tuple CheckCollisionRays(object rays, PyKinBodyPtr pbody,bool bFrontFacingOnly=false, object oCheckPreemptFn=py::none_());

bool CheckCollision(OPENRAVE_SHARED_PTR<PyRay> pyray);

Expand Down
10 changes: 5 additions & 5 deletions python/bindings/include/openravepy/openravepy_collisionreport.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ struct PYCONTACT
PYCONTACT(const CONTACT& c);

std::string __str__() const;
object __unicode__() const;
py::str __unicode__() const;
object pos = py::none_();
object norm = py::none_();
dReal depth;
Expand All @@ -40,10 +40,10 @@ class OPENRAVEPY_API PyCollisionPairInfo
public:
PyCollisionPairInfo(const CollisionPairInfo& cpinfo);
std::string __str__() const;
object __unicode__() const;
py::str __unicode__() const;

py::object ExtractFirstBodyLinkGeomNames();
py::object ExtractSecondBodyLinkGeomNames();
py::tuple ExtractFirstBodyLinkGeomNames();
py::tuple ExtractSecondBodyLinkGeomNames();

std::string bodyLinkGeom1Name;
std::string bodyLinkGeom2Name;
Expand All @@ -59,7 +59,7 @@ class OPENRAVEPY_API PyCollisionReport
void Init(const CollisionReport& report);

std::string __str__() const;
object __unicode__() const;
py::str __unicode__() const;
void Reset(int coloptions=0);

py::list collisionInfos; // list of PyCollisionPairInfo
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ class OPENRAVEPY_API PyConfigurationSpecification : public OPENRAVE_ENABLE_SHARE
virtual ~PyConfigurationSpecification();

void DeserializeJSON(py::object obj);
py::object SerializeJSON();
py::dict SerializeJSON();

int GetDOF() const;

Expand Down Expand Up @@ -105,7 +105,7 @@ class OPENRAVEPY_API PyConfigurationSpecification : public OPENRAVE_ENABLE_SHARE

std::string __repr__();
std::string __str__();
object __unicode__();
py::str __unicode__();

// members
ConfigurationSpecification _spec;
Expand Down
70 changes: 35 additions & 35 deletions python/bindings/include/openravepy/openravepy_environmentbase.h
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ class OPENRAVEPY_API PyEnvironmentBase : public OPENRAVE_ENABLE_SHARED_FROM_THIS
public:
PyEnvironmentBaseInfo();
PyEnvironmentBaseInfo(const EnvironmentBase::EnvironmentBaseInfo& info);
py::object SerializeJSON(dReal fUnitScale=1.0, py::object options=py::none_());
py::dict SerializeJSON(dReal fUnitScale=1.0, py::object options=py::none_());
void DeserializeJSON(py::object obj, dReal fUnitScale=1.0, py::object options=py::none_());
EnvironmentBase::EnvironmentBaseInfoPtr GetEnvironmentBaseInfo() const;
int _revision = 0;
Expand All @@ -106,10 +106,10 @@ class OPENRAVEPY_API PyEnvironmentBase : public OPENRAVE_ENABLE_SHARED_FROM_THIS
py::list _keywords;
py::object _vBodyInfos = py::none_();
py::object _name = py::none_();
py::object _description = py::none_();
py::str _description = py::none_();
#endif
virtual std::string __str__();
virtual py::object __unicode__();
virtual py::str __unicode__();

protected:
void _Update(const EnvironmentBase::EnvironmentBaseInfo& info);
Expand Down Expand Up @@ -144,7 +144,7 @@ class OPENRAVEPY_API PyEnvironmentBase : public OPENRAVE_ENABLE_SHARED_FROM_THIS
void Clone(PyEnvironmentBasePtr pyreference, const std::string& clonedEnvName, int options);

bool SetCollisionChecker(PyCollisionCheckerBasePtr pchecker);
object GetCollisionChecker();
py::typing::Optional<PyCollisionCheckerBasePtr> GetCollisionChecker();
bool CheckCollision(PyKinBodyPtr pbody1);
bool CheckCollision(PyKinBodyPtr pbody1, PyCollisionReportPtr pReport);

Expand Down Expand Up @@ -192,21 +192,21 @@ class OPENRAVEPY_API PyEnvironmentBase : public OPENRAVE_ENABLE_SHARED_FROM_THIS
bool LoadData(const std::string &data);
bool LoadData(const std::string &data, object odictatts);

void Save(const std::string &filename, const int options = EnvironmentBase::SelectionOptions::SO_Everything, object odictatts = py::none_());
void Save(const std::string &filename, const EnvironmentBase::SelectionOptions options = EnvironmentBase::SelectionOptions::SO_Everything, object odictatts = py::none_());

object WriteToMemory(const std::string &filetype, const int options = EnvironmentBase::SelectionOptions::SO_Everything, object odictatts = py::none_());
object WriteToMemory(const std::string &filetype, const EnvironmentBase::SelectionOptions options = EnvironmentBase::SelectionOptions::SO_Everything, object odictatts = py::none_());

/// will be unlocking GIL since doing FS or memory-intensive operations
//@{
object ReadRobotURI(const std::string &filename);
object ReadRobotURI(const std::string &filename, object odictatts);
object ReadRobotData(const std::string &data, object odictatts=py::none_(), const std::string&uri=std::string());
object ReadRobotJSON(py::object oEnvInfo, object odictatts=py::none_(), const std::string &uri = std::string());
object ReadKinBodyURI(const std::string &filename);
object ReadKinBodyURI(const std::string &filename, object odictatts);
object ReadKinBodyData(const std::string &data);
object ReadKinBodyData(const std::string &data, object odictatts);
object ReadKinBodyJSON(py::object oEnvInfo, object odictatts=py::none_(), const std::string &uri = std::string());
py::typing::Optional<PyRobotBasePtr> ReadRobotURI(const std::string &filename);
py::typing::Optional<PyRobotBasePtr> ReadRobotURI(const std::string &filename, object odictatts);
PyRobotBasePtr ReadRobotData(const std::string &data, object odictatts=py::none_(), const std::string&uri=std::string());
PyRobotBasePtr ReadRobotJSON(py::object oEnvInfo, object odictatts=py::none_(), const std::string &uri = std::string());
py::typing::Optional<PyKinBodyPtr> ReadKinBodyURI(const std::string &filename);
py::typing::Optional<PyKinBodyPtr> ReadKinBodyURI(const std::string &filename, object odictatts);
PyKinBodyPtr ReadKinBodyData(const std::string &data);
PyKinBodyPtr ReadKinBodyData(const std::string &data, object odictatts);
PyKinBodyPtr ReadKinBodyJSON(py::object oEnvInfo, object odictatts=py::none_(), const std::string &uri = std::string());
PyInterfaceBasePtr ReadInterfaceURI(const std::string& filename);
PyInterfaceBasePtr ReadInterfaceURI(const std::string& filename, object odictatts);
//@}
Expand All @@ -233,21 +233,21 @@ class OPENRAVEPY_API PyEnvironmentBase : public OPENRAVE_ENABLE_SHARED_FROM_THIS

bool RemoveKinBodyByName(const std::string& name);

object GetKinBody(const std::string &name);
object GetRobot(const std::string &name);
object GetSensor(const std::string &name);
py::typing::Optional<PyKinBodyPtr> GetKinBody(const std::string &name);
py::typing::Optional<PyRobotBasePtr> GetRobot(const std::string &name);
py::typing::Optional<PySensorBasePtr> GetSensor(const std::string &name);

object GetBodyFromEnvironmentId(int id);
object GetBodyFromEnvironmentBodyIndex(int id);
object GetBodiesFromEnvironmentBodyIndices(object bodyIndices);
py::typing::Optional<PyKinBodyPtr> GetBodyFromEnvironmentId(int id);
py::typing::Optional<PyKinBodyPtr> GetBodyFromEnvironmentBodyIndex(int id);
py::list GetBodiesFromEnvironmentBodyIndices(object bodyIndices);

int GetMaxEnvironmentBodyIndex();

int AddModule(PyModuleBasePtr prob, const std::string &args);
bool RemoveProblem(PyModuleBasePtr prob);
bool Remove(PyInterfaceBasePtr obj);

object GetModules();
py::list GetModules();

bool SetPhysicsEngine(PyPhysicsEngineBasePtr pengine);
object GetPhysicsEngine();
Expand Down Expand Up @@ -289,7 +289,7 @@ class OPENRAVEPY_API PyEnvironmentBase : public OPENRAVE_ENABLE_SHARED_FROM_THIS
/// \brief sets the default viewer
bool SetDefaultViewer(bool showviewer=true);

object GetViewer();
py::typing::Optional<PyViewerBasePtr> GetViewer();

/// returns the number of points
static size_t _getGraphPoints(object opoints, std::vector<float>&vpoints);
Expand Down Expand Up @@ -327,23 +327,23 @@ class OPENRAVEPY_API PyEnvironmentBase : public OPENRAVE_ENABLE_SHARED_FROM_THIS

object drawtrimesh(object opoints, object oindices=py::none_(), object ocolors=py::none_());

object GetBodies();
object GetBodiesWithReadableInterface(const std::string& readableInterfaceName);
py::list GetBodies();
py::list GetBodiesWithReadableInterface(const std::string& readableInterfaceName);
int GetNumBodies();

object GetRobots();
py::list GetRobots();

object GetSensors();
py::list GetSensors();

void UpdatePublishedBodies();

object GetPublishedBodies(uint64_t timeout=0);
py::list GetPublishedBodies(uint64_t timeout=0);

object GetPublishedBody(const std::string &name, uint64_t timeout = 0);
py::typing::Optional<py::dict> GetPublishedBody(const std::string &name, uint64_t timeout = 0);

object GetPublishedBodyJointValues(const std::string &name, uint64_t timeout=0);
py::typing::Optional<py::array_t<dReal> > GetPublishedBodyJointValues(const std::string &name, uint64_t timeout=0);

object GetPublishedBodyTransformsMatchingPrefix(const std::string &prefix, uint64_t timeout=0);
py::dict GetPublishedBodyTransformsMatchingPrefix(const std::string &prefix, uint64_t timeout=0);

object Triangulate(PyKinBodyPtr pbody);

Expand All @@ -370,13 +370,13 @@ class OPENRAVEPY_API PyEnvironmentBase : public OPENRAVE_ENABLE_SHARED_FROM_THIS

int GetRevision() const;

py::object GetName() const;
py::str GetName() const;

py::object GetNameId() const;
py::str GetNameId() const;

void SetDescription(const std::string& sceneDescription);

py::object GetDescription() const;
py::str GetDescription() const;

void SetKeywords(object oSceneKeywords);

Expand All @@ -403,7 +403,7 @@ class OPENRAVEPY_API PyEnvironmentBase : public OPENRAVE_ENABLE_SHARED_FROM_THIS
long __hash__();
std::string __repr__();
std::string __str__();
object __unicode__();
py::str __unicode__();

EnvironmentBasePtr GetEnv() const;
};
Expand Down
48 changes: 24 additions & 24 deletions python/bindings/include/openravepy/openravepy_ikparameterization.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ class OPENRAVEPY_API PyIkParameterization

IkParameterizationType GetType() const;
std::string GetId() const;
object GetName() const;
py::str GetName() const;

int GetDOF();

Expand All @@ -45,11 +45,11 @@ class OPENRAVEPY_API PyIkParameterization

int GetNumberOfValues(object o);

object GetConfigurationSpecification();
PyConfigurationSpecificationPtr GetConfigurationSpecification();

object GetConfigurationSpecification(object ointerpolation, const std::string& robotname="", const std::string& manipname="");
PyConfigurationSpecificationPtr GetConfigurationSpecification(object ointerpolation, const std::string& robotname="", const std::string& manipname="");

static object GetConfigurationSpecificationFromType(IkParameterizationType iktype, const std::string& interpolation="", const std::string& robotname="", const std::string& manipname="");
static PyConfigurationSpecificationPtr GetConfigurationSpecificationFromType(IkParameterizationType iktype, const std::string& interpolation="", const std::string& robotname="", const std::string& manipname="");
void SetTransform6D(object o);
void SetRotation3D(object o);
void SetTranslation3D(object o);
Expand All @@ -67,26 +67,26 @@ class OPENRAVEPY_API PyIkParameterization
void SetTranslationYAxisAngleXNorm4D(object otrans, dReal angle);
void SetTranslationZAxisAngleYNorm4D(object otrans, dReal angle);

object GetTransform6D();
object GetTransform6DPose();
object GetRotation3D();
object GetTranslation3D();
object GetDirection3D();
py::array_t<dReal> GetTransform6D();
py::array_t<dReal> GetTransform6DPose();
py::array_t<dReal> GetRotation3D();
py::array_t<dReal> GetTranslation3D();
py::array_t<dReal> GetDirection3D();
PyRay GetRay4D();
object GetLookat3D();
py::array_t<dReal> GetLookat3D();
PyRay GetTranslationDirection5D();
object GetTranslationXY2D();
object GetTranslationXYOrientation3D();
object GetTranslationLocalGlobal6D();
object GetTranslationXAxisAngle4D();
object GetTranslationYAxisAngle4D();
object GetTranslationZAxisAngle4D();
object GetTranslationXAxisAngleZNorm4D();
object GetTranslationYAxisAngleXNorm4D();
object GetTranslationZAxisAngleYNorm4D();
dReal ComputeDistanceSqr(OPENRAVE_SHARED_PTR<PyIkParameterization> pyikparam);

object Transform(object otrans) const;
py::array_t<dReal> GetTranslationXY2D();
py::array_t<dReal> GetTranslationXYOrientation3D();
py::tuple GetTranslationLocalGlobal6D();
py::tuple GetTranslationXAxisAngle4D();
py::tuple GetTranslationYAxisAngle4D();
py::tuple GetTranslationZAxisAngle4D();
py::tuple GetTranslationXAxisAngleZNorm4D();
py::tuple GetTranslationYAxisAngleXNorm4D();
py::tuple GetTranslationZAxisAngleYNorm4D();
dReal ComputeDistanceSqr(PyIkParameterizationPtr pyikparam);

PyIkParameterizationPtr Transform(object otrans) const;

void SetCustomValues(const std::string& name, object ovalues);

Expand All @@ -106,12 +106,12 @@ class OPENRAVEPY_API PyIkParameterization

void MultiplyTransformRight(object otrans);

py::object SerializeJSON(dReal fUnitScale=1.0);
py::dict SerializeJSON(dReal fUnitScale=1.0);
void DeserializeJSON(py::object obj, dReal fUnitScale=1.0);

std::string __repr__();
std::string __str__();
object __unicode__();
py::str __unicode__();

PyIkParameterizationPtr __mul__(object otrans);

Expand Down
6 changes: 3 additions & 3 deletions python/bindings/include/openravepy/openravepy_iksolverbase.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,14 @@ class OPENRAVEPY_API PyIkFailureInfo
public:
PyIkFailureInfo(const IkFailureInfo& ikFailureInfo);
IkReturnAction GetAction();
object GetConfiguration();
object GetIkParam();
py::array_t<dReal> GetConfiguration();
py::typing::Optional<PyIkParameterizationPtr> GetIkParam();
object GetCollisionReport();
std::string GetDescription();
object GetMapData(uint64_t key);
object GetMapDataDict();

py::object SerializeJSON();
py::dict SerializeJSON();

IkFailureInfo _ikFailureInfo;
};
Expand Down
Loading