hpp-rbprm-corba  4.11.0
Corba server for reachability based planning
hpp-rbprm-corba Documentation

Introduction

This package implements a Corba server running hpp-manipulation package functions and the corresponding client.

The corba server part is compiled into library libhpp-manipulation-corba.so that implements the following class:

  • hpp::manipulation::Server. The corba services provided by the library are described in interface
  • hpp::corbaserver::manipulation::Graph.
  • hpp::corbaserver::manipulation::Problem.
  • hpp::corbaserver::manipulation::Robot.

The client part is provided through python module hpp.corbaserver.manipulation

An executable called hpp-manipulation-server is installed. This executable runs

See these package documentations for details.

How to communicate with the CORBA server

How to communicate with the CORBA server

The easiest way is

to launch \c hpp-manipulation-server executable,
open a python terminal and type:
from hpp.corbaserver.manipulation import Client as ManipulationClient
mcl = ManipulationClient ()

Then variable mcl contains a member problem that can send requests to the server. For instance

mcl.problem.loadHumanoidModel ("hrp2_14", "freeflyer",
"hrp2_14_description", "hrp2_14",
"_capsule", "_capsule")

Some python classes are provided that embed corba clients and that forward corba resquest to the server side:

  • manipulation.robot.Robot to load and handle a manipulation robot,
  • manipulation.robot.HumanoidRobot to load and handle a manipulation robot, containing a humanoid robot at first place,
  • manipulation.problem_solver.ProblemSolver to set and solve a manipulation planning problem.
  • manipulation.constraint_graph.ConstraintGraph to initialize the graph of constraint.

How to embed a server in an application

How to embed a server in an application

Embedding the corba server into an application can be done by linking the application with libhpp-manipulation-corba.so in a similar way as hpp-corbaserver corba server. See documentation of classes hpp::corbaServer::Server and hpp::manipulation::Server for details.