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
- ROS探索(6)——C++控制SmartCar
- ROS探索(5)——Python控制SmartCar
- ROS探索总结(七)——smartcar源码上传
- ROS探索总结(七)——smartcar源码上传
- ROS探索(3)——SmartCar模型搭建
- ROS探索(4)——SmartCar仿真
- ROS探索总结(七)(八)(九)——smartcar源码上传 键盘控制 操作杆控制
- (古月居)ROS探索总结(六)使用smartcar进行仿真使用smartcar进行仿真——INDIGO版修正
- ROS探索总结(五)——创建简单的机器人模型smartcar
- ROS探索总结(六)——使用smartcar进行仿真
- ROS探索总结(五)——创建简单的机器人模型smartcar
- ROS探索总结(六)——使用smartcar进行仿真
- ROS探索总结(五)——创建简单的机器人模型smartcar
- ROS探索总结(四)(五)(六)——简单的机器人仿真 创建简单的机器人模型smartcar 使用smartcar进行仿真
- 关于参考古月《ROS探索总结(五)——创建简单的机器人模型smartcar》在kinetic中实现总结
- ROS探索总结(八)——键盘控制
- ROS探索总结(九)——操作杆控制
- ROS探索总结(十)——语音控制
- MySQL性能优化的最佳20+条经验
- 从extern说开去(一)
- 判断两个矩形相交以及求出相交的区域
- 备份和恢复你的MySQL数据库
- windows下安装jdk及配置环境变量
- ROS探索(6)——C++控制SmartCar
- recyclerview导入到android studio中遇到的问题
- C# 从Resources资源中启动应用程序,应用程序简单加壳,导出Resources中的资源为文件
- 对计算机专业的一些思考
- Cannot proceed with delivery: an existing transporter instance is currently uploading this package
- C++学习笔记(二)
- sdutoj 3273 山东理工大学第七届acm校赛--经济节约
- Java基础-精确浮点:strictfp(strict float point)
- Android6.0短信获取