libfranka 0.15.0
FCI C++ API
Loading...
Searching...
No Matches
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.

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
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