ROS入门保姆级教程:1-hello world初体验

首先感谢古月居、赵虚左老师,感谢autolabor平台带我入门。
链接:
古月居
赵虚左老师:
学习讲义
视频课程

学习前提

基于操作系统Linux,编程语言C++或Python完成
需要安装Linux(Ubuntu)系统,安装ROS(祝顺利【狗头】),安装IDE等工具,具体方式可参考赵虚左老师的视频与讲义内容。

ROS体验流程

ROS中的程序即便使用不同的编程语言,实现流程也大致类似,实现流程大致如下:
1)先创建一个工作空间;
2)再创建一个功能包;
3)编辑源文件;
4)编辑配置文件;
5)编译并执行。

我把流程简单整理如下(供参考)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

C++实现

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

mkdir -p 【ros_ws_name】/src
//创建工作空间,及工作空间的子目录
cd 【ros_ws_name】
catkin_make
//对工作空间做编译初始化,若工作空间无【src】子目录则无法初始化
//此编译在工作空间产生了build与devel子目录

2.创建ROS包并添加依赖

cd src
catkin_create_pkg 【rospkg_name】 roscpp rospy std_msgs
//在工作空间中创建【自定ROS包名】的功能包,该功能包依赖于 roscpp、rospy 与 std_msgs,其中roscpp是使用C++实现的库,而rospy则是使用python实现的库,std_msgs是标准消息库,创建ROS功能包时,一般都会依赖这三个库实现。
//此命令创建了包名对应的子目录,其中包括【src】子目录及配置文件等

3.编辑源文件步骤

cd /【ros_ws_name】/src/【rospkg_name】/src
//进入自定义功能包之下的【src】子目录中
touch cpp_file_name.cpp  (或gedit cpp_file_name.cpp)
//创建并编辑源文件【.cpp文件】

4.编辑C++源文件

#include "ros/ros.h"
//包含ros头文件
int main(int argc, char *argv[])
//编写ros的main函数
{
	ros::init(argc, argv, "node_name_demo1");
  //初始化ros节点
	ROS_INFO("hello world!");
  //输出日志
	return 0;
}

5.编辑ROS包下的配置文件CamkeList.txt

cd ..
//进入【自定ROS包名】目录

gedit CamkeList.txt

//添加可执行文件
add_executable(ros_node_name(cpp_file_name)】
  src/【cpp_file_name.cpp】
)

//修改目标链接库
target_link_libraries(ros_node_name(cpp_file_name)】
  ${catkin_LIBRARIES}
)

6.进入工作空间与编译

cd 【ros_ws_name】
catkin_make

7.执行

roscore
//需要新terminal启动ros核心
cd 【ros_ws_name】
source ./devel/setup.bash
//刷新环境变量
rosrun 【rospkg_name】 【ros_node_name】
//运行

Python实现

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

mkdir -p 【ros_ws_name】/src
//创建工作空间,及工作空间的子目录
cd 【ros_ws_name】
catkin_make
//对工作空间做编译初始化,若工作空间无【src】子目录则无法初始化
//此编译在工作空间产生了build与devel子目录

2.创建ROS包并添加依赖

cd src
catkin_create_pkg 【rospkg_name】 roscpp rospy std_msgs
//在工作空间中创建【自定ROS包名】的功能包,该功能包依赖于 roscpp、rospy 与 std_msgs,其中roscpp是使用C++实现的库,而rospy则是使用python实现的库,std_msgs是标准消息库,创建ROS功能包时,一般都会依赖这三个库实现。
//此命令创建了包名对应的子目录,其中包括【src】子目录及配置文件等

3.编辑源文件步骤

cd  /【ros_ws_name】/src/【rospkg_name】
//进入自定义功能包之下
mkdir scripts
//创建scripts文件夹
cd scripts
touch python_file_name.py  (gedit python_file_name.py)
//创建并编辑源文件【.py文件】

4.编辑Python源文件

#! /usr/bin/env python
# 在非注释的第一行指定Python解释器

import rospy
#导包

if __name__ == “__main__”:
#编写主入口
	rospy.init_node(“node_name”)
  #初始化ros节点
	rospy.loginfo("hello world!")
  #输出日志

5.为 python 文件添加可执行权限

chmod +x 【python_file_name.py】
// ll指令可查看权限

6.编辑ROS包下的配置文件CamkeList.txt
该操作在ROS的melodic及之前版本上不需要

cd ..
//进入【自定ROS包名】目录

gedit CamkeList.txt

//指定Python解释器
catkin_install_python(PROGRAMS 
scripts/【python_file_name.py】
  DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
//该操作为Python文件选择恰当的解释器
//该操作在ROS的melodic及之前版本上不需要

7.进入工作空间与编译

cd 【ros_ws_name】
catkin_make

8.执行

roscore
//需要新terminal启动ros核心
cd 【ros_ws_name】
source ./devel/setup.bash
//刷新环境变量
rosrun 【rospkg_name】 【python_file_name.py】
//运行

如有误请指正,感谢!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值