当前位置:   article > 正文

1.ROS编程学习:helloworld的c++与python实现_ros赵虚左

ros赵虚左

目录

一.c++实现

1.创建工作空间

3.CMakeLists.txt配置

4.catkin_make编译

 5.source一下,配置环境变量

6.roscore+rosrun

二.python实现

1.创建scrips文件夹

2.创建helloworld_p.py

3.添加可执行权限

4.roscore+rosrun 


学习参考:赵虚左的ROS课程

一.c++实现

1.创建工作空间

  1. mkdir -p ~/catkin_ws/src
  2. cd ~/catkin_ws/src
  3. catkin_init_workspace

mkdir——创建文件夹

cd——切换工作目录

catkin_init_workspace——工作空间初始化

  1. cd ~/catkin_ws/
  2. catkin_make

catkin_make——编译工作空间

  1. cd src
  2. catkin_create_pkg helloworld roscpp rospy std_msgs

catkin_create_pkg——创建功能包

helloworld——功能包名称

roscpp——用来运行c++代码的库(依赖)

rospy——用来运行python代码的库(依赖)

std_msgs——标准消息的库,比如string字符串消息类型。(依赖)

2.通过touch命令创建helloworld_c.cpp文件

进入helloworld功能包中的src文件夹,打开终端

touch helloworld_c.cpp

用touch创建名为helloworld_c的cpp文件。

  1. #include "ros/ros.h"
  2. int main(int argc, char *argv[])
  3. {
  4. //执行 ros 节点初始化
  5. ros::init(argc,argv,"hello");
  6. //创建 ros 节点句柄(非必须)
  7. ros::NodeHandle n;
  8. //控制台输出 hello world
  9. ROS_INFO("hello world!");
  10. return 0;
  11. }

头文件调用ros库,主函数中,创建ros节点并初始化,创建ros节点句柄,在控制台窗口输出hello world!字符串,类似于c++的cout和printf()功能。

3.CMakeLists.txt配置

打开功能包中CMakeLists.txt,修改(ctrl+f搜索)

(1)声明c++可执行文件

  1. ## Declare a C++ executable
  2. ## With catkin_make all packages are built within a single CMake context
  3. ## The recommended prefix ensures that target names across packages don't collide
  4. # add_executable(${PROJECT_NAME}_node src/helloworld_node.cpp)
add_executable(suiyi src/helloworld_c.cpp)

第一个参数为期望生成(随意命名)可执行文件的名称(.exe),第二个参数为被编译的源码文件(.cpp)

(2)指定要链接库或可执行目标的库。

  1. ## Specify libraries to link a library or executable target against
  2. # target_link_libraries(${PROJECT_NAME}_node
  3. # ${catkin_LIBRARIES}
  4. # )
target_link_libraries(suiyi ${catkin_LIBRARIES})

改成刚刚随意命名的suiyi节点,其中后面不改,默认链接库。

4.catkin_make编译

因为c++必须编译后才能运行,回到工作空间根目录,重新编译一次。

catkin_make

 5.source一下,配置环境变量

source ./devel/setup.bash

6.roscore+rosrun

新开终端

roscore

在配置好环境变量的终端输入

rosrun helloworld suiyi 

终端输出

[ INFO] [1664245759.288360443]: hello world!

二.python实现

1.创建scrips文件夹

在helloworld功能包中创建scripts(脚本)文件夹

mkdir scripts

2.创建helloworld_p.py

在创建的文件夹中创建helloworld_p.py 文件。

  1. #! /usr/bin/env python
  2. import rospy
  3. if __name__ == "__main__":
  4. rospy.init_node("Hello")
  5. rospy.loginfo("Hello World!!!!")

3.添加可执行权限

注意要给可执行权限。

chmod +x 自定义文件名.py

4.roscore+rosrun 

rosrun helloworld helloworld_p.py 

python不用编译直接可以运行。(melodic版本,noetic需要在CMakeList.txt配置一下python)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/908475
推荐阅读
相关标签
  

闽ICP备14008679号