机器人设计包含了
机器人操作系统 (Robot Operating System,ROS )
ROS设计目标
mkdir ./ros_work_space/src
# 初始化工作空间
catkin_init_spacce
# 返回 ros_work_space/src 编译该工作空间
catkin_make
hello ros
c++
程序创建包
# 在 创建好的工作空间 src 目录下 创建一个名为 helloros 的功能包 (roscpp rospy std_msgs为该功能包的依赖项)
catkin_create_pkg helloros roscpp rospy std_msgs
于该功能包的 src
目录下创建 c++
文件
touch helloros_c.cpp
编辑该 c++
文件 作为源程序
#include "ros/ros.h"
int main(int argc, char *argv[])
{
//执行 ros 节点初始化
ros::init(argc,argv,"hello");
//创建 ros 节点句柄(非必须)
ros::NodeHandle n;
//控制台输出 hello world
ROS_INFO("hello world!");
return 0;
}
编辑该功能包下 CMakeLists.txt
文件
# 找到136行的 去除注释符号 并修改为
add_executable(功能包名 src/helloros_c.cpp)
# 找到149行的函数 去除注释符号 并修改为
target_link_libraries(功能包名
${catkin_LIBRARIES}
)
返回工作空间目录下编译该工作空间
catkin_make
编译成功后,启动ros
核心
roscore
执行该功能包中的程序
# 添加环境变量
source ./devel/setup.bash
# 执行helloros包下的功能包 例 讲上述功能包名设置为 roshello
rosrun helloros roshello
若无错误即可看到输出 (该输出是由 cpp
程序中的 ROS_INFO()
函数执行的结果)
hello ros
python
程序于 2
中创建的 功能包下 创建 scripts
文件夹(作为python
文件存放的文件夹)
cd helloros
mkdir scripts
进入 scripts
文件夹 创建 helloros_p.py
的 python
程序
cd scripts
touch helloros_p.py
编辑该 helloros_p.py
程序
#! /usr/bin/env python
## 指定 Python 解释器
# 1 导包
import rospy
# 2 编写函数主入口
if __name__ == "__main__":
rospy.node("hello")
# 3 输出 日志
rospy.loginfo("hello ROS!")
由于 python
文件属于脚本文件,因此需要添加 可执行权限
chmod +x helloros_p.py
# 可使用 ll 命令 查看权限
修改 helloros
功能包下 CMakeLists.txt
文件
# 162 行 去除解释 修改文件名
catkin_install_python(PROGRAMS
scripts/helloros_p.py
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
返回 ros_work_space
目录下 编译工作空间
catkin_make
打开新终端 运行 roscore
roscore
在之前打开的终端中 加载 setup.bash
并执行程序 helloros_p.py
source ./devel/setup.bash
rosrun helloros helloros_p.py
若无错误,则可看到输出 hello ROS!