Skip to content

Cppbuild Control Callback Error #771

@lfoland

Description

@lfoland

We are trying to wrap Franka Emika's libfranka library, but are getting this issue when defining a class called ControlCallback in our libfrankaConfig.java file. We have the following code:

`public static class ControlCallback extends FunctionPointer {
        static { Loader.load(); }
        public    ControlCallback(Pointer p) { super(p); }
        protected ControlCallback() { allocate(); }
        private native void allocate();
        public native Torques call(@ByRef @Const RobotState robotState, Duration duration);
    }`

In libfranka, ControlCallback represents an argument in the Robot class's control method. It should be of type std::function<franka::Torques(const franka::RobotState&, franka::Duration)>. We get the following error during runs of cppbuild.bash:
In function ‘void Java_us_ihmc_libfranka_Robot_control__Lus_ihmc_libfranka_libfrankaConfig_00024ControlCallback_2(JNIEnv*, jobject, jobject)’: error: no matching function for call to ‘franka::Robot::control(JavaCPP_us_ihmc_libfranka_libfrankaConfig_00024ControlCallback&)’ 5293 | ptr->control(*ptr0); | ^ In file included from /home/franka/IdeaProjects/repository-group/libfranka-java/cppbuild/include/franka/model.h:8, note: candidate: ‘void franka::Robot::control(std::function<franka::Torques(const franka::RobotState&, franka::Duration)>, bool, double)’ 172 | void control(std::function<Torques(const RobotState&, franka::Duration)> control_callback, | ^~~~~~~ no known conversion for argument 1 from ‘JavaCPP_us_ihmc_libfranka_libfrankaConfig_00024ControlCallback’ to ‘std::function<franka::Torques(const franka::RobotState&, franka::Duration)>’ 172 | void control(std::function<Torques(const RobotState&, franka::Duration)> control_callback,

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions