ROS 发布者程序,控制小龟行走


#include <ros/ros.h>
#include <geometry_msgs/Twist.h>
#include <stdlib.h>

int main ( int argc , char ** argv ) {

ros::init (argc, argv, "publish_velocity") ;
ros::NodeHandle nh ;


ros::Publisher pub = nh.advertise <geometry_msgs::Twist >(
"turtle1/cmd_vel" , 1000 ) ;

srand(time(0));
ROS_INFO_STREAM( "Sending random velocity  : ") ;
ros::Rate rate(2) ;
while (ros::ok()) {

geometry_msgs::Twist msg;
msg.linear.x = double (rand()) / double (RAND_MAX);
msg.angular.z = 2*double ( rand())/double (RAND_MAX)-1;

pub.publish ( msg ) ;

// Send a message to rosout with the details .
ROS_INFO_STREAM( "Sending random velocity command : "
<< " linear=" << msg.linear.x
<< " angular=" << msg.angular.z) ;

// Wait untilit's time for another iterationet.
rate.sleep () ;
}
}

ros::Publisher pub = nh.advertise <geometry_msgs::Twist >(
"turtle1/cmd_vel" , 1000 ) ; 创建一个发布者

发布消息:

pub.publish ( msg ) ;

 

一.CMakeList.txt 中增加如下:

find_package(catkin REQUIRED COMPONENTS roscpp geometry_msgs)

catkin_package()

include_directories(include ${catkin_INCLUDE_DIRS})

add_executable(pubvel pubvel.cpp)
target_link_libraries(pubvel ${catkin_LIBRARIES})

二.package.xml 配置增加如下:

 <build_depend>roscpp</build_depend>
  <exec_depend>roscpp</exec_depend>
  <build_depend>geometry_msgs</build_depend>
  <exec_depend>geometry_msgs</exec_depend>

 

三。运行程序:

最后,我们已经准备好运行 pubvel 了。像往常一样, rosrun
可以做这个工作。
rosrun pubvel pubvel
同时,你可能想运行一个 turtlesim 模拟器,这样你就可以看
到海龟响应 pubvel 发布的运动命令:
rosrun turtlesim turtlesim_node

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值