How to solve Forward Kinematics using Moveit! without running ROS nodes and launching ROS services?

asked 2020-11-20 00:11:01 -0600

Hi, I want to use functions from Moveit! to calculate forward kinematics (or other functionalities).

My first step to load the kinematics model using RobotModelLoader class, I prefer to use the constructor RobotModelLoader(const Options& opt = Options()); instead of RobotModelLoader(const std::string& robot_description, bool load_kinematics_solvers = true);, which requires running the ROS parameters server and then retrieving the parameters from it, but I don't want to launch a lot of ROS services and run ROS nodes.

However, the constructor for Options specify load_kinematics_solvers_ to be true by default: Options(const std::string& urdf_string, const std::string& srdf_string) : urdf_string_(urdf_string), srdf_string_(srdf_string), load_kinematics_solvers_(true){}. Subsequently, it will call getRobotDescription() in loadKinematicsSolvers() function, and getRobotDescription() requires running ROS parameters server.

I was wondering if there is a way to manually specify a minimum set of parameters (such as URDF, SRDF, and kinematics solver) to solver FK, without running ROS nodes and launching a lot of ROS services?

edit retag flag offensive close merge delete