Skip to content

Commit b76adf1

Browse files
committed
fully working example
1 parent 493b373 commit b76adf1

File tree

2 files changed

+10
-36
lines changed

2 files changed

+10
-36
lines changed

robotiq_hande_driver/hardware/include/robotiq_hande_driver/hande_hardware_interface.hpp

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ namespace robotiq_hande_driver {
1010
namespace HWI = hardware_interface;
1111
namespace rlccp_lc = rclcpp_lifecycle;
1212

13-
constexpr int HANDE_LEFT_FINGER_JOINT_ID = 0;
13+
constexpr int LEFT_FINGER_JOINT_ID = 0;
1414

1515
class RobotiqHandeHardwareInterface : public HWI::SystemInterface
1616
{
@@ -32,25 +32,15 @@ class RobotiqHandeHardwareInterface : public HWI::SystemInterface
3232
HWI::return_type read(const rclcpp::Time& time, const rclcpp::Duration& period) override;
3333
HWI::return_type write(const rclcpp::Time& time, const rclcpp::Duration& period) override;
3434

35-
/// Get the logger of the SystemInterface.
36-
/**
37-
* \return logger of the SystemInterface.
38-
*/
3935
rclcpp::Logger get_logger() const { return *logger_; }
4036

41-
/// Get the clock of the SystemInterface.
42-
/**
43-
* \return clock of the SystemInterface.
44-
*/
45-
rclcpp::Clock::SharedPtr get_clock() const { return clock_; }
46-
4737
private:
4838
//TODO: composition of the modbus communication
4939
std::shared_ptr<rclcpp::Logger> logger_;
50-
rclcpp::Clock::SharedPtr clock_; //TODO: Remove after tests
5140

5241
std::string tty_port_;
5342
double state_position_;
43+
double state_velocity_;
5444
double cmd_position_;
5545
};
5646

robotiq_hande_driver/hardware/src/hande_hardware_interface.cpp

Lines changed: 8 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@ HWI::CallbackReturn RobotiqHandeHardwareInterface::on_init(const HWI::HardwareIn
1313
return HWI::CallbackReturn::ERROR;
1414
}
1515

16-
state_position_ = 0.0025;
17-
cmd_position_ = 0.0025;
16+
state_position_ = 0.025;
17+
state_velocity_ = 0.0;
18+
cmd_position_ = 0.025;
1819
tty_port_ = info_.hardware_parameters["tty"];
1920

2021
logger_ = std::make_shared<rclcpp::Logger>(
2122
rclcpp::get_logger("controller_manager.resource_manager.hardware_component.system.RobotiqHandeHardwareInterface"));
22-
clock_ = std::make_shared<rclcpp::Clock>(rclcpp::Clock());
2323

2424
//TODO: Set parameters for the modbus communication
2525

@@ -43,7 +43,9 @@ std::vector<HWI::StateInterface> RobotiqHandeHardwareInterface::export_state_int
4343
std::vector<HWI::StateInterface> state_interfaces;
4444

4545
state_interfaces.emplace_back(hardware_interface::StateInterface(
46-
info_.joints[HANDE_LEFT_FINGER_JOINT_ID].name, hardware_interface::HW_IF_POSITION, &state_position_));
46+
info_.joints[LEFT_FINGER_JOINT_ID].name, hardware_interface::HW_IF_POSITION, &state_position_));
47+
state_interfaces.emplace_back(hardware_interface::StateInterface(
48+
info_.joints[LEFT_FINGER_JOINT_ID].name, hardware_interface::HW_IF_VELOCITY, &state_velocity_));
4749

4850
RCLCPP_INFO(get_logger(), "export_state_interfaces()");
4951
return state_interfaces;
@@ -53,7 +55,7 @@ std::vector<HWI::CommandInterface> RobotiqHandeHardwareInterface::export_command
5355
std::vector<hardware_interface::CommandInterface> command_interfaces;
5456

5557
command_interfaces.emplace_back(hardware_interface::CommandInterface(
56-
info_.joints[HANDE_LEFT_FINGER_JOINT_ID].name, hardware_interface::HW_IF_POSITION, &cmd_position_));
58+
info_.joints[LEFT_FINGER_JOINT_ID].name, hardware_interface::HW_IF_POSITION, &cmd_position_));
5759

5860
RCLCPP_INFO(get_logger(), "export_command_interfaces()");
5961
return command_interfaces;
@@ -85,30 +87,12 @@ HWI::CallbackReturn RobotiqHandeHardwareInterface::on_error(const rlccp_lc::Stat
8587

8688
HWI::return_type RobotiqHandeHardwareInterface::read(const rclcpp::Time& /*time*/,
8789
const rclcpp::Duration& /*period*/) {
88-
std::stringstream ss;
89-
ss << "Reading states:";
90-
91-
//TODO: auto data = driver_->receive_data();
92-
auto data = true;
93-
if (data) {
94-
state_position_ = 0.015;
95-
}
96-
97-
ss << std::fixed << std::setprecision(2) << std::endl
98-
<< "\t Position: " << state_position_ << " m for joint '" << info_.joints[HANDE_LEFT_FINGER_JOINT_ID].name << "'";
99-
RCLCPP_INFO_THROTTLE(get_logger(), *get_clock(), 500, "%s", ss.str().c_str());
90+
//TODO: data = driver_->receive_data();
10091
return hardware_interface::return_type::OK;
10192
}
10293
HWI::return_type RobotiqHandeHardwareInterface::write(const rclcpp::Time& /*time*/,
10394
const rclcpp::Duration& /*period*/) {
104-
std::stringstream ss;
105-
ss << "Writing commands:";
106-
10795
//TODO: driver_->send_data(cmd_position_);
108-
ss << std::fixed << std::setprecision(2) << std::endl
109-
<< "\t Target position:" << cmd_position_ << " m for joint '" << info_.joints[HANDE_LEFT_FINGER_JOINT_ID].name << "'";
110-
111-
RCLCPP_INFO_THROTTLE(get_logger(), *get_clock(), 500, "%s", ss.str().c_str());
11296
return hardware_interface::return_type::OK;
11397
}
11498

0 commit comments

Comments
 (0)