ROS入门(二)——第一个小程序helloworld

所用的学习链接:

【奥特学园】ROS机器人入门课程《ROS理论与实践》零基础教程P19-22

【以上视频笔记见http://www.autolabor.com.cn/book/ROSTutorials/】

一、C++代码

1、编译

(1)打开终端控制台

# 总目录将生成一个7.11_demo1文件夹
# mkdir -p 空间名称/src
mkdir -p 7.11_demo1/src

# 切换目录
cd 7.11_demo1/

# 初始化环境
catkin_make

# 进入下一级目录
cd src/

# catkin_create_pkg ROS包名 roscpp rospy std_msgs
catkin_create_pkg hello roscpp rospy std_msgs

ROS入门(二)——第一个小程序helloworld_第1张图片

(2)由主目录进入:7.11_demo1→src→hello→src,新建一个文本文件,重命名为c++文件名xxx.cpp(例:hello_c.cpp),打开编辑,加入以下内容

//1.包含 ros 的头文件
#include "ros/ros.h"

//2.编写 main 函数
int main(int argc, char *argv[]){
	//3.初始化 ros 节点
	ros::init(argc,argv,"hello_node");
	//输出日志
	ROS_INFO("hello world!");
	return 0;
}

【快捷新建文本文件方法参见Ubuntu——小技巧第一点】

ROS入门(二)——第一个小程序helloworld_第2张图片

 ROS入门(二)——第一个小程序helloworld_第3张图片

(3)在ROS包名路径下(7.11_demo1/src/hello)打开CMakeLists.txt文件编辑,修改两个地方

# add_executable(${PROJECT_NAME}_node src/hello_node.cpp)修改为
# add_executable(自定义 src/文本文件名)
add_executable(hi src/hello_c.cpp)  # 将可执行cpp文件名映射为hi

# target_link_libraries(${PROJECT_NAME}_node
#   ${catkin_LIBRARIES}
# )
# 修改为
target_link_libraries(hi   
  ${catkin_LIBRARIES}
)

ROS入门(二)——第一个小程序helloworld_第4张图片2、执行

(1)返回空间名称路径下,打开终端,运行

# cd /home/netceor_ros/7.11_demo1
catkin_make

ROS入门(二)——第一个小程序helloworld_第5张图片

 出现上图字样即创建完成

(2)打开一个新的控制台2(旧的不关,旧的为控制台1)

roscore

启动核心

ROS入门(二)——第一个小程序helloworld_第6张图片

(3)在控制台1输入

# 初始化环境变量
source ./devel/setup.bash

# 执行
# rosrun ROS包名 可执行代码文件
# 由于前面将文件映射为hi,因此不用写全名
rosrun hello hi

 将会输出

 3、全窗口可运行 

但此时只能在旧的窗口执行该程序,如果打开新的窗口运行rosrun hello hi,将会报错找不到。

如果想在所有窗口都可以运行,就有两种方式

(1)直接使用 gedit 或 vi 编辑 .bashrc 文件

在主目录ctrl+H,显示所有隐藏文件,编辑.bashrc文件,在内容source /opt/ros/noetic/setup.bash后加入以下代码,相当于配置环境变量

source ~/7.11_demo1/devel/setup.bash

此时打开一个新终端也可以执行了

ROS入门(二)——第一个小程序helloworld_第7张图片

(2)控制台输入

打开一个终端

# echo "source ~/工作空间/devel/setup.bash" >> ~/.bashrc
echo "source ~7.11_demo1/devel/setup.bash" >> ~/.bashrc

二、python代码

在第一板块创建的基础上继续构建python项目

(1)在7.11_demo1/src/hello目录下创建scripts文件夹

ROS入门(二)——第一个小程序helloworld_第8张图片

 (2)进入scripts文件夹,创建文本文件hello_p.py,写入

#! /usr/bin/env python
##指定解释器
# 导包
import rospy
# 主入口
if __name__ == "__main__":
	# 初始化
	rospy.init_node("Hello")
	# 输出
	rospy.loginfo("Hello World!!!!")

(3)在该目录下打开终端,为 python 文件添加可执行权限

# chmod +x 自定义文件名.py
chmod +x hello_p.py

ROS入门(二)——第一个小程序helloworld_第9张图片

 (4)在ROS包名路径下(7.11_demo1/src/hello)打开CMakeLists.txt文件编辑,修改两个地方

# catkin_install_python(PROGRAMS
#   scripts/my_python_script
#   DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
# )
# 为python文件选择恰当解释器
catkin_install_python(PROGRAMS
  scripts/hello_p.py
  DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)

 (5)执行过程同C++

打开一个新的控制台

roscore

启动核心后在旧控制台输入

# 初始化环境变量
source ./devel/setup.bash

# 执行
# rosrun ROS包名 可执行代码文件
rosrun hello hello_p.py

你可能感兴趣的:(ROS入门,ROS,ubuntu,linux)