您的位置:首页 > 编程语言 > C语言/C++

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

2016-05-26 22:16 281 查看
由于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++ executable
add_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_ws
catkin_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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ROS CPP