libfranka  0.14.1
FCI C++ API
print_joint_poses.cpp

An example showing how to use the model library that prints the transformation matrix of each joint with respect to the base frame.

// Copyright (c) 2023 Franka Robotics GmbH
// Use of this source code is governed by the Apache-2.0 license, see LICENSE
#include <iostream>
#include <iterator>
#include <franka/model.h>
template <class T, size_t N>
std::ostream& operator<<(std::ostream& ostream, const std::array<T, N>& array) {
ostream << "[";
std::copy(array.cbegin(), array.cend() - 1, std::ostream_iterator<T>(ostream, ","));
std::copy(array.cend() - 1, array.cend(), std::ostream_iterator<T>(ostream));
ostream << "]";
return ostream;
}
int main(int argc, char** argv) {
if (argc != 2) {
std::cerr << "Usage: " << argv[0] << " <robot-hostname>" << std::endl;
return -1;
}
try {
franka::Robot robot(argv[1]);
franka::RobotState state = robot.readOnce();
franka::Model model(robot.loadModel());
for (franka::Frame frame = franka::Frame::kJoint1; frame <= franka::Frame::kEndEffector;
frame++) {
std::cout << model.pose(frame, state) << std::endl;
}
} catch (franka::Exception const& e) {
std::cout << e.what() << std::endl;
return -1;
}
return 0;
}
Calculates poses of joints and dynamic properties of the robot.
Definition: model.h:52
Maintains a network connection to the robot, provides the current robot state, gives access to the mo...
Definition: robot.h:68
std::ostream & operator<<(std::ostream &ostream, const Errors &errors)
Streams the errors as JSON array.
Contains exception definitions.
Contains model library types.
Frame
Enumerates the seven joints, the flange, and the end effector of a robot.
Definition: model.h:22
Base class for all exceptions used by libfranka.
Definition: exception.h:20
Describes the robot state.
Definition: robot_state.h:34