栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

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

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

**

目标:通过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 

四.补充 1.工作空间添加环境变量

添加环境变量保存至 .bashrc文件中可使得在任意窗口调用

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

或Ctrl + H 可以调出隐藏文件,直接找到 .bashrc文件,在末尾添加

source ~/demo1_ws/devel/setup.bash


这时候就可以顺便在哪打开终端然后调用程序了

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/842277.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号