ROS探索(6)——C++控制SmartCar

来源:互联网 发布:mac flac播放器 编辑:程序博客网 时间:2024/06/06 19:54

由于Python是一种脚本语言,时效性不是很好不利于嵌入式系统的开发,因此我们需要时效性更好的 c 或 cpp 作为开发语言。,在上一节中使用Python实现了对SmartCar的控制,这一节将会把上一节使用的 Python 语言转化为 C++ 语言。

新建工程包:

catkin_create_pkg smartcar_cpp rospy geometry_msgs std_msgs roscpp
在该包目录下的src文件夹下创建CPP文件 smart_op.cpp,内容如下:

#include <boost/thread/thread.hpp>#include <ros/ros.h>#include <geometry_msgs/Twist.h>int main(int argc, char **argv){  ros::init(argc, argv, "smartcar_cpp_node");  geometry_msgs::Twist cmdvel_;  ros::NodeHandle n_;  ros::Publisher pub_;  ros::Rate loop_rate(10);  pub_ = n_.advertise<geometry_msgs::Twist>("cmd_vel", 1);  cmdvel_.linear.x = 0.2;  cmdvel_.angular.z = 0.5;  while (ros::ok()){    pub_.publish(cmdvel_);    ros::spinOnce();    loop_rate.sleep();  }  return 0;}
更改包目录下的CMakeLists文件,更改部分(去掉对应注释即可,直接添加也行):

## Declare a C++ executableadd_executable(smartcar_cpp_node src/smart_op.cpp)## Specify libraries to link a library or executable target against target_link_libraries(smartcar_cpp_node   ${catkin_LIBRARIES} )
在工作区间根目录下编译运行,将会在~/catkin_ws/devel/lib/<package name>目录下生成对应的可执行文件

cd ~/catkin_wscatkin_make

打开ROS探索(4)使用到的自定义机器人SmartCar,打开一个新终端,执行:

$ source catkin_ws/devel/setup.bash$ rosrun smartcar_cpp smartcar_cpp_node

参考:

http://wiki.ros.org/roscpp/Overview/Initialization%20and%20Shutdown

http://wiki.ros.org/ROS/Tutorials/WritingPublisherSubscriber%28c%2B%2B%29


0 0
原创粉丝点击