Tetrapod Project
gait_controller_node.cpp
Go to the documentation of this file.
1 #include "ros/ros.h"
2 #include <ros/console.h>
5 
6 int main(int argc, char **argv)
7 {
8  int freq = 200;
9  double gait_period = 0.75;
10  //std::function<Vector3d(double)> f1 = [](double t) {return Eigen::Vector3d(-0.1*std::cos(2*M_PI*t), 0, -0.25 + 0.03*std::sin(2*M_PI*t));};
11 
12  //std::function<Vector3d(double)> f2 = [](double t) {return Eigen::Vector3d(-0.1*std::cos(2*M_PI*t + M_PI), 0, -0.25 + 0.03*std::sin(2*M_PI*t + M_PI));};
13 
14  std::function<Vector3d(double)> fl = [](double t) {return classicGait(t, Kinematics::frontLeft);};
15 
16  std::function<Vector3d(double)> fr = [](double t) {return classicGait(t, Kinematics::frontRight);};
17 
18  std::function<Vector3d(double)> rl = [](double t) {return classicGait(t, Kinematics::rearLeft);};
19 
20  std::function<Vector3d(double)> rr = [](double t) {return classicGait(t, Kinematics::rearRight);};
21  GaitController c(freq, gait_period, fl, fr, rl, rr);
22 
23  ros::Rate control_rate(freq);
24 
25  ROS_INFO("Started controller");
26 
27  c.waitForReadyToProceed();
28 
29  ROS_INFO("Got first ready_to_proceed");
30 
31  c.setInitialConfiguration();
32 
33  c.waitForReadyToProceed();
34 
35  while (ros::ok())
36  {
37  ros::spinOnce();
38  c.UpdateFeetReferences();
39  c.UpdateJointCommands();
40  c.sendJointPositionCommands();
41  c.increment();
42  control_rate.sleep();
43  }
44 
45  return 0;
46 }
int main(int argc, char **argv)
Eigen::Vector3d classicGait(double t, Kinematics::LegType leg)
Definition: gaits.cpp:27
Eigen::Vector3d Vector3d
Definition: kinematics.h:49