mia_hand_ros_control  rel 1.0.0
Mia_hw_node.cpp
Go to the documentation of this file.
1 #include "ros/ros.h"
2 #include "std_msgs/String.h"
3 #include "std_msgs/Float64.h"
4 
5 #include <vector>
6 
7 #include <iostream>
8 #include <ros/ros.h>
10 #include <controller_manager/controller_manager.h>
11 
12 
17 int main(int argc, char **argv)
18 {
19 
20 
21  ros::init(argc, argv, "Mia_hw_node");
22 
23 
24  // Get frequency as parameter
25  int fs_rate;
26  if (ros::param::has("~Mia_fs_"))
27  {
28  ros::param::get("~Mia_fs_", fs_rate);
29  }
30  else
31  {
32  fs_rate = 20; // default value
33  ros::param::set("~Mia_fs_", fs_rate);
34 
35  }
36 
37  ros::AsyncSpinner spinner(1);
38  spinner.start();
39 
40  ros::NodeHandle nh;
41 
43 
44  bool init_success = mia_hw.init(nh,nh);
45 
46  if (!init_success)
47  {
48  ROS_ERROR_NAMED("Mia_hw_node", "Error initializing mia_hw_interface.\n");
49  ros::shutdown();
50  }
51 
52  controller_manager::ControllerManager cm(&mia_hw,nh);
53 
54  ros::Rate rate(20); // 20Hz update rate
55 
56  ROS_INFO_NAMED("Mia_hw_node","Mia_hw_interface started");
57 
58  // Start control loop
59  while(ros::ok())
60  {
61  mia_hw.read (ros::Time::now(), rate.expectedCycleTime());
62  cm.update (ros::Time::now(), rate.expectedCycleTime());
63  mia_hw.write(ros::Time::now(), rate.expectedCycleTime());
64  rate.sleep();
65  }
66 
67  spinner.stop();
68  return 0;
69 }
mia_hand::MiaHWInterface::read
void read(const ros::Time &time, const ros::Duration &duration) override
Read state data from the real robot hardware.
Definition: mia_hw_interface.cpp:351
main
int main(int argc, char **argv)
Mia Hand hardware control loop Main of the ROS node used to control the real Mia hand.
Definition: Mia_hw_node.cpp:17
mia_hand::MiaHWInterface::init
bool init(ros::NodeHandle &root_nh, ros::NodeHandle &mia_hw_nh) override
Initialize the class hardware interface and the robot hardware.
Definition: mia_hw_interface.cpp:60
mia_hand::MiaHWInterface::write
void write(const ros::Time &time, const ros::Duration &duration) override
Write data command to the real robot hardware.
Definition: mia_hw_interface.cpp:396
mia_hand::MiaHWInterface
Class hardware interface of the real Mia hand.
Definition: mia_hw_interface.h:77
mia_hw_interface.h