所用的学习链接:
【奥特学园】ROS机器人入门课程《ROS理论与实践》零基础教程P19-22
【以上视频笔记见http://www.autolabor.com.cn/book/ROSTutorials/】
(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
(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——小技巧第一点】
(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}
)
(1)返回空间名称路径下,打开终端,运行
# cd /home/netceor_ros/7.11_demo1
catkin_make
出现上图字样即创建完成
(2)打开一个新的控制台2(旧的不关,旧的为控制台1)
roscore
启动核心
(3)在控制台1输入
# 初始化环境变量
source ./devel/setup.bash
# 执行
# rosrun ROS包名 可执行代码文件
# 由于前面将文件映射为hi,因此不用写全名
rosrun hello hi
将会输出
但此时只能在旧的窗口执行该程序,如果打开新的窗口运行rosrun hello hi,将会报错找不到。
如果想在所有窗口都可以运行,就有两种方式
(1)直接使用 gedit 或 vi 编辑 .bashrc 文件
在主目录ctrl+H,显示所有隐藏文件,编辑.bashrc文件,在内容source /opt/ros/noetic/setup.bash后加入以下代码,相当于配置环境变量
source ~/7.11_demo1/devel/setup.bash
此时打开一个新终端也可以执行了
(2)控制台输入
打开一个终端
# echo "source ~/工作空间/devel/setup.bash" >> ~/.bashrc
echo "source ~7.11_demo1/devel/setup.bash" >> ~/.bashrc
在第一板块创建的基础上继续构建python项目
(1)在7.11_demo1/src/hello目录下创建scripts文件夹
(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
(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