ROS+mbed 訂閱者
阿新 • • 發佈:2017-06-08
color pre posit out and spin digital top led
從ROS端如果要發送消息給mbed, 聰明的我知道了, 估計要用訂閱者, 讓mbed去訂閱一個制定的topic, 問題來了, 能否訂閱兩個topic? 稍後再試.
mbed上面是這樣的:
#include "mbed.h" #include <ros.h> #include <std_msgs/UInt16.h> ros::NodeHandle nh; //Servo servo(D8); DigitalOut myled(LED1); void servo_cb( const std_msgs::UInt16& cmd_msg) { //servo.position(cmd_msg.data);//set servo angle, should be from 0-180 myled = !myled; //toggle led } ros::Subscriber<std_msgs::UInt16> sub("servo", servo_cb); int main() { nh.initNode(); nh.subscribe(sub); while (1) { nh.spinOnce(); wait_ms(1); } }
ros這邊:
$ roscore $ rosrun rosserial_python serial_node.py _port:=/dev/ttyACM0 $ rostopic pub servo std_msgs/UInt16 <angle>
測試了一下, 多個訂閱者也是ok的, 不過會不會在ROS端看起來比較亂?
ROS+mbed 訂閱者