ROS实现机器人移动

开源项目

使用是github上六合机器人工坊的项目。

https://github.com/6-robot/wpr_simulation.git

机器人运动模型

运动模型如下所示:

ROS实现机器人移动_第1张图片

机器人运动的消息包:
ROS实现机器人移动_第2张图片
ROS实现机器人移动_第3张图片

ROS实现机器人移动_第4张图片
实现思路:
ROS实现机器人移动_第5张图片

为什么要使用/cmd_vel话题。因为这个是约定俗成的,项目中订阅的就是这个话题,否则无法订阅到主题或者更改项目的订阅者的源码

使用catkin_create_pkg 命令开具工具包,切换到catkin_ws下的src目录


  • catkin_create_pkg vel_pkg rospy roscpp geometry_msgs #要依赖于geometry_msgs消息包,之前是依赖于std_msgs标准信息包。

vel_node节点的cpp文件

#vel_node.cpp
#include
#include
int main(int argc, char *argv[])
{
    //初始化节点
    ros::init(argc,argv,"vel_node");
    ros::NodeHandle nh;
    ros::Publisher pub=nh.advertise<geometry_msgs::Twist>("/cmd_vel",10);
    //定义消息包
    geometry_msgs::Twist vel_msgs;
    vel_msgs.linear.x=0.2;
    vel_msgs.linear.y=0.3;
    vel_msgs.linear.z=0;
    vel_msgs.angular.x=0;
    vel_msgs.angular.y=0;
    vel_msgs.angular.z=0;

    ros::Rate r(30);
//开始持续发布消息
while(ros::ok())
{
    pub.publish(vel_msgs);
    r.sleep();

}
    
    return 0;
}

备注:Cmakelist.txt文件末尾加上,vscode的编译规则


add_executable(vel_node src/vel_node.cpp)
add_dependencies(vel_node KaTeX parse error: Expected '}', got 'EOF' at end of input: {{PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
target_link_libraries(vel_node
${catkin_LIBRARIES}
)


ROS实现机器人移动_第6张图片

成功运行
ROS实现机器人移动_第7张图片

你可能感兴趣的:(机器人)