ROS入门:小海龟实验
2024-09-04 15:53:34
1.初试小海龟
1.roscore
2.rosrun turtlesim turtlesim_node
3.rosrun turtlesim turtle_teleop_key
2.发布话题控制小海龟
1.创建功能包
catkin_create_pkg turtle_control geometry_msgs rospy roscpp
2.编写turtle_control.cpp
#include "ros/ros.h"
#include "geometry_msgs/Twist.h"
int main(int argc, char** argv)
{
ros::init(argc,argv,"turtle_control_node");
ros::NodeHandle nh;
ros::Publisher pub = nh.advertise<geometry_msgs::Twist>("/turtle1/cmd_vel",1000);
ros::Rate loop_rate(10);
geometry_msgs::Twist pub_date;
while( ros::ok() )
{
pub_date.linear.x = 0.5;
pub_date.linear.y = 0.0;
pub_date.linear.z = 0.0;
pub_date.angular.x = 0;
pub_date.angular.y = 0;
pub_date.angular.z = 0;
pub.publish(pub_date);
ros::spinOnce();
loop_rate.sleep();
}
return 0;
}
3.package.xml主要依赖
<buildtool_depend>catkin</buildtool_depend>
<build_depend>roscpp</build_depend>
<build_depend>rospy</build_depend>
<build_depend>geometry_msg</build_depend>
<build_export_depend>roscpp</build_export_depend>
<build_export_depend>rospy</build_export_depend>
<build_export_depend>geometry_msg</build_export_depend>
<exec_depend>roscpp</exec_depend>
<exec_depend>rospy</exec_depend>
<exec_depend>geometry_msg</exec_depend>
4.修改CMakeLists.txt
find_package(catkin REQUIRED COMPONENTS
roscpp
rospy
geometry_msgs
)
include_directories(
${catkin_INCLUDE_DIRS}
)
add_executable(${PROJECT_NAME}_node
${PROJECT_NAME}_node.cpp
)
target_link_libraries(${PROJECT_NAME}_node
${catkin_LIBRARIES}
)
最新文章
- JavaScript笔记:对象及数组
- 【linux】学习4
- 菜鸟教程之工具使用(十一)——Eclipse去掉未使用的引用
- Django Push HTTP Response to users
- C#设计模式——装饰者模式(Decorator Pattern)
- 【转】IntelliJ IDEA内存优化最佳实践
- Scrum中的User Story
- 【HDU1402】【FFT】A * B Problem Plus
- unity3d 2d游戏制作的模式
- asp.net Login控件基本属性及事件说明
- 深入浅出了解frame和bounds
- 使用jedis客户端连接redis,单机版和集群版
- linux存储管理之交换分区
- 位运算 - a^b
- GPXReader工具代码简析
- UVA 11426 GCD - Extreme (II) (欧拉函数)题解
- 基于Java的四大开源测试工具
- 基于.Net实现前端对话框和消息框
- postgresql 表空间创建、删除
- JVM调优总结(2):基本垃圾回收算法