ROS与QT学习(四):qt_ros建立launch文件

(1)打开qt_ros:

$ qtcreator-ros

(2)采用前面导入ROS工程的方法(导入方法1导入方法2)导入一个工程;

(3)在该工程中添加beginner_tutorials包(参照qt_ros的初步使用);

(4)手动在beginner_tutorials文件夹下新建一个launch文件夹,与src文件夹并列,如下图所示:

(5)在qt_ros界面下,选中beginner_tutorials下的launch文件夹(如果launch文件夹没有显示出来可以重启下qt_ros),右键点击Add New...,在弹出的框中选择ROS->Basic launch file,点击choose,如下图所示:

(6)Name处填写chatter(则会生成一个chatter.launch文件),Path这一栏点保持不变,如下图所示:

(7)点击Next和Finish,可以看到在launch文件夹下生成了一个chatter.launch文件;

(8)打开chatter.launch文件,添加如下代码:

<launch>
    <node pkg="beginner_tutorials" name="talker" type="talker" />
</launch>

        这个代码的意思和rosrun beginner_tutorials talker一致,如果想把talker节点发布的信息打印到屏幕上,可以添加可选参数output="screen"(直接添加在type="talker"后面即可),即:

<launch>
    <node pkg="beginner_tutorials" name="talker" type="talker" output="screen" />
</launch>

(9)切换到Projects界面下,选中Build & Run下面的Desktop/Run,即Run Settings,如下图所示:

 (10)选择Add Run Step下面的ROS Launch Step,在Arguments一栏填写beginner_tutorials chatter.launch,前面为包名,后面为launch文件名;或者直接在Package和Target下分别找到包名和launch文件名,如下图所示:

(11)选中catkin_ws右键点击Run运行(或者左下角的绿色三角),便可以在ROS Terminals下看到talker节点运行的结果:

        启动launch文件后,节点talker相当于启动了,这时候运行$ rosrun beginner_tutorials listener便可以收到talker节点发过来的消息。

        PS:这里并不需要另外开启$ roscore终端(这是为啥?)

(12)当然如果不另外开启终端运行listener节点,查看listener节点的接收情况,则需要修改chatter.launch文件,如下:

<launch>
    <node pkg="beginner_tutorials" name="talker" type="talker" output="screen" />
    <node pkg="beginner_tutorials" name="listener" type="listener" output="screen" />
</launch>

 运行之后结果如下:

 

  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Qt可以通过ROS的网络通信协议与ROS机器人进行连接。具体步骤如下: 1. 安装ROS 首先需要在计算机上安装ROS,可以参考ROS官网的安装指南进行安装。 2. 创建ROS工作空间 使用catkin工具创建一个ROS工作空间,可以使用命令行或者在Qt中执行。在终端中输入以下命令: ``` mkdir -p ~/catkin_ws/src cd ~/catkin_ws/ catkin_make ``` 3. 创建ROS节点 在Qt中创建一个ROS节点,可以使用Qt ROS插件来实现。首先需要安装Qt ROS插件,可以在Qt Creator中打开插件管理器并搜索“ROS”,然后安装。 创建ROS节点后,需要将节点的名称和ROS主机的IP地址设置为相应的值。可以使用以下代码创建ROS节点: ``` #include <ros/ros.h> int main(int argc, char **argv) { ros::init(argc, argv, "qt_ros_node"); ros::NodeHandle nh; // do something here return 0; } ``` 4. 发布和订阅ROS主题 在Qt中,可以使用ROS的C++ API来发布和订阅ROS主题。可以使用以下代码示例来发布和订阅ROS主题: ``` #include <ros/ros.h> #include <std_msgs/String.h> int main(int argc, char **argv) { ros::init(argc, argv, "qt_ros_node"); ros::NodeHandle nh; ros::Publisher pub = nh.advertise<std_msgs::String>("my_topic", 1000); ros::Subscriber sub = nh.subscribe("my_topic", 1000, callback); ros::Rate loop_rate(10); while (ros::ok()) { std_msgs::String msg; msg.data = "Hello, ROS!"; pub.publish(msg); ros::spinOnce(); loop_rate.sleep(); } return 0; } void callback(const std_msgs::String::ConstPtr& msg) { ROS_INFO("I heard: [%s]", msg->data.c_str()); } ``` 5. 运行ROS节点 在完成以上步骤后,可以在Qt中编译和运行ROS节点。可以使用catkin工具构建ROS包和节点,然后在终端中运行ROS节点: ``` cd ~/catkin_ws/ catkin_make source devel/setup.bash rosrun my_package my_node ``` 在Qt中也可以直接运行ROS节点,可以使用Qt Creator中集成的ROS Launch插件来启动ROS节点。 以上就是Qt如何与ROS机器人进行连接的步骤。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值