ros编程基础,编写helloworld

学习工作记录,供自己学习记录和大家探讨

之前安装了ros系统,开始学ros编程,今天学习最基础的helloworld编程。

 创建工作空间

先创建一个工作空间以及一个 src 子目录,然后再进入工作空间调用 catkin_make命令编译

mkdir -p helloworld/src

cd helloworld

catkin_make

出现问题:

Invoking "cmake" failed

原因:

CMake Error at /opt/ros/noetic/share/catkin/cmake/empy.cmake:30 (message):
  Unable to find either executable 'empy' or Python module 'em'...  try
  installing the package 'python3-empy'

也就是ROS用的是python2,然而安装的anaconda是python3,所以要ros兼容python3。

catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3

基本上就没问题了,有其他问题可以看看别人帖子,再继续catkin_make

进入 src 创建 ros 包并添加依赖

cd src

catkin_create_pkg helloworld_pkg roscpp rospy std_msgs

创建一个ros包helloworld_pkg,依赖于roscpp,rospy,std_msgs这些文件。其中roscpp是使用C++实现的库,而rospy则是使用python实现的库,std_msgs是标准消息库。

创建helloworld文件

进入 ros 包添加 scripts 目录并进入scripts 创建编辑 python 文件

cd helloworld_pkg

mkdir scripts

cd scripts

gedit hello.py

#! /usr/bin/env python
# - coding: utf-8 -*-

"""
    Python 版 HelloWorld

"""
import rospy

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

为 python 文件添加可执行权限

chmod +x hello.py

返回ros包,打开编辑 ros 包下的 CMakeLists.txt 文件

cd ..

gedit CMakeLists.txt

将下面一段执代码放进CMakeLists.txt文件中,为了将我们编写的文件添加为执行文件,这样编写的文件就可以编译了

catkin_install_python(PROGRAMS scripts/hello.py
  DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)

编译运行python 文件

进入工作空间helloworld并编译

cd ../..

catkin_make

运行

先新打开一个运行终端运行roscore

roscore

在原来的运行终端设置空间环境变量,其实对

source ./devel/setup.bash

运行程序

rosrun helloworld_pkg hello.py

其中helloworld_pkg是ros包,hello.py是ros文件,此时运行终端会出现Hello World!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值