ros笔记——发布者Publisher的编程实现

本文档详细介绍了如何在Ubuntu环境下创建ROS工作空间,包括创建工作空间、编译工作空间、创建包、配置环境变量、编写并编译C++节点代码。最后,演示了如何执行自定义节点,整个过程适合初学者了解ROS的基础操作。
摘要由CSDN通过智能技术生成

一、工作空间创建

1.创建工作空间

ll@ll-ThinkPad-P15-Gen-1:~$ mkdir myRosWorkSpace
ll@ll-ThinkPad-P15-Gen-1:~$ cd myRosWorkSpace
ll@ll-ThinkPad-P15-Gen-1:~/myRosWorkSpace$ mkdir src
ll@ll-ThinkPad-P15-Gen-1:~/myRosWorkSpace$ cd src
ll@ll-ThinkPad-P15-Gen-1:~/myRosWorkSpace/src$ catkin_init_workspace

核心命令:catkin_init_workspace,在src文件夹

2.编译工作空间

ll@ll-ThinkPad-P15-Gen-1:~/myRosWorkSpace/src$ cd ../
ll@ll-ThinkPad-P15-Gen-1:~/myRosWorkSpace$ catkin_make

#创建install目录,可选作
ll@ll-ThinkPad-P15-Gen-1:~/myRosWorkSpace$ catkin_make install

核心命令:catkin_make,在工作空间目录下

二、包创建

1.创建包

ll@ll-ThinkPad-P15-Gen-1:~/myRosWorkSpace/src$ catkin_create_pkg myCmdVel std_msgs roscpp rospy geometry_msgs
ll@ll-ThinkPad-P15-Gen-1:~/myRosWorkSpace/src$ cd ../
ll@ll-ThinkPad-P15-Gen-1:~/myRosWorkSpace$ catkin_make

2.配置source

ll@ll-ThinkPad-P15-Gen-1:~$ sudo vim .bashrc

在末尾加入

source /home/ll/myRosWorkSpace/devel/setup.bash

3.在包目录下的src目录里加入代码

用vscode 打开包目录,并插入代码

#include<ros/ros.h>
#include<geometry_msgs/Twist.h>
#include<iostream>

int main(int argc,char **argv){
    //初始化ros
    ros::init(argc,argv,"myCmdVelNode");
    //初始化node
    ros::NodeHandle node;
    //初始化publisher
    ros::Publisher publisher=node.advertise<geometry_msgs::Twist>("/turtle1/cmd_vel",100);
    //初始化频率
    ros::Rate rate(5);

    double linear_x=0;
    double angular_z=0;

    std::cout<<"input linear_x>";
    std::cin>>linear_x;

    std::cout<<"input angular_z>";
    std::cin>>angular_z;

    while (ros::ok()&&linear_x!=0&&angular_z!=0)
    {
        /* code */
        //设置信息
        geometry_msgs::Twist twist;
        twist.linear.x=linear_x;
        twist.angular.z=angular_z;
        //发布信息
        publisher.publish(twist);

        //ROS_INFO("")
        rate.sleep();
    }
    

    return 0;
}

4.修改编译设置

打开包目录下src文件里的CMakeLists.txt文件,在155行左右的位置加入如下代码:

add_executable(main src/main.cpp)
target_link_libraries(main ${catkin_LIBRARIES})

保证make时能编译自定义cpp文件

5.编译cpp

切换到工作空间目录,输入catkin_make指令即可

ll@ll-ThinkPad-P15-Gen-1:~/myRosWorkSpace$ catkin_make

三、执行该节点

ll@ll-ThinkPad-P15-Gen-1:~/myRosWorkSpace$ rosrun myCmdVel main
rosrun <包名> <节点名>

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_ZhouTao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值