![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
added broadcaster for l.mouse
Dependencies: QEI mbed ros_lib_kinetic
Fork of Mouse_ISR_broadcaster by
main.cpp
- Committer:
- sreeraj
- Date:
- 2018-08-17
- Revision:
- 10:52f59f5a9b7d
- Parent:
- 9:e705f028f853
File content as of revision 10:52f59f5a9b7d:
#include "mbed.h" #include "QEI.h" #include "ros.h" #include "ros/time.h" #include <tf/tf.h> #include <math.h> #include "geometry_msgs/Quaternion.h" #include "geometry_msgs/Vector3.h" #include "iostream" #include "std_msgs/Float64.h" ros::NodeHandle nh; //PINA / PINB / INDEXPIN / PPR / ENCODING (X2 BY DEFAULT) QEI leftX(D4, D5, NC, 378,QEI::X2_ENCODING); QEI leftY(D10, D11, NC, 378,QEI::X2_ENCODING); QEI rightX(D0, D1, NC, 378,QEI::X2_ENCODING); QEI rightY(D2, D3, NC, 378,QEI::X2_ENCODING); geometry_msgs::Quaternion wheelMsg; ros::Publisher wheelPub("/odom_msg", &wheelMsg); std_msgs::Float64 lwheelMsg; ros::Publisher lwheelPub("/Lodom_msg", &lwheelMsg); std_msgs::Float64 rwheelMsg; ros::Publisher rwheelPub("/Rodom_msg", &rwheelMsg); //rosserial does not like volatile ints int leftPosX=0; int leftPosY=0; int rightPosX=0; int rightPosY=0; int main(){ nh.initNode(); nh.advertise(wheelPub); nh.advertise(lwheelPub); nh.advertise(rwheelPub); while(true){ leftPosX = leftX.getPulses(); leftPosY = leftY.getPulses(); rightPosX = rightX.getPulses(); rightPosY = rightY.getPulses(); wheelMsg.x= leftPosX/10; wheelMsg.y = leftPosY/10; wheelMsg.z = rightPosX/10; wheelMsg.w = rightPosY/10; lwheelMsg.data=wheelMsg.y; rwheelMsg.data= wheelMsg.w; //lwheelMsg.data= (sqrt(pow((wheelMsg.x),2)+pow((wheelMsg.y),2))); //rwheelMsg.data= sqrt(pow(wheelMsg.z,2)+pow(wheelMsg.w,2)); wheelPub.publish(&wheelMsg); lwheelPub.publish(&lwheelMsg); rwheelPub.publish(&rwheelMsg); nh.spinOnce(); wait(.35); } }