1. ubuntu20.04 终端实现 ros的输出 (C++,Python)

本节对应赵虚左ROS书籍的1.3.1-->1.3.3

1)创建一个工作空间

2)创建一个功能包和导入依赖

3)编辑源文件

4)编辑配置文件

5)编译和执行

1)创建一个工作空间

bash 复制代码
mkdir -p catkin_ws/src
cd catkin_ws
catkin_make

2)创建一个功能包

bash 复制代码
cd src
catkin_create_pkg hello_ros rospy roscpp std_msgs

包名的首字母尽量不要大写,否则会报警告

3)编辑源文件

3.1) 编辑cpp文件

bash 复制代码
cd hello_ros/src
bash 复制代码
gedit hello_ros.cpp

在hello_ros.cpp中写入:

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

3.2) 编辑python文件

在工作空间下新建scripts文件夹,在scripts目录下新建python文件

cpp 复制代码
mkdir scripts
cd sripts
gedit hello_ros.py

在hello_ros.py 文件写入:

python 复制代码
#! /usr/bin/env python
import rospy

if __name__ =="__main__":
    rospy.init_node("Hello")
    rospy.loginfo("hello ros !!!")

给hello_ros.py 加权限

python 复制代码
chmod +x hello_ros.py

4)编辑配置文件

4.1)编辑cpp配置文件

编辑catkin_ws 包下的CMakeLists.txt (136行,149行)

cpp 复制代码
//136行 后面为cpp文件名,前面为自定义节点名(尽量和cpp文件名一样即可)
add_executable(hello_ros src/hello_ros.cpp)

//149行 hello_ros也为前面的节点名
 target_link_libraries(hello_ros
   ${catkin_LIBRARIES}
)

4.1)编辑python配置文件

编辑catkin_ws 包下的CMakeLists.txt (162行)

cpp 复制代码
//这里的scripts文件夹要创建,防止报错 
catkin_install_python(PROGRAMS
   scripts/hello_ros.py
   DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)

5)编译和执行

到工作空间目录下编译

cpp 复制代码
catkin_make

新建终端,

cpp 复制代码
roscore

启动roscore

5.1)cpp执行 rosrun <包名> <节点名>

cpp 复制代码
source ./devel/setup.bash
rosrun hello_ros hello_ros

5.2)python执行 rosrun <包名> <python文件名>

python 复制代码
source ./deve/setup.bash
rosrun hello_ros hello_ros.py
相关推荐
人机与认知实验室2 分钟前
<span class=“js_title_inner“>如何看待特斯拉第三代Optimus机器人?</span>
开发语言·javascript·机器人·ecmascript·unix
爱打代码的小林4 分钟前
用 PyTorch 实现 CBOW 模型
人工智能·pytorch·python
Deepoch5 分钟前
Deepoc具身模型开发板:让农业采摘机器人智能化升级更简单
人工智能·科技·农业·采摘机器人·农业机器人·deepoc·具身模型开发板
北巷`6 分钟前
大模型应用的模型架构和核心技术原理-以DeepSeek对话助手为例分析
人工智能
CDA数据分析师干货分享8 分钟前
【干货】CDA一级知识点拆解3:《CDA一级商业数据分析》第3章 商业数据分析框架
大数据·人工智能·数据挖掘·数据分析·cda证书·cda数据分析师
Coding茶水间8 分钟前
基于深度学习的花朵识别系统演示与介绍(YOLOv12/v11/v8/v5模型+Pyqt5界面+训练代码+数据集)
开发语言·人工智能·深度学习·yolo·目标检测·机器学习
GAOJ_K9 分钟前
滚柱导轨润滑周期预测
人工智能·科技·自动化·制造
致Great12 分钟前
Kimi K2.5技术报告解读:视觉-文本联合训练与并行智能体框架
人工智能
阿杰学AI12 分钟前
AI核心知识82——大语言模型之AI Value Alignment(简洁且通俗易懂版)
人工智能·ai·语言模型·自然语言处理·aigc·机械学习·ai价值观对齐
小镇cxy13 分钟前
OpenSpec 规范开发
人工智能·ai