当前位置: 首页 > news >正文

ROS第一个程序——helloworld

目录

一、工作空间的创建

1.创建工作空间并初始化

2.进入 src 创建 ros 包并添加依赖

二、C++实现helloworld

C++源码实现

 编辑 ros 包下的 Cmakelist.txt文件

进入工作空间目录并编译 

执行 

三、python实现helloworld

进入 ros 包添加 scripts 目录并编辑 python 文件

新建 python 文件 

为 python 文件添加可执行权限

编辑 ros 包下的 CamkeList.txt 文件

进入工作空间目录并编译

执行


一、工作空间的创建

1.创建工作空间并初始化

mkdir -p 自定义空间名称/src
cd 自定义空间名称
catkin_make

        首先会创建一个工作空间以及一个 src 子目录,然后再进入工作空间调用 catkin_make命令编译。 

2.进入 src 创建 ros 包并添加依赖

cd src
catkin_create_pkg 自定义ROS包名 roscpp rospy std_msgs

        上述命令,会在工作空间下生成一个功能包,该功能包依赖于 roscpp、rospy 与 std_msgs,其中roscpp是使用C++实现的库,而rospy则是使用python实现的库,std_msgs是标准消息库,创建ROS功能包时,一般都会依赖这三个库实现。 

二、C++实现helloworld

cd 自定义的包

C++源码实现

#include "ros/ros.h"int main(int argc, char *argv[])
{//执行 ros 节点初始化ros::init(argc,argv,"hello");//创建 ros 节点句柄(非必须)ros::NodeHandle n;//控制台输出 hello worldROS_INFO("hello world!");return 0;
}

 编辑 ros 包下的 Cmakelist.txt文件

add_executable(步骤3的源文件名src/步骤3的源文件名.cpp
)
target_link_libraries(步骤3的源文件名${catkin_LIBRARIES}
)

 

进入工作空间目录并编译 

cd 自定义空间名称
catkin_make

执行 

先启动命令行1:
roscore
再启动命令行2:
cd 工作空间
source ./devel/setup.bash
rosrun 包名 C++节点

 

三、python实现helloworld

进入 ros 包添加 scripts 目录并编辑 python 文件

cd ros包
mkdir scripts

新建 python 文件 

#! /usr/bin/env pythonimport rospyif __name__ == "__main__":rospy.init_node("Hello")rospy.loginfo("Hello World!!!!")

为 python 文件添加可执行权限

chmod +x 自定义文件名.py

编辑 ros 包下的 CamkeList.txt 文件

catkin_install_python(PROGRAMS scripts/自定义文件名.pyDESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)

 

进入工作空间目录并编译

先启动命令行1:
roscore
再启动命令行2:
cd 工作空间
source ./devel/setup.bash
rosrun 包名 自定义文件名.py

执行

http://www.lryc.cn/news/252167.html

相关文章:

  • 【Python 训练营】N_17 冒泡排序
  • 虚拟机docker中的Nginx部署
  • 06、pytest将多个测试放在一个类中
  • 实体类转SQL工具类
  • 高端制造业中的通用性超精密3D光学测量仪器
  • 微信公众号非静默授权获取头像和昵称
  • Java项目学生管理系统四编辑学生
  • 不同数据库进行同步和增量数据(SQL server 与MySQL数据库为例)
  • 国内的几款强大的AI智能—AI语言模型
  • linux下恶意软件的七种反分析技术
  • Spring Security OAuth2 认证服务器自定义异常处理
  • selenium环境安装
  • (C++)和为s的两个数字--双指针算法
  • 鸿蒙(HarmonyOS)应用开发——构建页面(题目答案)
  • Python基础快速过一遍
  • 等保测评报价相差很大,里面有什么门道
  • MATLAB的rvctools工具箱熟悉运动学【机械臂机器人示例】
  • 如何精准操作无人机自动停机坪?
  • 【蓝桥杯】带分数
  • 软件工程 课堂测验 选择填空
  • 计算机网络的分类
  • 百度收录批量查询工具,免费SEO优化排名工具
  • select选择框里填充图片,下拉选项带图片
  • 轨道交通数字孪生可视化平台,助力城市交通运营智慧化
  • 【每日OJ —— 101. 对称二叉树】
  • 善网商城上线洁柔产品 公益人专享爱心价官方正品
  • 禁止谷歌浏览器自动更新
  • Oracle存储过程返回DataSet(多个DataTable)给C#
  • 如何往excel中写子表?
  • Flutter 控件查阅清单