怎么设置irobotcreate 底座与电脑的串行通信
今天,我们来一起看看利用ROS来控制iRobot?Create底盘。 ? 一、遥控控制 这部分请参考:Exbot?xi开发札记(一)Exbot?xi测试 二、通过编写node代码控制 先上代码: 010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869#include#includeros::Publisher?cmdVelPub;#include?ros::Publish...全部
今天,我们来一起看看利用ROS来控制iRobot?Create底盘。 ? 一、遥控控制 这部分请参考:Exbot?xi开发札记(一)Exbot?xi测试 二、通过编写node代码控制 先上代码: 010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869#include#includeros::Publisher?cmdVelPub;#include?ros::Publisher?cmdVelPub;?void?shutdown(int?sig){????cmdVelPub。
publish(geometry_msgs::Twist());????ROS_INFO("exbot?example?move?cpp?ended!");????ros::shutdown();}?int?main(int?argc,?char?**argv){????ros::init(argc,?argv,?"exbotxi_example_move");????std::string?topic?=?"cmd_vel";????ros::NodeHandle?node;????cmdVelPub?=?node。
advertise(topic,?1);????ros::Rate?loopRate(50);????signal(SIGINT,?shutdown);????ROS_INFO("exbot_example_move?cpp?start。
。。");?????int?rate?=?50;????double?linear_speed?=?0。2;????double?goal_distance?=?1。0;????double?linear_duration?=?goal_distance?/?linear_speed;?????double?angular_speed?=?1。
0;????double?goal_angle?=?3。14/?2。0;????double?angular_duration?=?goal_angle?/?angular_speed;?????geometry_msgs::Twist?speed;????//while(ros::ok())????for(int?i=0;?i#include#include 一些头文件,geometry_msgs/Twist。
h中包含了底盘的线速度和角速度信息。 1234567ros::init(argc,?argv,?"exbotxi_example_move");?//初始化ROSstd::string?topic?=?"cmd_vel";?//主题名字ros::NodeHandle?node;?//定义节点cmdVelPub?=?node。
advertise(topic,?1);?//发布geometry_msgs::Twist消息ros::Rate?loopRate(50);signal(SIGINT,?shutdown);?//用来接收Ctrl-C,退出程序的运行。
ROS_INFO("exbot_example_move?cpp?start。。。"); 12345678int?rate?=?50;double?linear_speed?=?0。2;double?goal_distance?=?1。
0;double?linear_duration?=?goal_distance?/?linear_speed;?double?angular_speed?=?1。0;double?goal_angle?=?3。
14/?2。0;double?angular_duration?=?goal_angle?/?angular_speed; 这里定义了行走的线速度以及角速度。 1geometry_msgs::Twist?speed; 用来发布速度信息。
0102030405060708091011121314151617181920212223242526272829303132for(int?i=0;?i这里,设置好线速度和角速度后,将speed发布出去,让iRobot?Create可以接收到。
这里向前行走1。0m,旋转180。0度,执行一遍。 上面就是代码的简单解释,其实ROS的核心就是pub/sub机制,一个节点publish主题,另一个节点subscribe它。 这样实现消息的传递。
后面我会将代码上传到github上,这样大家就可以下载下来直接在Exbot?xi上面跑了。 Written?by?Exbot_玄影游侠, 转载请注明出处。收起