windows 下使用docker的ROS实战之HelloWorld(二)

windows 下使用docker的ROS实战之HelloWorld(二),第1张

**

目标:通过ros建立工作区打印helloworld,通过c++与python两种方式

**

一.HelloWorld 工作区建立

视频参考大佬的b站连接

本文建立的工作区的压缩文件

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

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

mkdir -p demo1_ws/src
cd demo1_ws/
catkin_make

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

会在工作空间下生成一个功能包,该功能包依赖于 roscpp、rospy 与 std_msgs,其中roscpp是使用C++实现的库,而rospy则是使用python实现的库,std_msgs是标准消息库,创建ROS功能包时,一般都会依赖这三个库实现。

cd src
catkin_create_pkg helloword roscpp rospy std_msgs


二.HelloWorld (C++版本) 3.(C++版本)进入 ros 包的 src 目录编辑源文件并编辑c++文件
cd src
gedit cs.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("c++ hello world!");

    return 0;
}

4.(C++版本)编辑 ros 包下的 CMaKeLists.txt 文件
cd ..
gedit CMakeLists.txt

修改格式如下


add_executable(节点名称(随便取)
  src/cs.cpp
)
target_link_libraries(节点名称(随便取)
  ${catkin_LIBRARIES}
)

5.(C++版本)返回工作空间目录并编译

c++文件需要编译生成可执行文件才能用,而python是脚本文件就不需要了,人生苦短,快用python,这里只是记录下c++文件的使用,建议小伙伴能用python就用python吧。

cd 自定义空间名称

catkin_make

如下可看到生成的编译后的可运行文件(test_node的名字来自之前在CMaKeLists.txt 文件的设定)

6.(C++版本)进入工作空间目录并执行

1.启动ros核心。另外开一个窗口,路径无所谓,保持ros核心一直运行

roscore

2.再另开一个窗口,进入对应工作空间

cd 工作空间

3.修改环境变量命令

source ./devel/setup.bash

4.执行之前生成的原文件
helloword :最开始的包名
test_node :编译生成的节点可执行文件名

rosrun helloword test_node 

三.HelloWorld (Python版本) 3.(python版本)进入 ros 包添加 scripts 目录并编辑 python 文件
cd helloworld
mkdir scripts
cd scripts
gedit cs.py

文件内部粘贴如下注意 由于是python2 所有 第一行的 #! /usr/bin/env python 记得加:

#! /usr/bin/env python

"""
    Python 版 HelloWorld

"""
import rospy

if __name__ == "__main__":
	# 初始化一个叫 Hello 的ros节点
    rospy.init_node("Hello")
    # 通过ros的日志输入打印信息
    rospy.loginfo("python Hello World!!!!")

4.(python版本)为 python 文件添加可执行权限

chmod +x就是说给文件可执行的权限

chmod +x cs.py
5.(python版本)编辑 ros 包下的 CMaKeLists.txt 文件

为了给python选择合适的解释器

cd ..
gedit CMakeLists.txt

修改的部分如下

install(PROGRAMS
   scripts/cs.py
   DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
 )

6.(Python版本)返回工作空间目录并编译

注意如果同时有c++版本的CMaKeLists.txt中配置与python的,则catkin_make优先执行c++的

cd 自定义空间名称

catkin_make

7.(Python版本)进入工作空间目录并执行

1.启动ros核心。另外开一个窗口,路径无所谓,保持ros核心一直运行

roscore

2.再另开一个窗口,进入对应工作空间

cd 工作空间

3.修改环境变量命令

source ./devel/setup.bash

4.执行之前生成的原文件
helloword :最开始的包名
cs.py :编译生成的节点可执行文件名

rosrun helloword cs.py 

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/728569.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-26
下一篇 2022-04-26

发表评论

登录后才能评论

评论列表(0条)

保存